Data Lakes: su potencial, sus contras y sus proveedores

10 Mar 2015 en Aplicaciones

Hace muchos años que las organizaciones comenzaron a tratar de utilizar los datos e información que cohabitaba con sus sistemas centrales como ERPs y otros. En un principio tuvimos repositorios de datos, pooles de datos, repositorios para sistemas de soporte a las decisiones y, en esta última era de los analíticos, vimos aparecer a los warehouses de datos y data marts, cuya aplicación dependía del alcance de las decisiones a tomar en base a su información. Data marts para uso departamental, warehouse para uso corporativo y así.

Hoy, ya en la era de lo que hemos denominado Big Data ha surgido el concepto y la utilización de los “data lakes” o lagos de datos. Su definición es un poco variable dependiendo de quién la haga y cuál sea su negocio tanto como proveedor, como en el carácter de usuario.

En general, se puede decir que un lago de datos es un gran repositorio de almacenamiento en el que se guardan diferentes tipos de datos en sus estados nativos. Desde allí y mediante las diferentes tecnologías disponibles, se pueden crear construcciones de datos aptas para ser presentadas ante las herramientas y aplicaciones analíticas o de Business Intelligence (BI).

Una de las diferencias con los warehouses que corren sobre hardware especializado o “pre-ingenierizado” como el de Oracle, HP o IBM, es que los lagos de datos suelen crearse sobre hardware más estándar o commodity. El objetivo es lograr la escalabilidad masiva y, por esa misma razón, también se los suele apuntalar en entornos cloud. Los entornos de lago de datos almacenan datos de diferentes fuentes en forma de objetos que pueden ser utilizados por las herramientas analíticas. Los datos que vemos más frecuentemente en los data lakes son los de aplicaciones empresariales, archivos, datos de sensores (una categoría en gran crecimiento), datos generados por los clientes y datos procedentes de dispositivos de cualquier tipo que tengan conexión con Internet.

El dominio de Hadoop

La mayoría de las implementaciones de lagos de datos están funcionando sobre la plataforma Hadoop, que creció bajo la fundación Apache. Apache Hadoop se inició como una técnica de almacenamiento y computación altamente escalable, orientada al proceso batch (de lotes de información) y que funcionaba sobre storage y computación genérico o commodity. A partir de ese momento, Hadoop se ha convertido en una plataforma capaz de almacenar y procesar enormes volúmenes de datos, o sea Big Data. Su entorno permite la inclusión de herramientas nativas y de terceras partes para la transformación de los datos crudos en inteligencia accionable. Tiene la capacidad de ofrecer redundancia mediante la replicación en múltiples clusters.

Lagos de datos frente a warehouses de datos

Las típicas warehouses de datos suelen alojar datos pertenecientes a sistemas de administración de bases de datos relacionales (RDBMS, Relational Database Management Systems). Los datos que se van cargando se someten a un formato “Schema-on-write” característico de las bases de datos SQL, el que consiste en la creación previa de una tabla para esos datos. Desde allí, los usuarios pueden procesar consultas a través de los datos de las bases de datos almacenadas en el repositorio del warehouse.

Una característica central de los warehouses de datos es que permiten el uso de analíticos en una cantidad masiva de datos de bases de datos. Almacenan un limitado conjunto de atributos de esos datos y luego almacenan los datos correspondientes en estructuras específicas e inmodificables. Los warehouses de datos ofrecen análisis preestablecidos para utilizar información de las bases de datos de misión crítica y gran importancia para el negocio. Su empleo es muy importante en las organizaciones que las utilizan.

Podríamos, a partir de lo dicho en el párrafo anterior, inferir que la flexibilidad de los warehouses de datos es, si no limitada, trabajosa. Por otra parte, a la hora de profundizar los análisis o de tratar de conocer nuevas cosas, no es posible profundizar más allá de lo que ha sido diseñado. Las estructuras precategorizadas resultan eficientes en cuanto a procesamiento, pero solamente permiten un determinado conjunto de consultas en atributos que fueron predeterminados. Cuando se quiere utilizar a los warehouses de datos para procesamiento de datos, se tropieza con el hecho de que han sido estructurados bajo schema-on-write y eso suele aletargar el rendimiento.

