Projeto de conclusão do bootcamp de SQL e analytics engineer da Jornada de Dados
O dbt é um workflow de transformação focado em SQL que permite que equipes implementem código analítico de forma rápida e colaborativa, seguindo as melhores práticas de engenharia de software, como modularidade, portabilidade, CI/CD e documentação. Agora, qualquer pessoa da equipe de dados pode contribuir com segurança para pipelines de dados de nível de produção.
Esse projeto tem como objetivo apresentar de forma prática uma solução completa de dados aproveitando os principais módulos e funcionalidades do dbt-core.
- dbt-core-northwind-project
A ferramenta dbt (data build tool) é uma solução inovadora no campo da engenharia de dados, projetada para conectar-se a repositórios de dados centralizados como Data Warehouses e Data Lakes. Ela habilita usuários de negócios, analistas e engenheiros a gerar transformações de dados, regras de negócios e insights valiosos de forma autônoma e eficiente.
O objetivo deste projeto é implementar uma solução de dados que foi inicialmente desenvolvida utilizando um processo padrão no PostgreSQL (criação de tabelas, views, procedures, etc.), mas agora utilizando dbt-core. A proposta é comparar as duas abordagens para evidenciar as vantagens e simplificações que o dbt-core pode oferecer em termos de manutenção, colaboração e escalabilidade das transformações de dados.
Antes de começar, certifique-se de ter os seguintes softwares instalados em seu sistema:
- Git: Para clonar o repositório.
- Docker: Para executar os contêineres do PostgreSQL, pgAdmin e dbt.
- Python: Para rodar scripts auxiliares.
Primeiro, clone este repositório para o seu ambiente local usando Git. Abra um terminal e execute o seguinte comando:
git clone git@github.com:lvgalvao/dbt-core-northwind-project.git
cd dbt-core-northwind-project
Com o Docker instalado, navegue até o diretório do projeto clonado e execute o seguinte comando para iniciar os contêineres:
docker-compose up --build
Isso iniciará os contêineres necessários: PostgreSQL, pgAdmin, dbt-core.
Para acessar o pgAdmin e visualizar os dados, abra seu navegador e vá para:
- URL:
http://localhost:5050/browser/
Use as seguintes credenciais para se conectar ao banco de dados:
- Host:
db
- Porta:
5432
- Nome do Banco:
northwind
- Usuário:
postgres
- Senha:
postgres
Vamos trabalhar nesse projeto com a base northwind
O dbt é uma ferramenta focada na transformação de dados dentro de um pipeline de ETL/ELT, onde ETL significa Extrair, Transformar e Carregar. Ele se concentra especificamente no aspecto de Transformação (T), permitindo a criação de fluxos de trabalho de transformação de dados usando SQL.
Gaste uns 10 minutos avaliando o seu banco de dados sobre esses pontos
- Quais são minhas tabelas mais importantes?
- Que tipo de KPIs uma empresa dessa precisa?
- Qual a melhor forma de servir esses dados? que tabelas? modelagens?
- Como estruturar um Data Warehouse para garantir:
- que a transformação seja compatível com python e sql
- tenha versionamento de versão e CI/CD
- tenha testes unitários, testes de dados e documentação.
northwind:
outputs:
dev:
dbname: northwind
host: localhost
pass: postgres
port: 5432
schema: public
threads: 1
type: postgres
user: postgres
target: dev
Verifique sua configuração com o comando
dbt debug
Deve ser muito complexo tudo isso, correto?
Mais ou menos
Você está pronto para rodar seu primeiro comando dbt?
Abra um novo terminal e execute:
dbt run
Esse comando executará todas as transformações definidas nos modelos dbt e você verá a saída dos resultados no terminal.
Para gerar e acessar a documentação do dbt, execute os seguintes comandos no ambiente local:
python -m venv .venv
source .venv/Scripts/activate
pip install -r requirements.txt
dbt docs generate
dbt docs serve --port 8080
Abra seu navegador e vá para:
- URL:
http://localhost:8080
Você verá a documentação interativa gerada pelo dbt.
Esse projeto faz parte da comunidade de estudo Jornada de dados Nossa missão é fornecer o melhor ensino em engenharia de dados
Se você quer:
- Construir uma base sólida em Python e SQL
- Aprender as principais habilidades e ferramentas de engenharia de dados
- Criar ou melhorar seu portfólio de dados
- Criar ou aumentar o seu networking na área
- Mudar ou dar o próximo passo em sua carreira
A Jornada de Dados é o seu lugar