Métodos de implementación ETL
Hola, quiero compartir un concepto simple pero muy útil a la hora de integrar datos de diferentes fuentes, con el fin de lograr nuestro objetivo, ya sea para construir un reporte, un tablero (Dashboard) o incluso un modelo de Machine Learning. Estoy hablando de ETL (Extracción, Transformación y Carga), pero no específicamente del término general en sí, sino de los dos métodos de implementación que existen:
1 Nivel de Staging tables
3 Niveles de staging tables
¿Pero primero, que es un “Staging Table”?
Una tabla de "staging" (o tabla de preparación) es una tabla temporal que se utiliza en bases de datos y procesos de ETL (Extract, Transform, Load, por sus siglas en inglés) para almacenar datos de manera provisional antes de ser procesados y cargados en su destino final (Target).
La idea detrás de una tabla de staging es proporcionar un área de trabajo intermedia donde los datos pueden ser manipulados y transformados según sea necesario antes de pasarlos a su destino final.
Simple como eso. Entonces vámonos a un ejemplo práctico para que puedas entenderlo mejor.
Imagina que te solicitaron hacer un tablero en Power BI de las ventas por año y por clientes.
Tú como analista debes investigar primero la fuente de datos: Hojas Excel, archivos planos, sistema ERP, bases de datos o cualquiera otra fuente. Luego de identificar tus fuentes, entonces elijes las columnas que vas a necesitar, según el requerimiento. Imaginemos elegiste las siguientes columnas para tus tablas:
Ahora toca decidir cual nivel de staging vas a utilizar para cargar tus datos:
1 Nivel de Staging tables
Source: Fuente, tabla original.
Staging: Tabla Temporal (una réplica exacta de tu tabla fuente, pero si quieres auditar, agregas un campo llamado fecha de inserción o algo así).
Target: Tabla Final.
Recomendado por LinkedIn
Vamos a presentar su implementación solamente con la tabla Clientes:
3 Niveles de Staging tables:
Source ----- S1 ----- S2 ----- S3 ----- Target
S1: Estas tablas suelen ser una réplica exacta de las tablas de origen. Estas tablas se utilizan para extraer los datos de las fuentes lo más rápido posible (uno de los objetivos de un buen diseño ETL), por lo que estas tablas son réplicas de las tablas de origen.
S2: Estas tablas se utilizan como área de almacenamiento temporal para datos parcialmente transformados.
S3: Estas tablas suelen ser una réplica exacta de las tablas de destino (target). Estas tablas se utilizan para cargar los datos en el target más rápidamente.
Target: Obviamente, la data final ya transformada.
Ejemplo:
Notas finales:
Conclusión: existen más ventajas detrás de estas metodologías, pero lo más importante es entender su funcionamiento. Pon tú mismo en práctica esto y crea en tu motor de base de datos preferido las dos metodologías nivel 1 o Nivel 3.
En estos últimos años de mi trayectoria trabajando con datos, he aprendido a que no debemos de asumir y hacer las cosas a nuestro parecer, reinventando la rueda, existiendo tantas buenas prácticas, las cuales debemos seguir para evitar dificultades, ya sean de rendimiento, inconsistencias o cualquier otro hallazgo atípico al momento de presentar la información final.