Los atributos de HBase

HBase

(Hadoop base de datos) es una implementación Java de BigTable de Google. Google define como un BigTable " escasa, distribuida, persistente mapa Ordenado multidimensional ". Es toda una definición concisa, pero también estará de acuerdo que es un poco en la parte compleja. Para descomponer la complejidad de BigTable un poco, después de una discusión de cada atributo.

HBase es escasa

Como ya habrán adivinado, el BigTable distribuido sistema de almacenamiento de datos ha sido diseñado para satisfacer las demandas de los grandes datos. Ahora, las aplicaciones de datos grandes almacenar gran cantidad de datos, pero gran contenido de datos es también con frecuencia variable. Imagine una mesa tradicional en una base de datos de la empresa almacenar la información de contacto del cliente, como se muestra:

Tradicional cliente Contacto Información de la tabla
ID de clienteApellidoNombre de pilaSegundo nombreDirección de correo electrónicoDirección
00001HerreroJohnTimoteo1 Hadoop Lane, NY 11111
00002ConejaJaneNULONULO7 HBase Ave, CA 22222

Una empresa o individuo puede requerir un registro de datos completa para cada uno de sus clientes o electores. Un buen ejemplo es su médico, quien necesita toda su información de contacto con el fin de proporcionarle la atención adecuada. Otras empresas o particulares pueden requerir una información del contacto parcial o pueden necesitar aprender esa información a través del tiempo.

Por ejemplo, una empresa de servicio al cliente puede procesar las llamadas telefónicas o mensajes de correo electrónico para solicitudes de servicio. Los clientes pueden o no pueden optar por dar a las empresas de servicios de toda su información de contacto. Sin embargo, con cada interacción con el tiempo, las empresas pueden obtener más información sobre sus clientes que les permitan ofrecer un mejor servicio - mediante la emisión de alertas de servicio proactivas, por ejemplo.

En este contexto, escaso significa que los campos en filas pueden estar vacíos o NULL pero eso no traerá HBase a un alto. HBase puede manejar el hecho de que (aún) no lo sabe el nombre y dirección de correo electrónico secundaria de Jane Doe, por ejemplo.

He aquí otro ejemplo: una base de datos para el almacenamiento de imágenes de satélite. Resulta que Google utiliza tecnología BigTable para almacenar las imágenes de satélite de la tierra. En casi todos los casos, cada vez que se almacena imágenes, metadatos también se almacena con él.

Los metadatos pueden incluir la dirección de la calle de la imagen, o sólo la latitud y longitud si la imagen es capturada desde el desierto. Los metadatos es variable en su contenido por lo que algunos campos serán NULL - y eso está bien.

En ambos ejemplos, los conjuntos de datos que se recogen pueden ser extremadamente grande - especialmente en el segundo ejemplo. Bases de datos de imágenes casi siempre se miden en terabytes oa veces en petabytes.

HBase está diseñado para el almacenamiento de grandes volúmenes de datos, pero también está diseñado para el almacenamiento de registros de datos dispersos, sin costo alguno. Esta preocupación es crucial cuando usted está utilizando aplicaciones de datos grandes! El almacenamiento de unos pocos registros NULL a más de un millón de filas es un desperdicio, pero trata de imaginar la basura más de un cuatrillón de filas!

Afortunadamente, esta fue una consideración clave para los diseñadores de Google y la comunidad HBase. Escasos datos es compatible con ninguna pérdida de espacio de almacenamiento costoso.

Y no se detiene allí. Considere el poder de un almacén de datos esquema menos. La tabla muestra una tabla de contacto con el cliente clásico. Cuando las compañías diseñan estas tablas, saben por adelantado lo que quieren almacenar. En otras palabras, el esquema es fijo- Se define incluso antes de que el primer byte de información se almacena en la tabla.

Ahora lo que si, con el tiempo, es necesario un nuevo campo para un cliente? ¿Qué tal un mango Twitter o un nuevo número de teléfono móvil? Estás aparentemente atrapado con un esquema que ya no funciona para usted.

Bueno, HBase resuelve este reto también - no sólo se puede saltar campos sin costo cuando usted no tiene los datos, sino también añadir dinámicamente campos (o columnas en la lengua vernácula HBase) con el tiempo sin tener que rediseñar el esquema o interrumpir las operaciones.

Así que usted puede pensar en HBase como una tienda-datos-esquema menos que sea, es fluido - usted puede agregar, quitar o modificar el esquema a medida que avanza.

HBase se distribuye y persistente

BigTable es un sistema de archivos distribuido y persistente. Perseverante simplemente significa que los datos se almacenan en BigTable (y HBase, para el caso) persistirá o permanecer después de que termine su programa o sesión. Eso es bastante sencillo - persistente significa que persiste - pero usted debe pasar un poco más tiempo pensando en Cómo los datos se persistió.

En su documento de BigTable, Google describe el sistema de archivos distribuido conocido como Sistema de Google Archivo o GFS. Resulta que, al igual que HBase es una implementación de código abierto de BigTable, HDFS es una implementación de código abierto de GFS.

Por defecto, HBase aprovecha HDFS persistir sus datos para almacenamiento en disco. Aunque otros almacenes de datos distribuidos se pueden utilizar con HBase, la gran mayoría de HBase instalaciones apalancamiento HDFS. Esto tiene mucho sentido teniendo en cuenta que es la HBase " Hadoop Base de datos " - Bueno, que está construido en el nombre, por amor de Dios.

HDFS es una tecnología clave no sólo para Hadoop, sino también para HBase. Al almacenar los datos en HDFS, HBase ofrece fiabilidad, disponibilidad, escalabilidad sin fisuras, de alto rendimiento y mucho más - todo en el precio de servidores distribuidos eficaces!

HBase tiene un mapa ordenado multidimensional

A partir de lo básico, un mapa (también conocido como matriz asociativa) Es una colección abstracta de pares clave-valor, donde la clave es única. Esta definición es crucial para la comprensión de HBase debido a que el modelo de datos HBase es a menudo descrita de diferentes maneras - a menudo de forma incompleta como una tienda orientada a columnas.

HBase es, en el fondo, un almacén de datos clave-valor, donde cada tecla es único - lo que significa que aparece como máximo una vez en el almacén de datos HBase. Además, el mapa está ordenada y multidimensional. Las claves se almacenan en HBase y clasifican en orden bytes lexicográfica. Cada valor puede tener múltiples versiones, lo que hace el modelo de datos multidimensional. De forma predeterminada, las versiones de datos se implementan con una marca de tiempo.