Além da ementa · tema 36 de 40
dbt: transformação versionada em SQL
35 min · 2 vídeos · 11 cards · 1 drill
Por que cai
É a ferramenta que o mercado de analytics assumiu, e a banca pergunta não o que ela é, mas o que ela resolve. A resposta boa liga a três coisas que já vieram antes: versionamento e revisão, teste de dado, e linhagem. Quem descreve dbt como 'roda SQL' não mostra por que ele mudou a rotina.
Pré-teste · 1 de 2
responda antes de verO que a referência entre modelos permite que o dbt faça?
Vídeo · português · 23 min
Em uma frase
O dbt dá ao SQL as garantias que o código de aplicação já tinha: versionamento, revisão, teste, documentação e linhagem — e monta a ordem de execução sozinho a partir das referências entre modelos.
O que ele é, e o que não é
| É | Não é |
|---|---|
| A camada de transformação (o T do ELT) | Ferramenta de extração ou carga |
| Executor de SQL versionado dentro do warehouse | Um banco de dados |
| Resolvedor da ordem entre modelos | Orquestrador do pipeline inteiro |
| Gerador de documentação e linhagem | Ferramenta de visualização |
Delimitar o escopo é metade da resposta na sabatina: quem diz que o dbt substitui o orquestrador mostra que não usou.
A referência: a ideia que sustenta o resto
Em vez de escrever o nome da tabela, o modelo referencia outro modelo. Dessa mudança pequena saem quatro capacidades:
- 1O grafo de dependências se monta sozinho.
- 2A ordem de execução é derivada do grafo, não de nomes de arquivo numerados.
- 3O dbt sabe o que precisa reconstruir quando um modelo muda.
- 4A linhagem vira um site navegável, respondendo 'quem consome isto' sem garimpo.
Materialização: três perguntas
| Materialização | Quando | Custo |
|---|---|---|
| View | Intermediário pequeno, consultado por outros modelos | Nenhum de armazenamento; resolve na consulta |
| Table | Consultado com frequência por painéis | Armazenamento e tempo de build |
| Incremental | Volume grande que cresce por período | Complexidade: chave única, lógica de atualização, refazer do zero |
| Ephemeral | Lógica reaproveitada que não precisa existir no banco | Nenhum: vira CTE em quem usa |
As perguntas que decidem: quem consulta, qual o volume, com que frequência muda. E o erro a evitar é materializar tudo como tabela por reflexo — a maior parte dos modelos intermediários de um projeto não é consultada por ninguém.
Teste e documentação no mesmo lugar
Testes genéricos (unicidade, não nulo, conjunto de valores, integridade) são declarados em configuração ao lado do modelo. Testes específicos são consultas próprias que afirmam uma regra de negócio — e é aí que mora o teste que pega erro caro: o total batendo com a origem.
A documentação fica junto do código, e o site gerado traz o dicionário e o grafo. Isso resolve, de graça, a pergunta que sempre aparece em governança: o que essa coluna significa e quem depende dela?
Snapshot não é backup
snapshot— Mecanismo que captura mudanças de um registro ao longo do tempo, implementando dimensão de mudança lenta do tipo 2: preserva o valor antigo com data de validade quando o novo chega.Serve para responder "qual era o segmento deste cliente em março". Não serve para restaurar ambiente — essa confusão aparece em entrevista e é fácil de evitar.
Como responder isso em voz alta
Para "o que ele resolve": ordem pelo grafo, teste junto do modelo, documentação e linhagem, e o fluxo de trabalho de software aplicado ao SQL. Termine delimitando: não move dado, não substitui orquestrador. Para materialização, dê os três critérios e mencione o custo escondido do incremental — é o detalhe que mostra uso real.
Se quiser outro ângulo1 vídeo
Como cai na sabatina
“O que o dbt resolve que rodar scripts SQL agendados não resolve?”
Erros comuns
- Descrever dbt como orquestrador. Ele transforma dentro do banco e resolve a ordem entre modelos; quem agenda e coordena o resto do pipeline é o orquestrador.
- Achar que dbt move dados. Ele não extrai nem carrega: opera sobre o que já está no warehouse. É o T do ELT.
- Escrever o nome da tabela em vez da referência. Sem a referência, o grafo de dependências não se monta e a ordem de execução volta a ser manual.
- Materializar tudo como tabela. Modelo intermediário costuma ser view; tabela custa armazenamento e tempo de build. Incremental existe para o que é grande e cresce.
- Confundir teste genérico com teste de negócio. Unicidade e não nulo são o mínimo; o teste que pega erro caro compara o total com a origem.
- Usar snapshot achando que é backup. Snapshot captura mudanças de registro ao longo do tempo, implementando dimensão de mudança lenta, e não serve para restaurar ambiente.
Flashcards
Card 1 de 11
0 certos · 0 a reverDrill
Qual materialização?
Para cada modelo, diga a materialização esperada.
1.Modelo intermediário pequeno, consultado só por outros modelos.
2.Tabela de fato com bilhões de linhas, que recebe dados novos todo dia.
3.Dimensão consultada o tempo todo por vários painéis.
4.Trecho de lógica reaproveitado por três modelos e que não precisa existir no banco.
5.Modelo de apoio recalculado a cada execução, com poucas linhas.
Quiz · 1 de 2
Qual descrição do papel do dbt é mais defensável?
Explique para um gerente
Explique em um minuto por que escrever uma referência em vez do nome da tabela permite ao computador descobrir a ordem de execução sozinho.
Se travar numa palavra técnica, é sinal de que ainda não entendeu essa parte.
Prefiro falar em voz alta
00:00
Toque para gravar, ou responda em voz alta sem gravar
Perguntas de sabatina deste tema2
- · O que o dbt resolve que rodar scripts SQL agendados não resolve?
- · Como você decide a materialização de cada modelo num projeto dbt?