Quanto sua empresa vendeu ontem? Se você demorar mais de 3 segundos para responder esse workshop de hoje é para você!
Este projeto tem como objetivo criar um Data Warehouse (DW) para armazenar e analisar dados de commodities, utilizando uma arquitetura moderna de ETL (Extract, Transform, Load). O projeto inclui:
- Parte de Extract_Load: Responsável por extrair dados de uma API e carregar diretamente no banco de dados PostgreSQL.
- Parte de Seed: Utiliza seeds do DBT para carregar dados de movimentações de commodities a partir de arquivos CSV.
- Models: Define as transformações de dados usando DBT, criando tabelas de staging e de datamart.
- Dashboard: Implementado em Streamlit, exibe dados e visualizações das commodities a partir do Data Warehouse.
A parte de extract_load
é responsável por extrair dados de uma API e carregar diretamente no banco de dados PostgreSQL. O script extract_load.py
realiza essa operação.
A parte de seed utiliza o DBT para carregar dados de movimentações de commodities a partir de arquivos CSV. Esses dados são carregados diretamente no Data Warehouse.
Os models do DBT são usados para transformar os dados carregados em tabelas de staging e de datamart. As transformações incluem a limpeza dos dados e a criação de métricas agregadas.
O dashboard é implementado em Streamlit e permite visualizar os dados das commodities armazenados no Data Warehouse. Ele exibe tabelas e gráficos interativos para análise dos dados.
graph TD;
subgraph Extract_Load
A1[buscar_dados_commodities] --> B1[buscar_todos_dados_commodities]
B1 --> C1[carregar_dados_no_postgres]
end
subgraph Transform
D1[stg_commodities.sql] --> E1[stg_movimentacao_commodities.sql]
E1 --> F1[dm_commodities.sql]
end
A[API de Commodities] -->|Extrai Dados| Extract_Load
Extract_Load -->|Carrega Dados| C[PostgreSQL]
C -->|Armazena Dados| D[Data Warehouse]
Data_Warehouse -->|Transforma Dados| Transform
Transform -->|Cria Views| F[Dashboard Streamlit]
graph LR;
A[Extract] -->|Extrai Dados da API| B[Load]
B -->|Carrega Dados no DW| C[Transform]
C -->|Limpa e Transforma Dados| D[Data Warehouse]
D -->|Exibe Dados| E[Dashboard Streamlit]