Big Data y HBase

Big Data va de complejidad en los datos con los que trabajamos, de los que queremos extraer valor. No tiene que ver tanto con cantidad como con el número de datos diferentes, con el número de relaciones diferentes… Si tengo un disco de 100GB repleto con 100 películas, pero lo que me preocupa es conocer los títulos o los actores no estoy trabajando con Big Data, por mucho que una película ocupe una barbaridad, solo tengo 100 casos. Otra cosa sería si el disco lo tuviera lleno de 100 millones de registros que tenemos que poder consultar individualmente. A ese tipo de complejidad me refiero.

HBase es un ejemplo de base de datos NoSQL open source pensada para Big Data. Al igual que Riak de la que hablaba en el post anterior, está pensada para escalar con facilidad añadiendo servidores horizontalmente, para atender un incremento en el número de usuarios o para poder realizar mas trabajo en paralelo porque aumenta el tamaño de los datos. Sin embargo en Riak el acento está puesto en la disponibilidad y en la respuesta rápida a consultas sencillas, mientras que en lo que destaca HBase es saber manejar grandes volúmenes de información.

HBase es una base de datos columnar. Lo particular en estos almacenes de datos es que guardan los datos por columnas, no por filas. Si tenemos una tabla como la que sigue:

SNO  STATUS CITY    SNAME
—  —— —-    —–
S1       20 London  Smith
S2       10 Paris   Jones
S3       30 Paris   Blake
S4       20 London  Clark
S5       30 Athens  Adams

La guardaría en disco como sigue: S1S2S3S4S52010302030LondonParisParisLondonAthensSmithJonesBlakeClarkAdams

En una base de datos tradicional lo haría de esta manera:
S120LondonSmithS210ParisJonesS330ParisBlakeS420LondonClarkS530AthensAdams

En principio no hay mucho mas que eso, pero tiene todo tipo de implicaciones: las BD columnares destacan realizando consultas agregadas, de totales o de promedios, destacan comprimiendo los datos porque datos con características similares se guardan juntos. Sin embargo se comportan mal si lo que necesitas sobre todo es guardar datos puntuales.

Otra de las diferencias con Riak que saltan a la vista es que facilita trabajar con información estructurada, muchos tipos y muchas relaciones. Al fin y al cabo en Riak lo que tenemos simplemente son “cajones” donde metemos datos. En HBase estos “cajones” pueden tener estructura como en una base de datos SQL tradicional. Trabaja también con “tablas” pero de una forma mas flexible.

En realidad decir que trabaja con tablas y columnas es engañoso porque no se trata de eso. Trabaja mas bien con listas de listas.

Se define un esquema para cada “tabla” con su nombre, indicando columnas y si tendrán o no compresión de datos… pero el esquema no te obliga a tener una estructura. En realidad cuando metemos una fila indicamos las columnas que va a tener en ese momento, podemos seguir el esquema o ir mas allá de él

Una tabla en HBase no es un cuadrado de cajitas perfectamente relleno, es un conjunto de filas, unas cortas y otras mas largas, el número de atributos (columnas) que puede tener cada una depende la ocurrencia, de la fila. Esto permite trabajar con información con estructura pero poco regular y dispersa.

HBase es usado por grandes empresas en Internet para resolver problemas de Big Data, sea para ofrecer un sistema de análisis online de datos, para respaldo de información o para sistemas de búsqueda. Permite acceder a información pesada, como los artículos de una revista, con una baja latencia.

HBase es un software open source que permite a cualquier empresa hacer cosas sobre máquinas y redes normales que antes hubieran necesitado de una infraestructura propietaria y muy costosa… y del equipo que supiera trabajar con ellas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *