Modelos Jinja

Introdução ao dbt

Mike Metzger

Data Engineer

O que é um template?

  • Um formato definido que permite substituir informações
  • Geralmente um arquivo de texto
  • Facilita acesso e reuso
Introdução ao dbt

O que é Jinja?

  • Linguagem simples de template baseada em texto
  • Usada em muitas ferramentas além do dbt
  • {{ ... }} indica uma substituição de template
  • O dbt tem muitas funções Jinja para usar nos projetos
  • Permite uso mais dinâmico do dbt
  • Dá para usar loops para simplificar o código
Introdução ao dbt

Funções Jinja no dbt

  • Algumas das muitas funções Jinja disponíveis
    • ref: acessar modelos pelo nome
    • config: acessar configurações
    • docs: acessar a documentação
    • Cálculos, loops, etc.
Introdução ao dbt

Exemplo de Jinja

  • Sem Jinja
    SELECT
    COALESCE(start_date, '2025-01-01') as start_date,
    COALESCE(update_date, '2025-01-01') as update_date,
    COALESCE(end_date, '2025-01-01') as end_date
    FROM Events
    
  • Com Jinja
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
Introdução ao dbt

Vamos praticar!

Introdução ao dbt

Preparing Video For Download...