Introducción a los Data Lakes
Tags: datalake, aws, spanish, dataengineering
Published: 2024-01-21 23:36:23

Hola a todos como post inaugural en esta comunidad me gustaría contarles un poco sobre Data Lakes de una forma un poco más general. 

## Que es un DATA LAKE ? 
Un data lake es un gran repositorio de datos estructurados y no estructurados, es donde podemos volcar todos los datos que genera la compañia. 

En general los data lakes son estructuras bastante mas grandes en cuanto a volumen y capacidad de procesamiento que una base de datos normal.

Los data lakes y especialmente los data lakes en aws cobraron una notoriedad muy grande en los ultimos años, ya que nos permiten escalar en volumen de datos y capacidad de procesamiento de manera eficiente y a costos sensiblemente más bajos que con los métodos tradicionales.

# Flujo de los datos

Como gran sistema de procesamiento y almacenamiento de información el data lake tiene 3 objetivos principales.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4rbaoh0cn4ct0fg33gkt.png)

# Crecimiento de los datos

Otra cuestión importante que tienen los data lakes es el crecimiento de los datos, en un data lake podemos almacenar datos de practicamente cualquier formato: 

- Actividad de los usuarios/clientes
- Sensores IOT
- Mensajeria y Redes sociales
- Emails
- Fotos
- Videos

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zhq2l0s9rklzomqy44p.png)

Estos datos pueden crecer muchisimo dependiendo del rubro y caso de uso, pero uno siempre piensa que tiene muchos menos datos de los que cree.

# Desafios en la administración de un Data Lake

Algunos de los desafios que plantea la administración de un Data Lake se pueden ver a simple vista, mientras que otros surgen de el descontrol de los primeros. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6m9bshrtkrn9w5l2ly4d.png)

En primer lugar tenemos que un data lake está en constante crecimiento y de manera exponencial algo que al final del día debe estar ordenado y aplicado de manera costo eficiente.

Luego tenemos las fuentes de datos, sistemas de archivos, apis, bases de datos, sistemas enlatados, streaming de video, redes sociales. No hay límite en cuanto desde donde podemos recibir información lo que nos obliga a mantenernos versátiles. 

Como tercer punto tenemos la diversidad de esos mismos datos como vimos anteriormente, cualquier tipo de archivo del que podamos extraer un dato califica para ingresar a un data lake.

y como último desafio tenemos los más importantes a mi parecer, la cantidad de usuarios que van a utilizar el data lake y luego la capacidad de integración que requiera nuestro  lago de datos con sistemas externos ya sea para analizar y/o visualizar información. 

## Arquitectura de un Data Lake en AWS

Ahora que ya sabemos que es y porqué es tan importante un data lake hoy en día, vemos cual es la arquitectura mínima que debemos crear para que nuestro proyecto califique como un data lake. 

# Canalización del análisis de datos

Definamos entonces cual es el proceso que debe seguir un dato al momento de ingresar en un data lake y como este debe actuar para que al final de todo ese camino obtengamos información.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67o9537cmxcnt6mh0y2m.png)

Como pueden ver el proceso está separado en pocos pasos:

1. **Recopilar**: Aqui es donde aplicamos las tecnicas necesaria para que el dato viaje a nuestra infraestructura, ya sea que nosotros tengamos que ir a buscarla como tambien proveer un método que le permita a los proveedores de datos enviarlos al data lake. Una vez que el dato llega se almacena crudo. 
2. **Procesar y Analizar**: En esta estapa vamos a tomar los datos crudos y los trabajaremos de manera que podamos obtener finalmente información relevante donde nuevamente vamos a almacenar la información en el repositorio correspondiente.
3. **Visualizar**: Por ultimo una vez que ya tenemos información debemos utilizar algun tipo de herramienta que permita al usuario visualizarla y analizarla de una manera que se ajuste a su caso de uso. Quizá con una herramienta de BI para un usuario mas ejecutivo o algo más potente como una jpyter notebook para un analista de datos. 

> La clave de este proceso es entender segun el dato y el caso de uso con que velocidad necesitamos tenerlo disponible desde su momento de creación. **Así definiremos el balance entre costo y latencia/rendimiento.**

## Próximos pasos

En el siguiente post vamos a repasar los servicios de aws que necesitamos minimamente para montar un Data Lake completamente Serverless.