¿Cómo se estructura una arquitectura Delta Lake en Databricks?
La arquitectura Delta Lake es esencial para el almacenamiento y procesamiento de grandes volúmenes de datos, garantizando su integridad y disponibilidad para futuras consultas. Especialmente útil en procesos de análisis de datos como Power BI y Machine Learning, esta arquitectura se organiza en capas jerárquicas en el sistema de archivos de Databricks. Aquí, repasaremos cómo crear y estructurar estas capas para optimizar el flujo de datos.
¿Qué capas conforman Delta Lake?
Delta Lake cuenta principalmente con tres capas:
Capa de Bronce:
Almacena datos en formato raw.
Permite la ingestión de datos desde diversos orígenes: bases de datos, servicios en la nube, procesos batch, y en tiempo real.
Capa de Plata:
Realiza las transformaciones de datos.
Aquí se llevan a cabo tareas de limpieza y preparación de datos para el siguiente nivel de procesamiento.
Capa de Oro:
Guarda datos finales listos para análisis de negocio y creación de modelos de Machine Learning.
Se utilizan para reportería como tableros de control y consultas de inteligencia de negocios.
¿Cómo se implementa una capa en Databricks File System?
Comencemos con la creación de las capas dentro del sistema de archivos en Databricks, siguiendo estos pasos:
# Crear directorio para la capa de orodbfs mkdirs [ruta_a_DeltaLake]/gold
# Crear subdirectorio para datos finales en la capa de orodbfs mkdirs [ruta_a_DeltaLake]/gold/final_data
Este código básico es crucial para mantener organizados los datos y facilitar su manejo en procesos posteriores.
¿Cómo se visualiza y verifica la arquitectura?
Una vez creada la estructura, puedes verificar visualmente en Databricks si todos los directorios están correctamente configurados.
Dirígete al catálogo en Databricks.
Dentro del Databricks File System, busca la carpeta llamada File Store.
Localiza el directorio Delta Lake.
Inspecciona cada capa ya definida: bronce, plata y oro, verificando subdirectorios como row en bronce, cleaning_data en plata y final_data en oro.
¿Cómo se transforman los datos entre capas?
Mover datos entre las capas requiere transformaciones vitales, incluyendo:
Cambiar tipos de datos.
Realizar uniones y joins.
Modificar nombres de columnas.
Agregar o eliminar columnas según sea necesario.
Estas transformaciones son partes de un proceso ETL (Extracción, Transformación y Carga). Los datos se extraen inicialmente de fuentes externas, se transforman en la capa de plata y se cargan en la capa de oro para su uso en negocios.
¿Cuáles son los usos y beneficios de Delta Lake?
La arquitectura Delta Lake es ampliamente aplicable para proyectos avanzados gracias a:
Su capacidad para manejar datos en tiempo real y batch.
El uso eficiente de Apache Spark y Databricks como herramientas de procesamiento.
La flexibilidad para adaptarse a cambios y evoluciones del negocio sin pérdida de datos ni integridad.
Ahora que tienes las herramientas y el conocimiento para implementar tu propia arquitectura Delta Lake, es el momento de ponerlo en práctica. No dudes en compartir tus experiencias y retos encontrados en este apasionante journey por el manejo de datos.
Voto por el proóimo el curso intermedio de Databricks. Mas curso de Databricks
Gracias por el apoyo :) Me alegra que lo hayas disfrutado! Un saludo!
Solicitamos un siguiente curso, para profundizar temas de Databricks, arquitectura delta lake y toda la lógica que se realiza en cada capa, excelente curso.
Gracias Luis :) lo tendremos en consideracion!
Mas Databricks POR FAVOR!
Es el primer curso de Data relevante despues de mucho tiempo.
Gracias Andres, por tus palabras :) Un saludo!
Me gustó el enfoque del curso, me parece que la continuación de este curso debería estar enfocado en crear procesos ETL utilizando estas capas. También tengo una pregunta, ¿por qué es necesario realizar una transformación desde la capa Silver a la capa Gold, sabiendo que en la capa Silver ya deben estar todas las transformaciones y limpiezas? ¿No debería ser más bien Gold una copia de Silver con los datos ya curados?
Hola podria ser, pero a veces no necesariamente es asi, porque generalmente en la capa de gold, se deja todo con una perspectiva de negocio :) ya listo para utilizarse en ese sentido. Un saludo!
En mi caso, la capa de gold contiene diferentes tablas con agrupaciones de los datos, por departamento, por período, por área de negocio.
Mientras que silver contiene una tabla con todos los datos originales fila por fila, lo cual es muy demorado de procesar.
En este ejemplo gold es más eficiente para las áreas de negocio que quieren ver resúmenes y no el 1 a 1.
Me encantó el curso. Estos temas estarían genial para una segunda parte:
Ingesta a través de una API/archivo json.
Transformación de los datos.
Conexión a algún software de BI.
Guardado de los datos en un DataLake Gen2.
Creación de Job para automatización del proceso.
Muy interesante :)
Genial el curso!!! El proximo curso seria genial implementación de Deltalake orientado a mongobd y terminando con la integracion a Power bi
Me gusta la idea Sandra :)
Genial, falta un proyecto completo en databricks con arquitecturas Data Lake y Delta Lake, para quedar super bien en el tema.
Si :) Un saludo!
Implementación de un Delta Lake sobre Databricks - Parte 2
En esta segunda parte, se continuará con la implementación de Delta Lake sobre Databricks, añadiendo funcionalidades adicionales y explorando más casos prácticos.
Paso 1: Leer datos desde Delta Lake y explorar
Una vez que los datos han sido guardados en un Delta Lake, puedes leer estos datos y explorar su contenido.
Z-Ordering: Mejora las consultas para conjuntos de datos grandes.
delta_df.optimize("column_to_optimize").execute()
Paso 5: Gestión de Historias en Delta Lake
Delta Lake proporciona un historial completo de los datos. Puedes explorar todas las versiones anteriores y llevar a cabo operaciones de "vacuum" para mantener solo las versiones relevantes.
history_df = delta_df.history()
history_df.show()
delta_df.vacuum(2) # Mantener las últimas dos versiones
Paso 6: Escribir y leer en Delta Lake con transacciones ACID
Mantener la integridad de los datos es esencial. Las transacciones ACID garantizan que los datos permanezcan consistentes y seguros.
En esta parte, hemos explorado cómo leer, modificar y optimizar los datos en un Delta Lake en Databricks. Delta Lake mejora significativamente la gestión de datos en entornos distribuidos al ofrecer capacidades avanzadas como transacciones seguras, optimización de rendimiento y auditoría de cambios.
Para agregar comentarios a tu código en Databricks y así entender mejor cada capa de tu arquitectura Delta Lake, puedes usar el símbolo # al inicio de la línea donde quieras insertar el comentario. Por ejemplo:
# Capa de Bronze: Datos crudos# Creamos el directorio para la capa de Bronzedbutils.fs.mkdirs("/delta_lake/bronze")# Capa de Silver: Datos transformados# Creamos el directorio para la capa de Silverdbutils.fs.mkdirs("/delta_lake/silver")# Capa de Gold: Datos finales# Creamos el directorio para la capa de Golddbutils.fs.mkdirs("/delta_lake/gold")
Asegúrate de que cada comando se ejecute correctamente y verifiques el valor booleano que debe ser true, indicando que se creó el directorio sin errores.
woow, usaron 10 minutos y dos partes para "enseñar" como crear directorios?
Es enserio?
Hola Javier, gracias por tu comentario. Si es correcto, lo que ya sepas lo podes saltear. Saludos :)
De acuerdo, faltó mejor profundizar en las diferencias entre los niveles en lugar de solo crear unas carpetas vacías.
Sería increíble contar con una nueva versión de este curso que incluya la creación y orquestación completa de Workflows y Jobs en Databricks. Sería un gran aporte que se muestre cómo diagramar y automatizar cada fase del pipeline de datos —desde la capa Bronze, pasando por Silver, hasta llegar a Gold— utilizando buenas prácticas, dependencias entre tareas y ejemplos reales de arquitectura.
Esto permitiría entender no solo el procesamiento de datos, sino también cómo operativizarlo en un entorno moderno de ingeniería de datos end‑to‑end.
Gran curso de Databricks, sería buenísimo hacer uno sobre DLT y Jobs
Como empleado de Databricks, puedo confirmar que la utilizacion de DBFS se esta pidiendo de dejar de ser utilizada dato que este path no tiene governanza por medio de ACL (Access Control Level) entonces cualquier informacion sensible puede ser accesada por cualquier usuario.
Como best practice, siempre recomendamos utilizar el feature de volumes, los cuales tienen ACL a traves de Unity Catalog. Dejo los articulos abajo para los que quieran indagar en esto:
-
-
Siguiente Curso de Databricks por favor! super necesario, muchas empresas lo estan usando
Muy bueno y didáctico. Hubiera sido bueno unas pequeñas transformaciones y algo que consumiera la última capa gold así todo más redondo. Lo que me queda de duda es en qué momento se crea el formato delta binario, así son solo carpetas o es que en las transformaciones se lo transforma a binario ?
Las transformaciones para cambiar el formato a delta binario no fueron específicamente cubiertas en esta transcripción. La capa de gold solo se menciona como el lugar donde los datos transformados están disponibles para el negocio.
dos dudas, 1. Acá creamos carpetas desde un notebook es posible crearlas directamente desde una terminal de Databricks? 2.- La capa de negocio, gold, en qué tipo de formato la tendríamos idealmente ? en parquet? en una base de datos SQL?
Con la version gratis de Databricks no, pero la de pago te permite trabajar con la consola, y ahi si podrias :)
dbutils es una utilidad en Databricks que facilita la interacción con el sistema de archivos y el entorno de ejecución. Se utiliza para gestionar archivos, directorios y bibliotecas dentro del Databricks File System (DBFS). Con dbutils, puedes realizar operaciones como copiar, mover y eliminar archivos, así como obtener información sobre los mismos. Esta herramienta es especialmente útil al trabajar en proyectos de análisis de datos y al implementar arquitecturas como Delta Lake, permitiendo una gestión eficiente de los datos en las distintas capas.
We need intermediate and advanced Databricks courses, please keep doing this course. ✌️
Gracias Juan, un saludo :)
Gracias profe que buen curso, bendiciones, espero otro curso por ti donde se pueda ampliar mas el tema