Projeto de transformação de dados utilizando dbt Core para análise e modelagem de dados do setor energético brasileiro (ONS - Operador Nacional do Sistema Elétrico).
- Data Warehouse: Snowflake (LAB_ONS)
- Transformação: dbt Core 1.10.11
- Adapter: dbt-snowflake 1.10.2
- Ambiente: Python Virtual Environment (venv)
- Versionamento: Git/GitHub
- Python 3.8 ou superior
- pip (gerenciador de pacotes Python)
- Acesso ao Snowflake com credenciais válidas
- Git instalado
git clone https://github.com/israelmteixeira1/pos-ia-mod-2.git cd pos-ia-mod-2
python3 -m venv .venv source .venv/bin/activate
pip install dbt-core==1.10.11 dbt-snowflake==1.10.2
dbt --version
mkdir -p ~/.dbt
Linux/macOS:
nano ~/.dbt/profiles.yml
ons_ml:
target: dev
outputs:
dev:
type: snowflake
account: -
user: -
password: -
role: ACCOUNTADMIN
database: LAB_ONS
warehouse: LAB_WH
schema: STAGING_ONS
threads: 4
- Pressione
Ctrl + X - Pressione
Ypara confirmar - Pressione
Enter
cat ~/.dbt/profiles.yml
dbt debug
Resultado esperado (no final da saída):
Connection test: [OK connection ok]
All checks passed!
Diretórios:
.venv/- Ambiente virtual Python (não versionado)dags/- DAGs do Airflow para orquestraçãodbt_packages/- Pacotes dbt instalados (não versionado)macros/- Macros SQL reutilizáveismodels/- Modelos dbtstaging/- Camada de staging (dados brutos normalizados)core/- Modelos finais (fatos e dimensões)
Arquivos:
.gitignore- Arquivos ignorados pelo Gitdbt_project.yml- Configuração principal do projetopackage-lock.yml- Lock de versões de pacotespackages.yml- Dependências de pacotes dbtREADME.md- Este arquivo
Instalar/atualizar pacotes dbt dbt deps
Verificar conexão e configuração dbt debug
Executar todos os modelos dbt run
Executar modelo específico dbt run --select nome_do_modelo
Executar modelos de uma camada dbt run --select staging.*
Limpar arquivos compilados dbt clean
Executar todos os testes dbt test
Aplicativo web em Streamlit para classificar o risco de déficit energético em três níveis (Baixo, Médio, Alto) usando um modelo Random Forest já treinado. O app:
- Carrega o modelo e a lista de features;
- Lê um CSV demonstrativo;
- Alinha as colunas esperadas e executa a inferência;
- Exibe o nível de risco e recomendações de ação.
.
├─ app.py
├─ requirements.txt
├─ modelo_RandomForest.joblib
├─ features.json
└─ df_demo.csv
- Python 3.9–3.12
Crie um ambiente virtual e instale as dependências:
python -m venv .venv
# Linux/macOS
source .venv/bin/activate
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
pip install -r requirements.txtInicie o aplicativo:
streamlit run app.pyO navegador abrirá em http://localhost:8501. O painel lateral mostra o status de carregamento do modelo.
- Verifique no sidebar se o modelo carregou com sucesso.
- Clique em “
▶️ Prever com base em D-1”. - Serão exibidos: Risco predito (Baixo, Médio, Alto) e o playbook correspondente.
Mapeamento de rótulos:
Baixo → 0,Medio → 1,Alto → 2.