¿Qué es un Datalake?

Un lago de datos es un repositorio centralizado que permite almacenar todos sus datos estructurados y no estructurados a cualquier escala. Puede almacenar sus datos sin modificarlos y sin tener que estructurarlos primero. También puede ejecutar diferentes tipos de análisis: desde paneles y visualizaciones hasta procesamiento de macrodatos, análisis en tiempo real y machine learning para tomar mejores decisiones.

Datalake en AWS

Los lagos de datos con tecnología de AWS, están respaldados por la disponibilidad inigualable de Amazon S3 y pueden manejar los siguientes 3 enfoques: la escala, la agilidad y la flexibilidad.

Escalabilidad

Recopile, almacene, organice y analice datos de múltiples fuentes y formatos, y escale a cualquier tamaño. Utilice AWS Lake Formation para automatizar las tareas necesarias para configurar un lago de datos mientras ahorra tiempo en la definición de estructuras, esquemas y transformaciones de datos.

Agilidad

Implemente la infraestructura que necesita prácticamente al instante. Esto significa que los equipos pueden ser más productivos, probar cosas nuevas fácilmente e implementar proyectos antes.

Flexibilidad

Capture datos fácilmente de diversas formas, incluida la utilización de Amazon Kinesis, AWS Import/Export Snowball, AWS Direct Connect y más. Almacene todos los datos, independientemente del volumen o formato, con Amazon Simple Storage Service (Amazon S3).

Construir un Datalake con las mejores prácticas

A continuación enumeramos los pasos para la construcción de un datalake con las mejores prácticas:

1. Identificar necesidad del proyecto:

Al iniciar un proyecto de data lake, debe existir una estrecha relación con el negocio conocer sus necesidades y como agregaremos valor implementando el datalake.

2. Descubrimiento de los datos.

Se deben plantear ciertas interrogantes como: cuál es el tipo de ingesta de los datos hacia el datalake?,La ingesta pueden ser cargas únicas, por lotes o en tiempo real donde se pueden cargar datos no estructurados, semi estructurados y estructurados con diversas fuentes de datos como FTP, servidores web, bases de datos o IoT.

4. Calidad de los datos:

Para mantener datos de mejor calidad se recomienda buscar la máxima automatización posible, reduciendo la intervención manual en cualquier proceso ya que esto incrementa las probabilidades de aparición de errores.

5. Definir la Arquitectura Inicial:

En este punto se plantea la estrategia para gestionar los datos acorde a las necesidades del negocio definiendo los servicios a utilizar inicialmente y para esto se puede realizar una prueba de concepto para obtener un resultado que nos ayude a realizar cualquier corrección necesaria.

6. Prever el crecimiento de los volúmenes de datos:

Los volúmenes de datos pueden aumentar drásticamente, es por esto que se debe planificar la forma en que se gestionará el almacenamiento de datos en el presente, también se debe pensar en cómo lidiar con los cambios y el crecimiento de los volúmenes de datos en el futuro.

7. Preservar los datos sin Procesar:

Los datos de origen se deben conservar, por lo que se pueden reutilizar repetidamente a medida que surgen nuevos requisitos. 

8. Estrategia de seguridad:

Las capas de ingesta, almacenamiento, transformación y carga en la arquitectura del lago de datos deben protegerse para resguardar los datos del acceso no autorizado, asegurando la privacidad, confidencialidad y acceso apropiado de los datos.

9. Gobierno de datos:

Se debe definir de forma centralizada la seguridad, el gobierno y las políticas de auditoría, que permitan ganar visibilidad acerca de quién está accediendo a qué datos, cómo se están integrando o para qué lo están utilizando, el servicio AWS Lake Formation permite a los administradores de datos otorgar y revocar permisos granulares a nivel de tabla y columna sobre tablas del Glue Data Catalog y los buckets de S3.

Servicios clave dentro de un Datalake

Base del lago de datos: Amazon S3, AWS Lake Formation, Amazon Athena y AWS Glue

Amazon S3 es un servicio primordial a la hora de crear lagos de datos debido a su durabilidad, disponibilidad, escalabilidad y seguridad, como repositorio de información. AWS Lake Formation, puede crear lagos de datos seguros en días en lugar de meses, apoyándose en AWS Glue, como herramienta de ETL que permite el movimiento y transformación de datos. AWS Athena permite realizar las consultas ad-hoc sobre la data expuesta, producto de un ETL ejecutado con antelación.

En el diagrama presentado, el servicio AWS Glue ejecuta un script (a través de un job) que se conecta a los datos de origen del Bucket Raw. Luego los procesa y después escribe el resultado en un Bucket stage con formato Parquet. Estos archivos están optimizados, ahorrando espacio de almacenamiento, costos y tiempo en las consultas, éstos datos se catalogan y se integran con el servicio de AWS Athena por medio de un repositorio de metadatos unificado, con el cual se puede abstraer la información de S3 y ejecutar diversos procesos de consultas que culminen en tablas o vistas.