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.
steps:
- run: pip install dbt-snowflake
- run: dbt deps
- run: dbt build --select state:modified+ --target ciNota 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.