Explodat-Ejemplo-Azure-Data-Lake

El siguiente artículo tiene por objetivo presentar una breve idea sobre el concepto Data Lake. Para lograr esto, iniciaré con una explicación sobre qué es un Data Lake o Lago de datos. Posteriormente revisaremos las opciones disponibles para implementarlo en un entorno empresarial. Finalmente, se presentará un ejemplo del costo de implementar un Data Lake Cloud.

Nota: Este artículo esta enfocado en la dimensión de almacenamiento de datos debido a que las herramientas para extraer, transformar y cargar datos (ETL/ELT) en un Data Lake, dan cabida a otro artículo. De igual manera te comparto este artículo sobre ETL y Calidad de datos que te puede interesar.

Sin nada más que agregar comencemos…

¿Qué es un Data Lake?

Usted se habrá percatado que su empresa genera mucha información la cual no se encuentra necesariamente en un mismo formato. Por ejemplo: ¿Quiere guardar los videos de sus clientes comprando en su tienda? ¿desea guardar audio de las reuniones que tiene con sus stakeholders y/o clientes? ¿cuenta con correos importantes que no quiere perder? Bueno, todo eso y más se puede guardar en un Lago de Datos1.

Similar a un Data Warehouse, un Data Lake consiste en un repositorio centralizado pero no se limita a seguir una estructura definida de datos, puesto que su idea es almacenar el dato en estado puro. Es decir, el dato se puede guardar sin modificarlo o transformarlo. De hecho, los tipos de datos que permite van desde estructurados (modelo relacional tradicional), semi estructurados (CSV, XML, JSON, etc.), datos no estructurados (correos electrónicos, PDFs, documentos) hasta datos binarios (como audios o videos)2

Ejemplo de Data Lake
Fuente: Qubole.com – what is data lake

Básicamente podríamos almacenar lo que se nos ocurra en nuestro Lago de Datos, pero ¿para qué nos sirve almacenar todo esto? Si tenemos los datos en un solo lugar podemos aprovecharlos para hacer distintos tipos de análisis como descubrir patrones, tendencias, etc. Por lo tanto, aquí entra la maestría del equipo que va a rentabilizarlos.

Consideraciones sobre un Lago de Datos

Se debe considerar que los datos de un Data Lake la mayoría de las veces no están listos para ser utilizados directamente, la flexibilidad de guardar los datos crudos añade la dificultad de definir qué herramienta se debe ocupar, el tratamiento que se le debe dar para adaptarlos al formato requerido por dicha herramienta y a su vez, definir qué dato realmente es útil procesar.

Por lo tanto, debe tener cuidado a la hora de cargar datos en un Data Lake. Contar con un buen gobierno de datos disminuirá el riesgo de tener datos redundantes, carencia de metadatos y datos no asignados a un proyecto u objetivo concreto. Si no damos énfasis a estas actividades el Data Lake queda inutilizable e ingobernable, convirtiéndose en un Data Swamp o Pantano de Datos.

¿Cómo se puede implementar un Data Lake?

Un Data Lake se puede implementar de dos maneras: de forma local (on premise) o en la nube (cloud computing). Veamos ambos ejemplos a continuación.

Data Lake Local u On Premise

Es un Data Lake implementado en “servidores propios”, es decir, la propia empresa es la que se debe encargar de tareas que van desde la compra de software, instalación de hardware y software, hasta el paso a producción y mantención.

Si deseas implementar un Data Lake Local debes considerar al menos los siguientes puntos:

  1. Definir la capacidad de almacenamiento requerida, es decir, el sizing inicial.
  2. Estimar la tasa de crecimiento de los datos. Recomendamos considerar la escalabilidad puesto que los datos no crecerán de manera sistemática.
  3. La adquisición de hardware basada en las conclusiones de los punto anteriores.
  4. Un equipo experto que maneje sistemas distribuidos y sincronización de relojes.
  5. La configuración del centro de datos, lo cual consumirá un tiempo considerable de personal experto y otros recursos económicos.
  6. El espacio físico que se asignará a los servidores.
  7. La seguridad y accesibilidad tanto a nivel de datos como de hardware.

En otras palabras, implementar un Data Lake local es un desafío, de ahí que una buena opción es utilizar Hadoop.

¿Qué es Hadoop?

