0Pricing
SQL Academy · Aula

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 1

Executar 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 + test

Fontes

As fontes documentam e referenciam as tabelas brutas:

# models/sources.yml
sources:
  - name: raw
    database: warehouse
    tables:
      - name: orders

Modelos 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_id

Instantâ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 browser

Resumo

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

  1. Fundamentos do DBT (Data Build Tool)
  2. SQLFluff e análise estática
  3. Testes de SQL: testes do dbt, Great Expectations
  4. CI para alterações de esquema (GitHub Actions)
← Voltar para SQL Academy