12 Abril 2024
Key takeways
O DBT é um fluxo de trabalho de transformação. O acrónomimo significa Data Build Tool.
Como tal, o DBT gere o T de ELT, não sendo o DBT a fazer a transformação. Vai necessitar de Postgres DB, SQL Server, Redshift, Databricks, Snowflake ou GCP (ou outros) para que o DBT possa enviar os seus processos de transformação para serem executados pelo motor DB .
O DBT cuida da orquestração dos processos de transformação (modelos), enviando-os para serem executados no motor DBT que configurou. Isso significa que o DBT usa SQL (onde o “sabor” SQL depende do motor a que o conectar).
O DBT permite que analistas e engenheiros de dados automatizem a testagem e a implantação do processo de transformação de dados. Isto é particularmente útil uma vez que muitas empresas têm uma lógica de negócios cada vez mais complexa por trás dos seus relatórios de dados. A ferramenta DBT regista todas as alterações feitas na lógica subjacente e facilita o rastreamento de dados e a atualização ou correção do pipeline por meio do controle de versão.
Por quê DBT
O DBT acrescenta muito mais do que ser simplesmente um processo de transformação. Segue-se uma rápida lista do que poderá ganhar ao usar o DBT:
Trabalhe com materializações e depois ajuste conforme necessário.
No DBT, trabalha-se com modelos que podem ser materializados como tabelas, vistas, incrementais ou temporárias. Para alterar o tipo de materialização, não é necessário reescrever o DDL como é habitual ao trabalhar com SQL, basta alterar a configuração para esse modo e o DBT trata disso na próxima vez que for executado.
Lineage de dados desde o início
Um modelo nada mais é do que uma declaração SQL ,mas com o DBT, pode usar a palavra-chave ref, para se referir a um modelo upstream. Isso permite determinar a ordem de execução dos seus modelos, executar as suas transformações em etapas e extrair a lineage completa dos seus projetos DBT.
Documente os seus modelos
Com o DBT, sua documentação é feita onde deve ser feita, junto dos seus modelos e sob controle da versão. Terá acesso a toda a documentação criada por si e pelos seus colegas para o projeto localmente, uma vez que utiliza o mesmo repositório git para controle de versões.
Reutilize seu código e use estruturas de controle no seu código
Os ficheiros SQL no DBT podem conter Jinja, uma linguagem de templates leve. Usar Jinja no SQL permite-lhe utilizar estruturas de controle nas suas consultas. Por exemplo, as instruções “if”e “for”. É vantajoso escrever o código SQL repetitivo desta forma:
Pode facilmente partilhá-la também através de publicação num website estático, como o exemplo abaixo, se estiver a usar o DBT _core (open source) ou simplesmente executando o DBT no DBT cloud (assinatura paga).
No exemplo acima, imagine que precisa de escrever uma declaração SQL com uma extensa lista de métodos de pagamento. Com jinja, poderia adicioná-los à lista e o loop “for” cuidaria disso automaticamente.
É também possível criar macros que você ou seus colegas possam reutilizar de acordo com as necessidades, evitando assim repetir o código várias vezes ao longo do projeto.
Teste os seus modelos
Os testes estão totalmente integrados na estrutura DBT. Pode utilizar asserções no seu código (genéricas ou personalizadas) para testar os resultados gerados por um modelo e agir em conformidade, quer seja interrompendo a execução ou apenas alertando para isso.
Além disso, pode integrar pacotes de testes automatizados no DBT (como DBT-expectations), permitindo alargar o âmbito dos testes que pode executar nos seus modelos.
Utilize pacotes externos para ajudar no seu desenvolvimento
O suporte DBT para pacotes externos em SQL e Python permite-lhe criar pipelines de dados mais complexos e poderosos, como por exemplo usar a biblioteca Python’s pandas para fazer transformações de dados:
Opções para utilização do DBT
DBT Core
DBT core é a versão DBT em open-source. Pode instalá-lo na sua máquina local usando Homebrew (Mac OS ou Linux) ou o pip usando o adaptador que pretende utilizar, por exemplo, DBT-postgres. Pode também instalá-lo utilizando o Docker ou a partir do código-fonte git.
Com o DBT core, tem que gerir a infraestrutura do seu DBT, o controle das versões e, dependendo do tipo de utilização no seu caso, uma plataforma de orquestração para executar seus trabalhos de acordo com uma programação e monitorizá-los.
Consulte https://docs.getdbt.com/docs/core/installation para obter instruções de instalação.
DBT Cloud
DBT Cloud é um serviço baseado em cloud que fornece funcionalidades adicionais ao DBT core.
Não terá de se preocupar com infraestruturas ou instalação de software ou com a gestão das ligações/credenciais da sua base de dados. Proporciona-lhe controle de versão de código + colaboração e opções de partilha. Terá acesso a agendamento e orquestração automatizados, assim como análises avançadas e relatórios que permitem acompanhar o desempenho das suas transformações de dados e identificar problemas e entraves.
Este serviço tem um custo associado e pode ser necessário apenas para determinados tipos de utilização.
Consulte https://www.getdbt.com/pricing/ para obter os preços desta oferta.