Conceptos base de ETL
Clase 2 de 25 • Curso de Fundamentos de ETL con Python y Pentaho
Contenido del curso
Clase 2 de 25 • Curso de Fundamentos de ETL con Python y Pentaho
Contenido del curso
Yeder Laura vicente
Bryan Carvajal
Lorena Monserrat Campuzano Sánchez
Lorena Monserrat Campuzano Sánchez
Juan Sebastián Vargas Castañeda
David Arenas Zapata
Carlos Eduardo Bracho Rosales
Jonathan Barzola
Claudio Sepulveda
Lorena Monserrat Campuzano Sánchez
JOSE DANIEL ALVEAR ACEVEDO
Andres Sanchez
Daniel Calderón
Santiago Ahumada Lozano
Ricardo R.
Mario Alexander Vargas Celis
María Elvira Ureña
Franco Torres
Nicolás Muriel
Percy Oswaldo Herrera Mogrovejo
Alejandra Gonzalez
Fernando Sánchez Mejía
Renato Alvarez Ortega
Juan Sebastián Vargas Castañeda
Diferencia entre Data Lake vs Data Lakehouse
Data Lake:
Data Lakehouse:
Gracias mister!
Star schema
. Un star schema es un tipo de técnica de modelado de datos utilizada en los data warehouses para representar datos de una manera estructurada e intuitiva. Los datos se organizan en una fact table central que contiene las medidas de interés, rodeadas de dimension tables que describen los atributos de las medidas. Las dimension tables permiten a los usuarios analizar los datos desde diferentes perspectivas. Cada dimension table se une a la fact table a través de una relación de foreign key. Esto permite a los usuarios consultar los datos en la fact table utilizando atributos de las dimension tables. . El star schema es una técnica popular de modelado de datos en el data warehouse porque es fácil de entender y consultar. La estructura simple del star schema permite tiempos de respuesta de consulta rápidos y un uso eficiente de los recursos de la base de datos. Además, el star schema se puede ampliar fácilmente agregando nuevas dimension tables o medidas a la fact table, lo que la convierte en una solución escalable y flexible para el almacenamiento de datos (data warehousing).
👌🏻 Quería más info del modelo estrella
Conceptos
Source (fuente): de dónde voy a sacar los datos, estructuradas, no estructuradas, APIs, CRM.
Target (Objetivo): donde voy a cargar el proceso de ETL, por lo general base de datos unificada columnar (snowflake, redshift, big query) o transaccionales (Oracle, postgreSQL, mysql).
Staging: área de paso (suele ser en memoria), dónde se van a hacer transformaciones. Se pueden guardar en bases de datos para luego retomar la transformación y proceder al load.
Data Warehouse: bodega de datos, almacenar datos de una manera definida.
Star model: una manera de cargar todas las fuentes y estructuras al Data Warehouse. una tabla con solo métricas importante, y tablas alrededor llamadas dimensiones (se conectan con las metrices usualmente con Foreign key).
Data Lake: repositorio dónde se manda información, formato nativo o raw de los datos (datos sin modificaciones, cómo los genera el origen). Se guarda en disco duro.
Data Lakehouse = Data Warehouse + Data Lake: se guarda de manera raw de los datos, pero se tiene una capa de consulta (sql, spark) para realizar analítica sin mover los datos. Se una con el proceso ELT.
Aqui otro video en donde se ven estos conceptos 😁 Cómo funciona la ingeniería de datos
Muy buen video!
"El modelo estrella se compone de una tabla central llamada tabla de hechos, que contiene información cuantitativa y numérica (como ventas, ingresos, cantidad de productos vendidos, etc.) y varias tablas dimensionales que contienen información descriptiva y contextual (como fecha, hora, ubicación, productos, clientes, etc.)."
Un data warehouse es la tecnología de almacenamiento de big data más antigua con una larga historia en aplicaciones de business intelligence, informes y análisis. Sin embargo, los date warehouses son costosos y tienen problemas con los datos no estructurados, como los datos en streaming y la variedad de datos. . Los data lakes surgieron para manejar datos sin procesar en varios formatos en almacenamiento económico para workloads de ciencia de datos y machine learning. Aunque los data lakes funcionan bien con datos no estructurados, carecen de las funciones transaccionales ACID (atomicity, consistency, isolation, and durability) de los data warehouses, lo que dificulta garantizar la coherencia y la confiabilidad de los datos. . El data lakehouse es la arquitectura de almacenamiento de datos más nueva que combina la rentabilidad y la flexibilidad de los data lakes con la confiabilidad y consistencia de los data warehouses. .
Buen aporte, gracias.
2. Conceptos base de ETL
En el data lakehouse los datos reposan en un data lake y la capacidad analitica a traves de spark por ejemplo.
¿Los datos deben duplicarse para dejarlos en una tabla como tipo formato abierto (Delta Lake, Iceberg o Hudi) ?
Hola! En qué casos suele ser más útil un proceso ELT que un proceso ETL?
Los conceptos básicos presentados en la clase sobre ETL incluyen:
Estos conceptos son fundamentales para entender el proceso ETL.
### Conceptos Base de ETL (Extract, Transform, Load)
ETL (Extraer, Transformar, Cargar) es un proceso fundamental en la ingeniería de datos que permite trasladar y procesar datos desde múltiples fuentes hacia un destino final para análisis o almacenamiento. A continuación, se describen los conceptos base:
### **1. Extracción (Extract)****Definición:** Es el proceso de recopilar datos desde una o varias fuentes heterogéneas. Las fuentes pueden incluir bases de datos relacionales, archivos planos (CSV, JSON, XML), APIs, logs, o sistemas ERP.
**Características:**- **Variedad de fuentes:** Datos estructurados (tablas SQL) y no estructurados (archivos de texto, imágenes).- **Objetivo:** Obtener datos sin alterar su formato original.- **Herramientas comunes:** Conectores de bases de datos, APIs REST, scripts personalizados.
**Ejemplo:** Conectar a una base de datos SQL para extraer una tabla de usuarios:sqlSELECT \* FROM usuarios;
### **2. Transformación (Transform)****Definición:** Es la etapa donde los datos se limpian, estandarizan, enriquecen o transforman para adaptarse a las necesidades del negocio o del sistema de destino.
**Operaciones típicas:**- **Limpieza:** Eliminar valores nulos, duplicados o inconsistentes.- **Normalización:** Cambiar formatos de fecha o convertir unidades de medida.- **Cálculos:** Crear nuevas columnas (por ejemplo, calcular ingresos anuales a partir de ingresos mensuales).- **Enriquecimiento:** Combinar datos de múltiples fuentes.- **Validación:** Asegurarse de que los datos cumplen con reglas de negocio específicas.
**Ejemplo:** Convertir un archivo CSV de ventas en un formato estandarizado:pythonimport pandas as pd \# Cargar datosdata = pd.read\_csv("ventas.csv") \# Limpiar y transformardata\['fecha'] = pd.to\_datetime(data\['fecha'])data\['total'] = data\['cantidad'] \* data\['precio\_unitario']data = data.dropna() # Eliminar valores nulos
### **3. Carga (Load)****Definición:** Es el proceso de mover los datos transformados al sistema de destino, como un almacén de datos (Data Warehouse), base de datos, o sistema de análisis.
**Tipos de carga:**- **Carga completa:** Sobrescribe los datos existentes en cada ejecución.- **Carga incremental:** Solo se cargan los datos nuevos o modificados.- **Carga en tiempo real:** Los datos se envían continuamente al destino.
**Herramientas comunes:** - SQL para bases de datos relacionales.- APIs o conectores específicos para sistemas en la nube como Amazon S3 o Google BigQuery.
**Ejemplo:** Insertar los datos procesados en una tabla de SQL:sqlINSERT INTO ventas\_procesadas (fecha, producto, cantidad, total)VALUES ('2024-01-01', 'Laptop', 10, 15000);
### **Objetivo del Proceso ETL**El propósito principal de ETL es consolidar datos dispersos en un solo lugar, procesarlos para que sean útiles y garantizar que estén listos para el análisis o la toma de decisiones. Esto incluye:- **Integración:** Combinar datos de diferentes fuentes.- **Consistencia:** Proveer datos limpios y estructurados.- **Eficiencia:** Reducir la complejidad del acceso y análisis.
### **ETL vs. ELT**Aunque ETL es el enfoque tradicional, **ELT (Extract, Load, Transform)** es una variación que carga los datos directamente en el almacén de datos antes de transformarlos. Esto se utiliza especialmente en sistemas modernos basados en la nube.
Gracias por explicar de forma clara y concisa.
ETL es, básicamente, el proceso de extraer datos de las sources (de donde se extraen los datos, fuentes), unificarlos de manera coherente (entendido como una transformación) y cargarlos en los targets (donde cargo los datos, objetivos) en un Data Warehouse.
Mientras que ELT implica cargarlos antes de transformarlos, ahora no en un Data Warehouse (estructura definida), sino en un Data Lake con una estructura raw (sin transformar, cruda), o en un Data Lakehouse, que es un Data Lake pero con una abstracción para realizar análisis sin mover los datos.
Hola! Para todos los que quieran aprender de ELT, les recomiendo aprender dbt, data warehousing, loaders EL y data analytics, con esto hay muchas opciones de plan carrera hoy en dia.
Soy Analytics Engineer y construi mi carrera con este enfoque sobre el enfoque mas tradicional de ETL que es practicamente obsoleto hoy en dia.
Saludos! Feliz de poder asesar a quien necesite, pues muchas veces los cursos de data son muy "atrasados" con relacion a como trabajan las startups o empresas mas modernas.
hola Nicolas, no me quedo claro porque ELT es superior que un ETL, podrías comentarlo? gracias
++ETL++: Se extraen los datos y la transformación de estos se hace antes de la carga a la base de datos. ++ELT:++ El proceso extrae y almacena los datos en BD sin transformación previa, esta se realiza recién en el últimos paso
El staging me recordo el proceso de Git y github, donde esta en espera antes de ser mandado a producción.
Source: lugar de donde voy a extraer los datos. La fuente. Ej: bases de datos, archivos.
Target: el objetivo, lugar donde voy a cargar el resultado de la ETL. Casi siempre es una base de datos, pero realmente es cualquier repositorio de información donde van a reposar los datos extraidos.
Staging: un área en memoria, lugar donde se harán las transformaciones. Casi siempre suele ser un espacio en memoria.
Data warehouse: bodega de datos. Almacenamos datos con una estructura definida.
* Star Model: modelo de estrella. Una tabla donde estarán solo métricas, y tablas a las que llamamos dimensiones que giran en torno a las métricas.
Data lake: almacenamos datos, es un filesystem, admite datos sin modificaciones, sin una estructura definida, guarda los datos con su estructura original sin haber pasado aún por un proceso de limpieza.
Data Lakehouse: es una combinación de los dos anteriores, los archivos están guardados de manera cruda en un filesystem, pero contiene una capa que me permite consultar estos datos.
ELT: Extracción, carga y transformación. ETL: Extracción, transformación y carga.
Fact vs. Dimension Tables: Star Schema