Fundamentos do DBT (Data Build Tool)
Modele os dados do armazém como instruções SELECT no dbt, usando referências, fontes e modelos incrementais.
Fundamentos do DBT (Data Build Tool) é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
O que é dbt
dbt é o "T" de ELT: ele transforma dados dentro do seu armazém de dados usando instruções SELECT. Você define modelos (SELECTs), e o dbt os materializa como tabelas ou exibições, gerencia dependências e executa testes.
Por que dbt
Antes do dbt, as transformações ficavam em scripts SQL improvisados, procedimentos armazenados ou tarefas Python. O dbt oferece:
- SQL modular como código, versionado no Git
- Grafo de dependências (ref()) em vez de ordenação manual
- Testes como objetos de primeira classe
- Geração de documentação
Estrutura do projeto
Um projeto dbt:
my_project/
dbt_project.yml
models/
staging/
stg_orders.sql
marts/
fct_revenue.sql
tests/
seeds/
macros/Um arquivo de modelo
Apenas um SELECT em um arquivo .sql:
-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
id,
user_id,
total,
created_at
FROM {{ source('raw', 'orders') }}Tipos de materialização
- view — o dbt cria uma VIEW; rápida para atualizar, mais lenta para consultar
- table — tabela completa; reconstruída a cada execução
- incremental — somente as linhas novas são adicionadas
- ephemeral — CTE incorporada, sem objeto no banco de dados
ref() e dependências
Faça referência a um modelo a partir de outro:
-- models/marts/fct_revenue.sql
SELECT
date_trunc('day', created_at) AS day,
SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1Executar o dbt
Crie todo o projeto:
dbt run # build all models
dbt run --select staging # subset
dbt run --select +fct_revenue # this model and upstream
dbt build # run + testFontes
As fontes documentam e referenciam as tabelas brutas:
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersModelos incrementais
Para tabelas de fatos enormes:
{{ config(materialized='incremental', unique_key='id') }}
SELECT *
FROM {{ source('raw','orders') }}
{% if is_incremental() %}
WHERE created_at > (SELECT MAX(created_at) FROM {{ this }})
{% endif %}Criação de modelos com Jinja
dbt é SQL + Jinja, então você pode gerar SQL em loops e condicionalmente:
{% set tiers = ['free','pro','enterprise'] %}
SELECT user_id,
{% for t in tiers %}
COUNT(*) FILTER (WHERE tier = '{{ t }}') AS {{ t }}_count {% if not loop.last %},{% endif %}
{% endfor %}
FROM users GROUP BY user_idInstantâneos
Dimensões que mudam lentamente, capturadas automaticamente:
{% snapshot user_snapshot %}
{{ config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='updated_at',
) }}
SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}Documentação
Gere automaticamente documentação navegável a partir dos seus modelos + descrições em YAML:
dbt docs generate
dbt docs serve # opens browserResumo
dbt modela transformações de dados como código SQL.
- Modelo = SELECT em um arquivo .sql
- ref() cria o DAG
- Materializações: view / table / incremental / ephemeral
- Testes e documentação como recursos de primeira classe
Verificação rápida
O que {{ ref('stg_orders') }} do dbt faz?
Perguntas Frequentes
A aula “Fundamentos do DBT (Data Build Tool)” é grátis?
Sim — o texto completo de “Fundamentos do DBT (Data Build Tool)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “Fundamentos do DBT (Data Build Tool)”?
Modele os dados do armazém como instruções SELECT no dbt, usando referências, fontes e modelos incrementais. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Fundamentos do DBT (Data Build Tool)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos do DBT (Data Build Tool)
- SQLFluff e análise estática
- Testes de SQL: testes do dbt, Great Expectations
- CI para alterações de esquema (GitHub Actions)