D A T A M A N A G E M E N T

Cargando...

Introducción

  • En entornos productivos, los data engineers a menudo necesitan realizar recargas parciales de periodos específicos.
  • Ejemplo: recargar datos de enero y febrero porque se han corregido errores en el origen.
  • DBT permite realizar estas recargas utilizando variables de entrada que parametrizan los modelos.

Variables de entrada en DBT

  • Las variables permiten que un modelo reciba parámetros dinámicos al ejecutarse, por ejemplo, rangos de fechas.
  • Se definen en el comando de ejecución:
    • dbt run –vars ‘{«fecha_inicio»:»2025-01-01″,»fecha_fin»:»2025-02-28″}’
  • Dentro del modelo, se accede a las variables mediante la sintaxis:
    • {{ var(‘fecha_inicio’) }}
    • {{ var(‘fecha_fin’) }}

Primer paso: modelo “ephemeral”

  • Para preparar la recarga parcial, extraemos la query de origen del modelo fact_invoices.
  • Se crea un modelo ephemeral:
    • No genera tabla ni vista en la base de datos.
    • Permite realizar transformaciones intermedias y aplicar filtros dinámicos según variables de entrada.
  • Ejemplo de modelo ephemeral:
  • El modelo ephemeral en DBT funciona de la siguiente manera: cada vez que se invoca, DBT genera una CTE (Common Table Expression) internamente, sin persistir los datos en una tabla ni en una vista.
  • A continuación, se muestra la query que DBT genera al ejecutar el modelo fact_invoices.sql:

Flujo de trabajo para recargas parciales

  • Se ha creado un nuevo modelo para realizar pruebas, preservando intacto el modelo original fact_invoices.sql. 
  • En la imagen se observa que el modelo espera recibir las variables fecha_desde y fecha_hasta para su ejecución. Si se ejecuta el modelo sin parámetros, por defecto, las variables se establecen desde 7 días antes de la fecha actual hasta 2099-01-01.
  • Para ejecutar el modelo con parámetros, se utiliza el siguiente comando:
    • dbt run -m fact_invoices_parametrizado –vars ‘{«fecha_desde»: «2025-01-01», «fecha_hasta»: «2025-02-01»}’
  • En la primera carga, el modelo se ejecutará completamente sin aplicar filtros. El modelo parametrizado solo comenzará a funcionar a partir de la segunda carga.
  • Los registros que se actualizarán corresponden al rango comprendido entre el 2025-01-01 y el 2025-02-01.
  • Para la prueba, se modificarán los registros mediante la ejecución de un UPDATE, con el fin de evaluar el comportamiento del modelo.
  • A continuación, se vuelve a ejecutar el modelo parametrizado utilizando el siguiente comando:
    • dbt run -m fact_invoices_parametrizado –vars ‘{«fecha_desde»: «2025-01-01», «fecha_hasta»: «2025-02-01»}’
  • En la imagen siguiente se observa cómo se han recargado las facturas correspondientes al rango de fechas entre 2025-01-01 y 2025-02-01.
  • La siguiente prueba será más completa. Se modificarán todas las facturas para realizar recargas parciales y evaluar el comportamiento del modelo.
  • Se realiza una recarga de facturas desde el 1900-01-01 hasta el 2024-01-01 utilizando el siguiente comando:
    • dbt run -m fact_invoices_parametrizado –vars ‘{«fecha_desde»: «1900-01-01», «fecha_hasta»: «2024-01-01»}’
  • A continuación, se ejecuta el modelo para el día 2024-02-24 utilizando el siguiente comando:
    • dbt run -m fact_invoices_parametrizado –vars ‘{«fecha_desde»: «2024-02-24», «fecha_hasta»: «2024-02-24»}’

Leave a Comment

Virgen del pilar nº4, ático H

03330 Crevillente (Alicante)