Por su parte, un lago de datos almacena datos de múltiples fuentes en su forma original y sin tener que someterse al esquema que los warehouses de datos utilizan en su input. Los data lakes utilizan un schema-on-read, el cual es capaz de procesar los datos de la forma en que es necesitada por las búsquedas requeridas por una consulta. La ventaja aquí es que los usuarios pueden lanzar una consulta o un conjunto de ellas, para que ataquen datos de diferentes formatos y fuentes. De esa manera, no es necesario lanzar la misma consulta varias veces para cada tipo de datos.

En los lagos de datos y estamos hablando en general de Hadoop, se logran altas velocidades de procesamiento. Esto es hoy cada vez más importante debido a la masividad de datos como los de los sensores. En los lagos de datos, sus datos no se refieren a una categoría predeterminada en forma reglada. Es una plataforma flexible en la que los usuarios pueden usar muchas y diferentes herramientas para analizar datos de diferentes tipos en forma combinada o entrecruzada. Las herramientas nativas como Apache Mahout, HBase, Hive y Pig, además de Hadoop MapReduce, son algunas de ellas. También tenemos a una variedad de herramientas creadas por diferentes proveedores y capaces de funcionar en lagos de datos Hadoop.

Existen algunos apologistas de los lagos de datos. Ellos pronostican que estos lagos van a reemplazar a los warehouses de datos en un futuro cercano. Eso es algo que todavía no se presenta como una realidad posible. Los dos estilos de construcción tienen sus propósitos y usos. No existen aún elementos que demuestren la necesidad de reemplazar a un warehouse de datos que esté funcionando bien. La diferencia está en que los lagos de datos ofrecen cada vez mayor nivel de flexibilidad y puntos de integración de datos que los warehouses no pueden alcanzar.

En cuanto al costo, no cabe duda de que los lagos de datos tienen un costo menor al de los warehouses. Pueden copiarse masivos volúmenes de datos y guardarlos para futuros análisis. Cuando se utilizan entornos Hadoop, esta plataforma se caracteriza por mantener su costo de soporte y software por nodo en un nivel bajo. La redundancia se genera dentro de la plataforma, lo cual permite economizar en soluciones o productos de replicación de terceras partes. La computación y el almacenamiento escalan en forma independiente, mientras que los upgrades son accesibles y el licenciamiento se realiza bajo un régimen muy sencillo.

No esperar más de lo que los lagos de datos permiten

Los lagos de datos tienen sin duda un futuro interesante para Business Intelligence, pero se trata de una tecnología que todavía necesita crear esquemas de datos y puntos de integración entre los diferentes formatos de datos. Esto insume potencia de procesamiento y también hay que estar preparado para adquirir dispositivos de almacenamiento. El storage genérico o commodity es menos costoso pero no evita los costos de compra, instalación, aprovisionamiento y administración de parte de las estructuras de IT. Tampoco se puede decir que los lagos de datos van a convertirse en un repositorio que llevará a la desaparición de otros sistemas. Acabar con los silos de datos es algo positivo solamente cuando las empresas son capaces de crear un dispositivo de minería de datos altamente integrado y flexible, capaz de funcionar a través de diferentes fuentes de datos.

La seguridad es otro tema que todavía está un poco verde. Si bien los entornos creados por las diferentes distribuciones de Hadoop son ricos en capacidad de redundancia, la seguridad no es su fuerte. Menos cuando están alojados en la nube. Los proveedores que ofrecen medidas de seguridad para Hadoop, tales como la utilización de “pases” o tokens para los datos, encriptado, administración de claves y auditorías de seguridad. Pero eso no es suficiente. Los usuarios se verán obligados a realizar estudios a fondo de los resultados que arrojen las aplicaciones de BI, especialmente cuando se trate de información sensible para el negocio. Dado el volumen y la variedad de las fuentes de datos que alimentan a los entornos de lagos de datos, habrá que prestar especial atención a la seguridad de los datos, tanto cuando están dentro del repositorio Hadoop, como cuando transitan hacia él.

Proveedores que participan en la categoría Lagos de Datos

Este es un mercado nuevo y tal vez algo confuso. En este segmento de los lagos de datos se entrecruzan las distribuciones Hadoop, el software de valor agregado para lagos de datos y el trabajo de desarrolladores de software tales como los proveedores de SaaS (Software as a Service). Casi todos los proveedores que conocemos trabajan con la plataforma Hadoop. Pero dijimos casi todos, ya que algunos de los proveedores ofrecen sus propios lagos de datos a sus clientes.

