Skip to content

samuel-aka-viana/apoena-workshop-modern-data-stack

Repository files navigation

Claro! Com base na estrutura que você compartilhou, aqui está um exemplo de README.md para o repositório apoena-workshop-modern-data-stack:


# Apoena Workshop: Modern Data Stack

Este repositório é uma demonstração prática de uma stack moderna de engenharia de dados utilizando as ferramentas **dltHub**, **dbt**, **Prefect** e **Docker**. O projeto simula um pipeline analítico sobre dados de bandas de metal extraídos de APIs públicas, carregados e transformados com foco em boas práticas de modelagem, versionamento e orquestração.

## 🧱 Arquitetura

```text
API pública → dlt → DuckDB → dbt → BigQuery → Prefect
  • dltHub: ferramenta de ingestão incremental e declarativa, com suporte a autenticação, merge, SCD e múltiplos destinos.
  • dbt: transforma os dados brutos em modelos analíticos (staging, intermediate, marts).
  • Prefect: orquestra as tarefas de ingestão e transformação com agendamentos, logs e dependências.
  • Docker: ambiente de desenvolvimento e execução padronizado.

📂 Estrutura do Projeto

  • apoena_pipeline.py: script raiz de ingestão com dlt.
  • dbt_apoena/: projeto dbt com transformações, testes e macros.
  • workflows/: pipelines Prefect para rodar dlt + dbt.
  • docker-compose.yml: define os serviços necessários (DuckDB, MinIO, etc.).
  • requirements.txt: dependências do Python.
  • prefect.yaml: configuração do fluxo Prefect.
  • logs/: logs do dbt.

🚀 Como Executar

1. Clone o repositório

git clone https://github.com/samuel-aka-viana/apoena-workshop-modern-data-stack.git
cd apoena-workshop-modern-data-stack

2. Instale as dependências

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

3. Suba os serviços

docker-compose up -d

4. Execute o pipeline

python workflows/dlt_pipeline.py
python workflows/dbt_pipeline.py

Ou orquestre com Prefect:

prefect deploy workflows/prefect.yaml
prefect server start
prefect agent start

📊 Modelos dbt

Os dados seguem uma estrutura em camadas:

  • staging: conversão e normalização dos dados brutos.
  • intermediate: join e enriquecimento intermediário.
  • marts: tabelas finais, como dim_bands, dim_albums, fct_reviews.

🔎 Pacotes Utilizados

  • dbt_utils
  • dbt_expectations
  • dbt_date

🧪 Testes

Para rodar os testes do dbt:

cd dbt_apoena
dbt test

📈 Dashboard

Recomenda-se conectar ferramentas como Superset ou Looker Studio diretamente à DuckDB ou BigQuery para visualização dos dados transformados.


🧠 Objetivos do Workshop

  • Apresentar uma stack moderna de dados com ferramentas open-source
  • Praticar ingestão incremental, modelagem e orquestração
  • Criar um pipeline auditável e escalável
  • Demonstrar uso de dlt + dbt + Prefect com dados reais

📚 Referências


🧔 Autor

Samuel Viana • LinkedInGitHub


🛠️ Licença

Este projeto está licenciado sob os termos da MIT License.


---

Se quiser, posso gerar uma versão em inglês também, ou separar o conteúdo em blocos para o Medium/LinkedIn. Deseja que o README seja gerado diretamente no arquivo do projeto?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages