Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En esta ocasión, vamos a introducir una serie de conceptos sobre los tipos de datos y sobre la diferencia
entre las bases de datos relacionales y las no SQL. Sería muy importante analizar el contexto de la
consistencia dentro de estas diferencias de datos, y luego, repasaremos varias tecnologías de bases de datos
no SQL, en el contexto de consistencia, de bases de datos analíticas y de análisis de grafos.
TIPOS DE DATOS
Y lo que cada vez tiene más importancia son los datos provenientes de las aplicaciones web y las aplicaciones
móviles, datos que reflejan las operaciones y los usuarios que han realizado sobre esas aplicaciones. En
general, como caso, son los logs que obtenemos de las aplicaciones web.
Vamos a hablar primero del contexto de necesidad de trabajar con grandes conjuntos de datos a escala y qué
limitaciones tienen las bases de datos relacionales en ese ámbito, cuáles son los problemas que nos
encontramos al trabajar con bases de datos no relacionales y qué tenemos que hacer para superar esos
problemas y luego, en ese contexto, hablaremos de la técnica de sharding o participación horizontal como
una técnica que intenta avanzar las bases de datos SQL.
Y luego discutiremos cuáles son las dificultades que proporciona al desarrollador este tipo de cambios. Luego,
presentaremos las bases de datos NoSQL como una alternativa a esta tecnología e intentando mejorar estas
dificultades que hemos visto.
Pero este problema, a medida que tenemos más peticiones, se convierte en un problema general muy
importante que es cómo actualizo de forma eficiente cuando tengo muchísimas peticiones en una base de
datos relacional.
Por lo tanto, cualquier error que se produzca de asignación de partición equivocada va a ser muy difícil de
resolver puesto que tendremos que extraerlos de uno en uno todos esos datos. Y, por ejemplo, si también
tenemos un problema que hemos calculado mal y resulta que una de las particiones de golpe crece mucho
más que el resto tendríamos que resegmentarlo y esa resegmentación implica volver a diseñar toda la política
de partición de claves.
Eso permite que las búsquedas sean muy fáciles porque están ordenadas alfabéticamente, es muy fácil
encontrar cuál es la región, simplemente colocando la clave ordenada alfabéticamente y se sabrá a dónde se
tiene que ir, y también es muy fácil balancear porque, automáticamente, cuando crece una región se va a
partir de dos y se va a asignar automáticamente.
Haremos un pequeño repaso del contexto actual y les explicaré los tipos de aproximación, en cuanto a los
modelos de datos que han dado lugar a las tecnologías actuales.
Finalmente, como es obvio, tenemos la veracidad, es decir, estos datos, necesitamos poder extraerlos y
trabajar con ellos de manera fiable, que nos den un grado de confianza alto.
Esto parece bastante evidente ahora, sobre todo con la aparición del denominado "Internet of things".
En este esquema, existen dos componentes esenciales para que la arquitectura de HBASE funcione. Estos
son, Zookeeper y HMaster.
HMaster, como su nombre lo indica, es el proceso principal que se encarga de la asignación y reasignación
de las distintas regiones, efectúa las tareas DDL, de la base de datos, estos son las tareas de data definition,
como son la creación y eliminación de tablas, y mantenimiento de la coherencia de los datos. Y también se
ocupa de todo lo relacionado con el balanceo de carga.
El componente Zookeeper es esencial en el sentido de que es el coordinador principal de todo el sistema. Si
nos fijamos, en este esquema de interacciones, un cliente cuando realiza cualquier petición lo primero que
ha de hacer es ponerse en contacto con Zookeeper para obtener la dirección del servidor de región asociado
a los datos a los que desea acceder. Luego, una vez obtenida estas direcciones, el cliente podrá realizar todas
las operaciones de tipo data management, es decir, lectura de registros, actualización, etcétera, directamente
hablando con los servidores de región. A su vez, Zookeeper mantiene la configuración global del sistema y
monitoriza las caídas de todos los componentes de ellos. La relación entre Zookeeper y HMaster a su vez es
muy estrecha, de manera que HMaster y Zookeeper se intercambian continuamente hard bits, y HMaster
informa en todo momento del estado de cada uno de los region servers a Zookeeper.
Algo importante que podemos observar dentro de los distintos detalles de configuración es que a pesar de
que Cassandra siempre lo hemos categorizado como un sistema AP dentro del teorema CAP, nosotros
podemos llegar a ofrecer una serie de consistencia más o menos elevada.
Es decir, esta consistencia es ajustable y
Cassandra implementa distintos métodos para
aumentar la consistencia, básicamente basados
en lo que denominamos quórum.
¿Qué ocurre?
Que, como venimos viendo, el aumento de los datos
está siendo masivo. Y, claro, a raíz de esto se nos
plantea la posibilidad de que, además de todas estas
soluciones operativas, podemos realizar muchas más
acciones con estos datos que nos pueden llegar a dar
un conocimiento muy valioso.
De esta manera, surge una necesidad que es, a partir
de esta inmensa cantidad de datos, cómo vamos a
poder analizarlos de manera que obtengamos
información valiosa.
Está claro que necesitamos un proceso en el que se
depure y se transformen estos datos de manera que,
finalmente, obtengamos un conjunto de datos
elaborado que nos permita tomar decisiones
realmente importantes y que van mucho más allá de
lo que es el mantenimiento del día a día de nuestra
empresa.
Por otro lado, hace pocos años, Wayne Calloway, como CEO de PepsiCo dijo en una junta de accionistas,
"hace diez años les pude decir cuántos Doritos vendimos en el oeste en Mississippi". "Hoy no sólo les puedo
decir eso mismo, sino cuántos vendimos en California, en el Condado de Orange, en la ciudad de Irvine, en
el supermercado local Von's, durante una promoción especial, al final del pasillo 4, los jueves".
Como se ver, aquí ha habido una evolución muy clara en cuanto a lo que es el concepto de dato y el concepto
de la información que podemos extraer de los datos que hemos ido almacenando. De esta manera, la
información actualmente está fragmentada y es escudriñada hasta obtener datos de increíble valor para los
negocios.
Esta extracción de datos es lo que se realizaría en una primera fase para luego transformarlos lo que
consistirá en homogeneizarlos, filtrarlos, depurarlos y categorizarlos. De esta manera, tendremos los datos
bien preparados para hacer el volcado de éstos en lo que será nuestro almacén de datos.
A su vez, este volcado de datos vendrá acompañado de distintos metadatos que acompañarán a cada registro.
Finalmente, la salida del "Data Warehouse" será la explotación de estos datos, y esta explotación puede venir
en forma de realización de informes, analítica de resultados o de los propios datos y técnicas de "data
mining" sobre éstos.
Con la evolución de los sistemas Big Data veremos
que este esquema que acabo de presentar es muy
simple y que actualmente pasa a formar parte de otro
más complejo, que es el denominado "Corporate
Information Factory" que está constituido por algunos
componentes más y distintos diagramas de flujo de
información.