Skip to content
Latchkey

O Que É dbt? O Data Build Tool Explicado

O dbt (data build tool) permite que equipes de dados transformem dados de warehouse usando SQL versionado e testado, aplicando práticas de engenharia de software à análise de dados.

O dbt trouxe a mentalidade "as code" para a análise de dados. Em vez de scripts SQL ad hoc, o dbt transforma cada transformação em um model - uma instrução SELECT em um arquivo - que é versionado, testado, documentado e construído em ordem de dependência dentro do seu data warehouse.

O que é o dbt

O dbt é uma ferramenta de transformação que executa o T no ELT. Você escreve instruções SQL SELECT como models; o dbt as envolve nas instruções CREATE TABLE ou CREATE VIEW corretas e as executa contra seu warehouse. Ele lida com as dependências, de modo que os models são construídos na ordem correta.

Testes e documentação

O dbt permite declarar testes - not null, unique, accepted values, relationships - diretamente nas colunas, e pode gerar documentação e um grafo de lineage de como os models dependem uns dos outros. Isso torna uma camada de transformação de warehouse testável como o código de aplicação.

O DAG de models

O dbt constrói um DAG a partir das referências entre os models. Executar "dbt build" compila o SQL, executa os models em ordem de dependência e executa os testes, falhando a execução se algum teste não passar - exatamente o comportamento de quality-gate do qual o CI depende.

dbt no CI

Um padrão comum executa o dbt contra um schema de CI em cada pull request, construindo e testando apenas os models que mudaram, de modo que uma transformação quebrada seja detectada antes de ser mergeada.

Running dbt in CI
steps:
  - run: pip install dbt-snowflake
  - run: dbt deps
  - run: dbt build --select state:modified+ --target ci

Nota da Latchkey

Os jobs de CI do dbt instalam adapters e baixam artifacts de execuções anteriores para descobrir o que mudou. Na Latchkey, fazer cache do ambiente Python e dos artifacts do dbt entre execuções acelera esses jobs, e o auto-retry ajuda quando uma conexão com o warehouse falha no meio da execução.

Principais conclusões

  • O dbt transforma dados de warehouse com models SQL versionados e testados, construídos em ordem de dependência.
  • Testes integrados e lineage tornam a camada de transformação tão revisável quanto o código de aplicação.
  • Executar "dbt build" nos models alterados no CI detecta transformações quebradas antes que sejam mergeadas.

Guias relacionados