Autor: Paulo Munhoz
Este projeto implementa um pipeline completo de engenharia e análise de dados para um banco brasileiro fictício. O processo abrange desde a geração de dados sintéticos (clientes, transações e indicadores macroeconômicos) até a transformação desses dados seguindo uma arquitetura Medallion (Bronze, Silver, Gold) e, por fim, a análise e visualização de Indicadores-Chave de Desempenho (KPIs).
O pipeline simula o comportamento transacional de clientes ao longo de um período de 25 anos (2000-2025), permitindo análises sobre a adoção digital, volume financeiro por canal, perfil de risco dos clientes e a correlação da atividade bancária com o cenário macroeconômico.
gerador_clientes.py: Script Python para gerar dados sintéticos de clientes (d_customer.csv).coletor_dados_macro.py: Script Python para coletar dados macroeconômicos históricos do Banco Central do Brasil (d_macro_economic.csv).gerador_transcoes.py: Script Python para gerar dados sintéticos de transações bancárias (f_transactions.csv).Transformação_tabelas.ipynb: Notebook SQL (Databricks) que implementa o pipeline ETL da camada Bronze para Silver e Gold.KPI'S.ipynb: Notebook SQL (Databricks) que calcula e visualiza os KPIs de negócio a partir da camada Gold.Movimentação Bancária 2025-10-17 17_41.pdf: Um exemplo de dashboard/relatório com as visualizações geradas no notebook de KPIs..gitignore: Configurado para ignorar os arquivos.csvgerados.
O projeto é dividido em três etapas principais:
Antes de iniciar a análise, os dados brutos (camada Bronze) são criados:
-
gerador_clientes.py: Cria o arquivod_customer.csv.- Gera dados demográficos (nome, idade, cidade, estado) e financeiros (data de criação da conta, faixa de renda, score de crédito) para 15.000 clientes fictícios.
-
coletor_dados_macro.py: Cria o arquivod_macro_economic.csv.- Utiliza a biblioteca
bcbpara buscar dados mensais históricos (2000-2025) de indicadores brasileiros: SELIC, IPCA, Taxa de Desemprego e PIB.
- Utiliza a biblioteca
-
gerador_transcoes.py: Cria o arquivof_transactions.csv.- Lê o
d_customer.csve gera um histórico de transações para cada cliente, simulando um comportamento realista. - Considera a data de abertura da conta, o tipo de transação (incluindo a introdução do PIX em 2020) e o canal (com aumento da probabilidade de uso de canais digitais ao longo do tempo).
- Lê o
Os arquivos .csv gerados são tratados como a camada Bronze. O notebook Transformação_tabelas.ipynb é responsável por processá-los. (Assume-se que os CSVs foram carregados em tabelas bronze_customer, bronze_transactions e bronze_macro_economic na plataforma de dados, como o Databricks).
-
Camada Silver:
silver_customers: Tabela de clientes com tipos de dados corrigidos (ex: datas).silver_transactions: Tabela de transações com tipos de dados corrigidos (ex: timestamp, decimal) e criação de uma chaveanomes_idpara joins.silver_macro_economic: Tabela macroeconômica com tipos de dados corrigidos e uma chaveanomes_id.
-
Camada Gold:
d_date: Criação de uma tabela de dimensão de datas.gold_f_transactions: Tabela de fatos principal, unindo as tabelas Silver (transações, clientes, dados macroeconômicos) e a dimensão de data. Esta tabela é otimizada para as consultas analíticas.
O notebook KPI'S.ipynb consome os dados da tabela gold_f_transactions para gerar as seguintes análises:
-
KPI 1: Adoção Digital ao Longo do Tempo:
- Mede o percentual de transações feitas por canais digitais (Mobile App, Internet Banking) em relação ao total, mês a mês.
-
KPI 2: Volume Financeiro por Canal:
- Agrega o volume financeiro (R$) e o número de transações por canal (Agência, Caixa Eletrônico, Internet Banking, Mobile App) ao longo dos anos.
-
KPI 3: Análise do Perfil de Risco dos Clientes:
- Distribui a base de clientes em faixas de risco (Alto, Médio, Bom, Excelente) com base no
score_de_credito.
- Distribui a base de clientes em faixas de risco (Alto, Médio, Bom, Excelente) com base no
-
KPI 4: Correlação com Indicadores Macroeconômicos:
- Plota o volume total transacionado ao longo do tempo contra as taxas SELIC e de desemprego, permitindo uma análise visual de correlações.
O arquivo Movimentação Bancária ... .pdf apresenta as visualizações gráficas resultantes dessas análises.
-
Pré-requisitos:
- Python 3.x
- Bibliotecas Python:
pandas,numpy,faker,bcb - Um ambiente de processamento de dados SQL (ex: Databricks, Spark, etc.) capaz de executar notebooks.
-
Passo a Passo:
- Instale as bibliotecas Python necessárias:
pip install pandas numpy faker bcb
- Execute os scripts Python na ordem correta para gerar os dados brutos:
python gerador_clientes.py python coletor_dados_macro.py python gerador_transcoes.py
- Isto criará três arquivos:
d_customer.csv,d_macro_economic.csv, ef_transactions.csv. - Carregue esses três arquivos
.csvpara sua plataforma de dados (ex: Databricks) e crie as tabelas da camada Bronze (ex:workspace.default.bronze_customer,workspace.default.bronze_transactions,workspace.default.bronze_macro_economic). - Abra e execute o notebook
Transformação_tabelas.ipynbpara processar os dados Brutos e criar as tabelas Silver e Gold. - Abra e execute o notebook
KPI'S.ipynbpara calcular os KPIs e gerar as visualizações.
- Instale as bibliotecas Python necessárias: