O dbt (data build tool) revolucionou a transformacao de dados ao trazer praticas de engenharia de software (versionamento, testes, documentacao) para o trabalho de analistas de dados. Em 2026, dbt e uma das ferramentas mais exigidas em vagas de analytics engineering. Este guia mostra como funciona e como comecar.
O que e dbt e por que importa
dbt e uma ferramenta que permite transformar dados dentro do data warehouse usando SQL. Diferente de ferramentas tradicionais de ETL que fazem Extract, Transform e Load, dbt foca apenas no T (Transform) — os dados ja estao no warehouse, e o dbt executa queries SQL para criar tabelas e views derivadas.
O diferencial do dbt nao e o SQL em si, mas o que ele adiciona ao redor do SQL: versionamento com Git (cada transformacao e um arquivo SQL versionado), testes automatizados (verificar se colunas sao unicas, nao-nulas, com valores validos), documentacao automatica (gera um site com a documentacao de todas as tabelas e relacoes), linhagem de dados (mostra visualmente de onde cada tabela vem e para onde vai), e materialization (controla se o resultado e tabela, view, incremental ou ephemeral).
Instalacao e projeto inicial
Instale via pip: pip install dbt-core dbt-postgres (ou dbt-bigquery, dbt-snowflake dependendo do seu warehouse). Crie um projeto: dbt init meu_projeto. O comando gera a estrutura de pastas.
A estrutura basica de um projeto dbt: models/ (arquivos SQL de transformacao), tests/ (testes customizados), macros/ (funcoes SQL reutilizaveis), seeds/ (CSVs pequenos para carga de referencia), dbt_project.yml (configuracao do projeto), profiles.yml (conexao com o warehouse).
Criando modelos
Um modelo dbt e simplesmente um arquivo SQL com um SELECT. O dbt cuida de criar a tabela ou view no warehouse. Exemplo de modelo staging (camada de limpeza):
— models/staging/stg_vendas.sql
WITH source AS (
SELECT * FROM {{ source(“erp”, “raw_vendas”) }}
),
cleaned AS (
SELECT
id_venda,
CAST(data_venda AS DATE) AS data_venda,
UPPER(TRIM(nome_cliente)) AS nome_cliente,
COALESCE(valor_total, 0) AS valor_total,
CASE WHEN status = “C” THEN “cancelada” ELSE “ativa” END AS status_venda
FROM source
WHERE data_venda IS NOT NULL
)
SELECT * FROM cleaned
E um modelo de metricas de negocio (camada mart):
— models/marts/fct_vendas_diarias.sql
SELECT
v.data_venda,
COUNT(DISTINCT v.id_venda) AS total_vendas,
SUM(v.valor_total) AS receita_total,
AVG(v.valor_total) AS ticket_medio,
COUNT(DISTINCT v.nome_cliente) AS clientes_unicos
FROM {{ ref(“stg_vendas”) }} AS v
WHERE v.status_venda = “ativa”
GROUP BY v.data_venda
A funcao {{ ref() }} e o poder do dbt: cria dependencias entre modelos, permitindo que o dbt construa o grafo de execucao e rode tudo na ordem correta.
Testes automatizados
dbt permite testar qualidade de dados declarativamente no arquivo schema.yml:
version: 2
models:
– name: stg_vendas
columns:
– name: id_venda
tests:
– unique
– not_null
– name: valor_total
tests:
– not_null
– name: status_venda
tests:
– accepted_values:
values: [“ativa”, “cancelada”]
Execute os testes com dbt test. Cada falha gera um alerta com os registros que violaram a regra.
Materialization: como dbt cria os objetos no warehouse
View: cria uma VIEW SQL (leve, sem dados fisicos, recalcula a cada consulta). Padrao para modelos intermediarios.
Table: cria uma TABLE (dados materializados, mais rapida para consultas, recria por completo a cada execucao). Ideal para modelos finais consumidos por dashboards.
Incremental: adiciona apenas registros novos em vez de recriar a tabela inteira. Essencial para tabelas grandes que crescem diariamente.
Ephemeral: nao cria nada no banco — o SQL e interpolado como CTE nos modelos que o referenciam. Util para calculos intermediarios.
dbt Cloud vs dbt Core
dbt Core e gratuito e open source (CLI). dbt Cloud e a versao paga com IDE no browser, agendamento de execucoes, CI/CD integrado, historico de execucoes e documentacao hospedada. Para equipes de analytics, o dbt Cloud simplifica muito o dia a dia. Para desenvolvedores individuais ou equipes com infra propria, dbt Core com GitHub Actions ou Airflow resolve.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.