Hadoop es un framework de licencia libre cuyos objetivos son almacenamiento y procesamiento de grandes volúmenes de datos. A continuación podemos apreciar una mirada de alto nivel:

Estructura de Hadoop
Fuente: Blog ibmbigdatahub

¿Cómo surge Hadoop?

Como toda historia comenzaremos desde el inicio, en específico, en la era de los motores de búsqueda. En los primeros pasos de internet los motores de búsqueda entregaban resultados generados por humanos, solución poco óptima si pensamos en el crecimiento exponencial de usuarios producto del boom de internet. 

Como consecuencia, esta situación motivó al desarrollo de diversos proyectos cuya finalidad era entregar búsquedas en la web a mayor escala. Uno de esos proyectos fue Nutch de Doug Cutting y Mike Cafarella, el cual tenía un enfoque en donde las búsquedas tuvieran mayor velocidad por medio de la distribución de los datos y cálculos en diferentes computadoras, de modo que se pudieran procesar múltiples tareas de manera simultánea.

Durante el 2006 Cutting se unió a Yahoo llevándose con él su proyecto Nutch. Dentro de Yahoo el proyecto original fue dividido en dos partes: Una parte consistía en el rastreador web que se mantuvo como Nutch. La otra parte se concentró en el cómputo y procesamiento distribuido convirtiéndose en Hadoop. Después de 2 años largos de desarollo, Yahoo presenta Hadoop en el 20083. Ya con Hadoop libre y gratis no pasó mucho tiempo para que James Dixon acuñara el término Data Lake.

Data Lake Cloud

Implementar un Data Lake Cloud tiene la ventaja inherente de la mayoría de los servicios en la nube, es decir, se disminuyen los tiempos de configuración y administración. Sin embargo, antes de contratar este servicio, es recomendable definir cuántos datos vamos a almacenar y su tasa de crecimiento estimada. Esto nos permitirá organizar de mejor manera el aumento del tamaño y como consecuencia prevenir el quedar cortos en algún punto de los proyectos.

Un punto clave a considerar es determinar si el personal que va a ocupar y administrar este servicio cuenta con las habilidades requeridas, y en caso de que no sea así, qué conocimientos serán necesarios adquirir (ej: Certificaciones). Finalmente, al elegir un proveedor Cloud como AWS o Azure se deberá considerar los costos que implica, lo que nos lleva a la pregunta: ¿Cuánto sale implementar un Data Lake Cloud?

Ejemplo del costo de un Data Lake Cloud

Consideremos como ejemplo una empresa con 5 años de vigencia en el mercado, cuyos datos pesan 400 GB y se espera que alcancen los 500 GB en los siguientes meses. Además, la tasa esperada de crecimiento es de 1 GB mensual.

Nota: Los ejemplos de más abajo consideran el tamaño final de los datos, sin embargo, es posible que los algoritmos de compresión te beneficien. Por ejemplo, 100 GB en su maquina on premise podrían ser 10 GB en el proveedor Cloud, esto dependerá entre otras cosas de la cardinalidad o unicidad de sus datos (columnas).

Lago de Datos o Data Lake en AWS

En AWS podemos encontrar Amazon S3, la cual es una interfaz de servicios web simple que se puede utilizar para almacenar y recuperar cualquier cantidad de datos, en cualquier momento y desde cualquier parte de la web4. Dado que permite cualquier tipo de datos, también es necesario rodear el Data Lake de distintos servicios analíticos.

Azure Data LAke
Fuente: Blog AWS – Cómo extraer valor de sus datos con data lakes

AWS Lake Formation bajo S3 Standard

Tabla de costos de S3 Standard
CaracterísticaS3 StandardPrecio USD
S3 Standard storage500 GB11.50
PUT, COPY, POST, LIST requests to S3 Standard2.0000.10
GET, SELECT, and all other requests from S3 Standard2.0000.008
PUT requests for S3 Storage10 GB0.07
GET requests in a month10 GB0.02
Total S3 Standard11.88

Además del almacenamiento es necesario considerar el servicio de transferencia de datos. Existe una opción gratuita que permite gestionar datos entrantes mediante internet y datos salientes mediante Amazon CloudFront. Para nuestro proyecto ejemplo es una opción válida para comenzar.