Entre los más populares y reconocidos tenemos a los siguientes proveedores:

          Apache Software Foundation. Esta organización desarrolla Apache Hadoop open source y su conjunto de herramientas nativas. Como ocurre con otros desarrollos open source, los diferentes distribuidores agregan herramientas analíticas o de BI en sus implementaciones, manteniendo asociaciones con partners como Cloudera y Pivotal para EMC Isilon. Los principales distribuidores de Hadoop son MapR, Cloudera, Pivotal, Hortonworks e IBM.

          ThingWorx ofrece un lago de datos que combina una estructura de base de datos gráfica (Ver definición de graph database) y tagging o etiquetado para poder incluir todos los metadatos posibles. Los analíticos pueden entonces utilizar las etiquetas y las relaciones entre los elementos lógicos. Los usuarios pueden profundizar hasta la raíz física de los datos.

          El motor de búsqueda Splunk Analytics es un motor diseñado para datos de máquinas. Funciona con diferentes aplicaciones tales como Hadoop y datos de lagos NoSQL. Splunk extrae inteligencia en tiempo real de una enorme masa de información que es generada por máquinas, tal como Social Media, sensores, aplicaciones, sitios web y muchos más.

          Zaloni Bedrock utiliza la plataforma Hadoop sin depender de ninguna distribución en especial. Organiza a Hadoop para que logre una alta performance que incluye la ingestión de datos en alta velocidad, administración de workflow, administración de metadatos y otras funciones.

          Pivotal es un spin-off de EMC y VMware y participa en numerosas soluciones de computación cloud y Big Data. Su conjunto de productos específicos para repositorios Big Data y analíticos incluye a la distribución de Hadoop PivotalHD y a la suite de herramientas analíticas Pivotal Big Data Suite.

          Teradata adquirió a Revelytrix a mitad del año pasado. Revelytrix Loom reduce la complejidad de los entornos Hadoop mediante el descubrimiento automático de conjuntos de datos y la generación de sus metadatos. Además, hace el seguimiento de los workflows de operaciones.

          Pentaho es una compañía de la que se dice que inventó el término lago de datos. Esta compañía trabaja en la plataforma Hadoop para permitir la generación de consultas y extracciones veloces.

          DataRPM es un proveedor centrado en el descubrimiento de datos usando su propio lago de datos. Trata a Hadoop como fuente de datos para luego crear automáticamente su propio lago de datos en hardware commodity. Las fuentes de datos adicionales pueden ser RDBMS, algunos tipos de archivos y aplicaciones CRM. Como elementos competitivos de este proveedor tenemos que los usuarios pueden emitir consultas en lenguaje natural y cuenta con seguridad de archivos distribuidos de índices binarios.

          EMC es otro proveedor que, al ser líder en almacenamiento de datos, tiene un fuerte compromiso con los lagos de datos Hadoop. El año pasado, durante el transcurso de Hadoop World, EMC anunció su proyecto de colaboración con Cloudera para la integración de EMC Isilon Scale-Out NAS con Enterprise Data Hub de Cloudera. EMC también actualizó su conjunto de productos en asociación con Pivotal.

Los Data Lakes no son sólo repositorios con un almacenamiento virtualizado. Se trata de una estructura de repositorio diferente y capaz de almacenar datos en un formato prácticamente nativo. También puede manejar consultas realizadas a diferentes fuentes y formatos de datos. Dado que aprovechan las capacidades del hardware commodity o estándar, los lagos de datos pueden convertirse en una forma económica de conservación de los datos empresariales que en algún momento podrían necesitar de análisis.

Los lagos de datos no son adecuados para todo almacenamiento de datos corporativo y a pesar de que algunos proveedores e incluso consultores así lo manifiesten. Por bastante tiempo, no tienen chance de reemplazar a los warehouses de datos y a su gran valor agregado. Lo que sí hacen bien los lagos de datos es mejorar el producto de BI y analíticos ya que pueden integrar los resultados procedentes de múltiples fuentes de conocimiento. Y ese no es un aporte menor.

Este artículo se basa en la columna que Christine Taylor escribió para Datamation.