Parámetros en ETL
Clase 23 de 26 • Curso de Data Warehousing y Modelado OLAP
Resumen
¿Cómo orquestar un flujo ETL de manera eficiente?
Orquestar un flujo de extracción, transformación y carga (ETL) es esencial para asegurar que el proceso se ejecute de manera optimizada. Vamos a explorar cómo crear un job para organizar las transformaciones de datos y asegurar una ejecución eficiente. Si deseas aprender más sobre ETL a profundidad, te recomiendo el curso de ETL con Python y Pentaho disponible en Platzi.
¿Cómo comenzar con la creación de un job?
Para empezar, es crucial organizar las transformaciones existentes en el orden correcto. Sigue estos pasos:
- Crear un nuevo job: Este te permitirá llamar a cada transformación en el orden específico que necesites.
- Orden de carga: Antes que nada, es esencial cargar las dimensiones (por ejemplo, clientes y territorios). Esto es porque las ventas dependerán de que esas dimensiones estén completamente disponibles para cruzarse con sus respectivos IDs.
¿Cómo se calcula el máximo ID de una tabla?
Para calcular el máximo ID, crearemos una transformación que funcione de manera dinámica para cualquier tabla y campo. A continuación, los pasos básicos:
SELECT MAX({consecutivo}) AS consecutivo FROM {tabla};
- Parámetros: Usa variables para definir el nombre de la tabla y el campo consecutivo, permitiendo que esta misma transformación funcione para cualquier tabla.
- Validación de nulos: Si el resultado es nulo, reemplazar por cero, ya que necesitamos números enteros.
- Suma de valores: Usa una constante para sumar "1" al máximo ID obtenido, asegurando que las nuevas inserciones sean únicas.
¿Cómo calcular la fecha máxima para las nuevas cargas?
La estrategia para calcular la fecha máxima también se basa en el uso de variables parametrizadas:
- Consulta de la fecha máxima: Similar al cálculo del máximo ID, se obtiene la fecha máxima registrada.
- Manejo de valores nulos: Si no hay fecha disponible, define un valor lejano en el pasado, por ejemplo, "01-01-1900", para asegurar la captura de todos los registros históricos en la primera carga.
- Uso de fechas en transformaciones: En cada transformación, filtra registros para incluir solo los nuevos datos desde la última fecha registrada, optimizando así el proceso de carga.
¿Cómo asegurar la correcta ejecución del job?
Una vez definidas las variables para el máximo registro ID y fecha, deben establecerse como variables de entorno para que sean accesibles durante todo el proceso ETL. Esto se consigue configurando:
- Variables: Asegúrate de que todas las transformaciones utilizan el mismo nombre para las variables.
- Filtros en consultas de entrada: Filtra las consultas de base de datos utilizando las variables configuradas para garantizar que sólo se obtengan registros nuevos o actualizados.
Te invito a experimentar configurando estas variables en tus propias transformaciones y observa cómo mejora la eficiencia de tus cargas ETL. Cada paso dado hacia la optimización de flujos ETL es una inversión en habilidades de Data Engineering. ¡A seguir aprendiendo!