Data Lake en Azure

El Azure Data Lake Storage Gen1 (ya existe la Gen2) es un repositorio de hiperescala empresarial para cargas de trabajo analíticas de Big Data. Este Lago de datos nos permite capturar datos de cualquier tamaño, tipo y velocidad de ingesta en un solo lugar facilitando así, el análisis operativo y exploratorio5. Al igual que AWS esta rodeado de una serie de servicios analíticos.

Azure Data Lake
Fuente: Microsoft Azure- Data Lake Store Overview

Azure Data Lake Store Gen1:

Tabla de costos de Azure Data Lake Store Gen1
CaracterísticaAzurePrecio USD
Storage Used500 GB19.50
Read Transactions2.0008
Write Transactions2.000100
Soporte incluidoDesarrollador29
Total Azure Data Lake Store Gen1156.5
Lago de datos en Google Cloud Platform (GCP)

Similar al resto de proveedores, GCP propone un servicio de almacenamiento de archivos en línea RESTful para almacenar y acceder a datos en la infraestructura de Google Cloud Platform. Como consecuencia, combina el rendimiento y escalabilidad de la nube de Google con capacidades avanzadas de seguridad y uso compartido6.

Fuente: Cloud.Google.com -Cloud Storage as a Data Lake

Google Cloud Storage:

Tabla con los costos de Google Cloud Storage
CaracterísticasGooglePrecio USD
Storage Used500 GB10
Red de salida10 GB1,2
Agregar objetos y mostrar listas de buckets y de objetos10.0000,05 
Obtener objetos y recuperar metadatos de buckets y de objetos50.0000,02
Total Google Cloud Storage11,27

A continuación compartimos el resumen de nuestro Data Lake de ejemplo en los distintos proveedores:

Tabla comparativa de los servicios de almacenamientos
MonedaAWSS3 StandardAzure DL Store Gen1Google Cloud Platform
USD11,88156,511,27
EURO9,80129,149,30
CLP(Chile)8.526112.320 8.088

Paso siguiente: Administración del Data Lake

Una vez definida la capacidad requerida, el siguiente paso es definir políticas de manejo de datos, metadatos y la adopción e implementación de herramientas para extraer la información de cada tipo de dato almacenado. Sin embargo, si no se consideran estos aspectos es muy fácil que el Lago de Datos se convierta en un “Pantano de datos” o Data Swamp.

Para aprovechar las ventajas que nos brinda un Data Lake (centralización, acceder a los datos forma dinámica conocido como schema on-read), es necesario contar con expertos monitorizando el ambiente, de lo contrario se pueden generar silos de información con gran facilidad. Además para el caso Cloud, aparecen 2 aspectos claves. El primero es el famoso costo de transacción (uso del dato per se) el cual no se suele dimensionar bien en un principio y siempre sorprende al momento de la facturación. El segundo, es referido al “sello” que cada proveedor busca imprimir a su entorno. Por ejemplo si opta por Azure,  aunque su equipo de expertos conozca Hadoop, Parquet y HDFS, puede que deba aprender U-SQL para rentabilizar mejor los datos.

Por lo tanto, es crucial invertir en la definición de políticas y procedimientos, metadatos y las herramientas adecuadas en etapas tempranas. En próximos artículos hablaré y ejemplificare parte de estos temas.

Nota: Si crees que este contenido puede ser útil para otras personas no dudes en compartirlo. Además te invitamos a seguirnos en LinkedIn, Facebook, Instagram y Youtube. Mientras en el blog liberamos contenido más extenso, en las RRSS publicamos semanalmente tips relacionados con DW/BI, Data Science, Visualización y Software a la Medida que es justamente lo que más nos apasiona hacer en Explodat.

Referencias

  1. Woods, Dan (21 July 2011). “Big data requires a big architecture”. Tech. Forbes.
  2. Bill Inmon, Data Lake Architecture: Designing the Data Lake and Avoiding the Garbage Dump.
  3. https://www.sas.com/es_cl/insights/big-data/hadoop.html
  4. https://docs.aws.amazon.com/es_es/AmazonS3/latest/dev/Welcome.html
  5. https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-overview
  6. https://es.wikipedia.org/wiki/Google_Cloud_Storage

Agregar un comentario

Su dirección de correo no se hará público.