3 Pecados Capitales cometidos en los procesos ETL
En iniciativas del tipo Data Warehousing / Business Intelligence (DW/BI) y Data Science, un término que aparece con frecuencia es “ETL” o “Sistemas ETL”, el cual en adelante por facilidad, mencionaré indistintamente como ETL, los ETL o Procesos ETL.
Durante los 90’, cuando se acuña el término ETL, este era utilizado para referirse a procesos técnicos que extraían datos de diversos sistemas, los transformaban, para posteriormente cargarlos a un Data Warehouse, de ahí la sigla en inglés Extract, Transform and Load. Desde aquella época que los ETL son considerados como una actividad “Back Room” la cual no tiene mucha visibilidad para los usuarios finales, como diría uno de nuestros clientes: “Son pegas subterráneas”.
Desde mi punto de vista, uno de los problemas que trajo esta sigla y su repetición "marketinera" es que simplifica en demasía todo lo que involucra. El 2004 ya se indicaba que los ETL fácilmente consumen el 70% de los recursos de un proyecto [1], el 2019 en AWS Cloud Experience Chile, este porcentaje subió a un 80% (ver sección Data Lakes). A pesar de ser una actividad de poca visibilidad, es claro que un sistema ETL puede hacer a un DW exitoso o un fracaso rotundo, y parte del éxito pasa por incorporar actividades concretas que no se mencionan en la sigla tan repetida: ETL.
Un sistema ETL bien diseñado considera la extracción de datos de diversos sistemas, aplica criterios de calidad (Data Quality) y consistencia de datos, los unifica (conforma) para que puedan ser utilizados en conjunto y finalmente entrega los datos, en un formato usualmente dimensional, para que los desarrolladores/analistas BI puedan crear aplicaciones y los usuarios finales puedan tomar decisiones.
De la teoría ETL a la práctica ECCD
Pero Lenin, ¿Qué hace que un sistema ETL sea complejo? Un sistema ETL debe:
¿Algo más? Sí, Hardware, Software, Skills y licencias .
Por eso, desde mi punto de vista, la sigla ETL queda corta, aunque este tema me apasiona, el objetivo de esta entrada no es explicar cómo hacer buenos ETL, sino más bien mencionar algunos de los pecados capitales que más he visto en las consultorías que en Lituus Analytics realizamos.
Recomendado por LinkedIn
Pecado Capital #1: No preservar la “historia” adecuadamente
Indicar a los usuarios que el DW / Data Lake almacena la historia de los últimos 10 años cuando todas las dimensiones son de tipo SCD1 (Slowly Changing Dimension) es decir la verdad a medias. Contar solo con dimensiones SCD1 implica que cada cambio de un atributo, por ejemplo el sueldo o el estado civil, es “reescrito o pisado”, es decir, solo se tiene la última versión del registro siempre y cuando el ETL no cometa el pecado capital #2.
Pecado Capital #2: Cargas Deltas
A la hora de realizar las extracciones, los desarrolladores ETL suelen hacer una carga inicial completa o “first” de los datos y posteriormente determinan que para no sobrecargar los sistemas origen, bastaría con extraer las novedades respecto al día que quedó desfasado. Esto es, configurar el proceso ETL para que seleccione todas las filas donde los campos de “fecha de creación” o “modificación” sea igual a sysdate -1, es decir, registros de ayer.
Y para terminar el último pecado...
Notas (Actualización al 2024):
Director of Maintenance | Mechanical Engineer | Data Specialist | Data Scientist | Data Engineer
4 añosLenin González Silva excelente artículo, si bien es cierto estos principios se marcan como objetivo en estos proyectos, se debe tener en cuenta la curva de madurez que se traza en el ciclo de vida del ETL. Además, si tenemos en cuenta estos factores claves que son: los datos con que cuenta la compañía, el capital humano y los procesos de negocio, algunas veces se debe iniciar cometiendo estos pecados conscientemente si quitar la mirada del objetivo final.
Arquitecto e Ingeniero de Datos en EY | Microsoft MVP Data Platform | Autor Libro Arquitectura e Ingenieria de Datos - Anaya Multimedia
4 añosTremendo Artículo Lenin. Como siempre una impecable explicación, Felicitaciones