preloader
post-thumb

Desarrollo del proceso ETL

Índice de contenido

Resumen:
En esta sección se expone con detalle la definición de ETL, se describen los pasos fundamentales del proceso, se comentan las técnicas más empleadas para garantizar calidad y eficiencia, y se ofrece un panorama de las herramientas disponibles en el mercado para llevarlo a cabo.
¿Cómo citar el presente artículo?
Romero, J. (1 de mayo de 2025). Desarrollo del proceso ETL. python-data-engineer. https://python-data-engineer.netlify.app/post/etl/desarrollo/.
Desarrollo del proceso ETL by Jeshua Romero Guadarrama, available under Attribution 4.0 International (CC BY 4.0) at https://python-data-engineer.netlify.app/post/etl/desarrollo/.

Desarrollo del proceso ETL

a) Definición de ETL


**ETL** (Extract, Transform, Load) es el flujo de trabajo mediante el cual se **extraen** datos de una o varias fuentes, se **transforman** para garantizar su calidad y adecuación al esquema destino, y finalmente se **cargan** en un repositorio central (Data Warehouse o Data Lake). Por ejemplo, en un proyecto de análisis de ventas, podríamos extraer registros de un CRM, transformar fechas al formato ISO, depurar clientes duplicados y cargar el resultado en la tabla de hechos para alimentar reports ejecutivos.

b) Pasos del proceso de ETL


1. **Extracción** - Conexión a orígenes (bases de datos, APIs, ficheros planos). - Selección de datos relevantes (consultas SQL, filtrado). - Captura inicial (full load) o incremental (Change Data Capture).
  1. Transformación

    • Limpieza: eliminación de duplicados, tratamiento de nulos, validación de formatos.
    • Enriquecimiento: incorporación de campos calculados, lookup de dimensiones.
    • Normalización y denormalización según modelo destino.
    • Agregación de métricas (sumas, promedios, conteos).
  2. Carga

    • Inserción/borrado o actualización de registros en destino.
    • Estrategias de carga: batch, micro-batch o flujo continuo.
    • Optimización de índices y particiones.

c) Técnicas utilizadas en el proceso ETL


- **Full Load vs. Incremental Load**: cargas completas frente a cargas que solo procesan cambios. - **Change Data Capture (CDC)**: detección y captura de modificaciones en origen. - **Push-Down Optimization**: delegar transformaciones complejas al motor de la base de datos. - **Particionamiento y paralelismo**: dividir datos en trozos para procesar en paralelo. - **Data Profiling**: análisis de calidad y estadísticas de los datos antes de transformarlos. - **Data Cleansing Rules**: aplicación de reglas de negocio para normalizar y validar registros. - **Staging Area**: uso de tablas temporales o zonas intermedias para aislar procesos y manejar errores.

d) Herramientas utilizadas en el proceso de ETL


- **Comerciales** - *Informatica PowerCenter*: orquestación avanzada, conectividad amplia. - *IBM DataStage*: alto rendimiento para entornos corporativos. - *Microsoft SSIS*: integrado con el ecosistema SQL Server.
  • Open Source

    • Talend Open Studio: interfaz gráfica, conectores nativos.
    • Pentaho Data Integration (Kettle): pipelines visuales y scripts.
    • Apache NiFi: flujos de datos en tiempo real y control de back-pressure.
  • Orquestadores y Frameworks

    • Apache Airflow: definición de DAGs en Python, scheduling flexible.
    • dbt: enfoque ELT con transformaciones en SQL puro.
  • Cloud / Serverless

    • AWS Glue: ETL serverless con integración a catálogo de datos.
    • Azure Data Factory: pipelines híbridos en la nube de Microsoft.
    • Google Cloud Dataflow: procesamiento por streaming y batch con Apache Beam.

Con estas bases, en la siguiente sección analizaremos en profundidad una de estas herramientas: Apache Airflow.

comments powered by Disqus