Durante los meses finales del año 2014,
he ido anotando los términos que he oído en las reuniones en las que
se hablaba de Big Data y de Inteligencia de Negocio,
a veces nombrada por los interlocutores como BI,
de su nombre en inglés Business Intelligence.
Son términos como
Cassandra, Apache Lucene, Elasticsearch, Flume, Hadoop, HBase, Hive,
Kafka, MongoDB, Spark, Storm, Pivotal, MapR, Hortonworks, Cloudera,
Agile Software Development, Python, Java o Scala, NoSQL, R, MLlib, Weka,
etc. en los que se mezcla un poco de todo,
nombres de herramientas y entornos,
de sistemas de gestión de bases de datos,
de lenguajes de programación,
de técnicas y de metodologías,
tanto específicos para Big Data y Business Intelligence
como para otros usos.
A comienzos de 2015 y a partir de ellos se me ocurrió redactar
un vocabulario de supervivencia para estas reuniones empresariales de
Big Data y Business Intelligence.
Ahora a finales de 2015 he seleccionado para presentar aquí
13 de los más frecuentes de esos términos, que son:
NoSQL:
Término que sirve para hacer referencia a los
sistemas de gestión de base de datos no relacionales.
Comprende categorías como clave-valor, BigTable, bases documentales y
bases de datos orientadas a grafos.
Estos sistemas de gestión de bases de datos están optimizados para
recuperar y agregar datos, pero no suelen ofrecer funcionalidades
más allá de almacenar y recuperar registros, por ejemplo,
usando un esquema de clave-valor.
Estas limitaciones para algunos aspectos las compensan con ganancias en
escalabilidad y rendimiento.
BigTable:
Es un sistema de gestión de base de datos creado por Google,
es distribuido, de alta eficiencia y propietario.
Fue construido utilizando Google File System (GFS) y Chubby Lock Service.
Funciona sobre computadores personales con procesadores Intel
sencillos y baratos.
Almacena la información en tablas multidimensionales,
donde muchas celdas pueden estar vacías y, también,
contener versiones temporales de sus valores históricos.
MongoDB:
Su nombre procede de humongous / enorme.
Es un sistema de base de datos NoSQL, orientado a documentos y
desarrollado como código abierto.
Cassandra:
Es un sistema de base de datos NoSql con las siguientes características:
almacenamiento por clave-valor, Java, grandes volúmenes,
escalabilidad lineal, alta disponibilidad,
arquitectura distribuida con nodos iguales
comunicados por un protocolo P2P con máxima redundancia,
desarrollado por Apache Software Foundation.
Apache Lucene:
Es un API, interfaz de aplicación, de código abierto para
la recuperación de información,
es útil para indexar y buscar a texto completo.
Multitenencia:
Término que se emplea
cuando una sola instancia de la aplicación se ejecuta en el servidor
sirviendo a múltiples clientes u organizaciones.
Este concepto se diferencia de las arquitecturas con múltiples instancias
donde cada cliente u organización tiene su propia instancia
instalada de la aplicación.
REST y RESTful:
Los sistemas que siguen los principios REST se suelen llamar RESTful.
Se dice que la web ha disfrutado de escalabilidad como resultado de una
serie de diseños clave:
-
Un protocolo cliente / servidor sin estado,
donde cada mensaje HTTP contiene toda la información necesaria para
comprender la petición,
ni cliente ni servidor necesitan recordar ningún estado de las
comunicaciones entre mensajes,
pero, en la práctica, muchas aplicaciones HTTP necesitan mecanismos como
las cookies u otros para mantener el estado de la sesión.
-
Un conjunto de operaciones bien definidas que se aplican a todos los
recursos de información,
HTTP en sí define un conjunto pequeño de operaciones como
POST, GET, PUT y DELETE.
-
Una sintaxis universal para identificar los recursos,
en un sistema REST,
cada recurso es direccionable únicamente a través de su URI.
-
El uso de hipermedios,
para la información de la aplicación y para las transiciones de estado de
la aplicación,
la representación de este estado en un sistema REST son típicamente
HTML o XML, por ello,
es posible navegar de un recurso REST a otros,
siguiendo enlaces sin requerir el uso de registros u otra
infraestructura adicional.
JSON:
JavaScript Object Notation,
es un formato ligero para el intercambio de datos,
por su simplicidad de JSON es una alternativa a XML en AJAX.
Es sencillo escribir un analizador sintáctico (parser) de JSON.
En JavaScript, un texto JSON se puede analizar usando la función eval().
Elasticsearch:
Servidor de búsqueda basado en Lucene, motor de búsqueda de texto
completo, distribuido y con capacidad de multitenencia con una interfaz
web RESTful y con documentos JSON.
En Java y publicado como OSS con licencia Apache.
Hadoop Apache:
Framework que soporta aplicaciones distribuidas, licencia libre,
permite a las aplicaciones trabajar con miles de nodos y
muy altos volúmenes de datos, se inspira en los documentos Google para
MapReduce y Google File System (GFS).
HBase:
Sistema de gestión de base de datos que sigue
el modelo BigTable Hypertable usado en Hadoop.
Cloudera Impala:
Motor de consultas SQL OSS para el procesamiento masivo en paralelo de
los datos almacenados en un clúster de computadoras ejecutando
Apache Hadoop.
Pentaho BI Suite:
Conjunto de programas libres para BI para:
ETL (extracción, transformación y carga);
Analysis Services (Modrian, OLAP, MDX, XML);
Reporting con OpenOffice;
Data Mining usando Weka para clasificación, regresión, reglas de
asociación, clustering, análisis predictivo;
Dashboard de informes, gráficos interactivos y cubos creados con
las herramientas Pentaho Report Designer; y
Apache Hadoop para acceder a grandes volúmenes de datos.
Dentro de 3 años más de la mitad de estos términos, ahora tan notorios,
o los habremos olvidado o nos olerán ya a naftalina.