Modelos hierárquicos no dbt

Introdução ao dbt

Mike Metzger

Data Engineer

O que é uma hierarquia no dbt?

  • Representa dependências dentro de um projeto dbt
  • Também chamado de grafo acíclico direcionado (DAG) ou grafo de linhagem
    • Específico do dbt, não um DAG genérico
  • Permite construir/atualizar modelos conforme dependências

DAG / Grafo de linhagem do dbt

Introdução ao dbt

Detalhes da hierarquia

  • avg_fare_per_day e total_creditcard_riders_per_day dependem de taxi_rides_raw
  • O dbt cria taxi_rides_raw primeiro
  • Sem grafo de linhagem, o dbt criaria entradas em ordem alfabética
    • avg_fare_per_day falharia sem taxi_rides_raw

DAG / Grafo de linhagem do dbt

Introdução ao dbt

Como as hierarquias são definidas?

  • Definida com a linguagem de templates Jinja no(s) arquivo(s) do modelo
  • Geralmente usando a função ref
  • Substitua o nome da tabela por {{ ref('model_name') }} no SQL
  • (Re)materialize a tabela com dbt run
  • Templates ref viram nomes reais de tabela
Introdução ao dbt

Exemplo de hierarquia

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Introdução ao dbt

Vamos praticar!

Introdução ao dbt

Preparing Video For Download...