Modelos jerárquicos en dbt

Introducción al dbt

Mike Metzger

Data Engineer

¿Qué es una jerarquía en dbt?

  • Representa dependencias dentro de un proyecto dbt
  • También llamado grafo acíclico dirigido (DAG) o grafo de linaje
    • Específico de dbt, no un DAG genérico
  • Permite compilar/actualizar modelos según dependencias

DAG de dbt / Grafo de linaje

Introducción al dbt

Detalles de la jerarquía

  • avg_fare_per_day y total_creditcard_riders_per_day dependen de taxi_rides_raw
  • dbt compila primero taxi_rides_raw
  • Sin grafo de linaje, dbt crea entradas por orden alfabético
    • avg_fare_per_day fallaría sin taxi_rides_raw

DAG de dbt / Grafo de linaje

Introducción al dbt

¿Cómo se definen las jerarquías?

  • Se define con plantillas Jinja en los archivos de modelos
  • Usando sobre todo la función ref
  • Sustituye el nombre de tabla por {{ ref('model_name') }} en SQL
  • (Re)materializa la tabla con dbt run
  • Las plantillas ref se sustituyen por los nombres reales de tablas
Introducción al dbt

Ejemplo de jerarquía

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Introducción al dbt

¡Vamos a practicar!

Introducción al dbt

Preparing Video For Download...