Voltar aos Projetos
Projeto em Destaque
🏗️ Pipeline de Dados - Estabelecimentos e Vendas
Este projeto implementa um pipeline de dados moderno baseado na arquitetura de camadas Bronze, Silver e Gold, utilizando Apache Spark no Databricks. O objetivo é transformar dados brutos de estabelecimentos e pedidos em insights prontos para consumo analítico via ferramentas como Power BI, Tableau ou APIs.
Dados
2 min de leitura
1598 visualizações
🛠️ Tecnologias Utilizadas
Apache Spark
Databricks
📁 Estrutura dos Notebooks
| Camada | Notebook | Descrição |
|---|---|---|
| Bronze | bronze.dbc | Ingestão inicial dos dados brutos |
| Bronze | BronzeEstabelecimentos.dbc | Ingestão de dados de estabelecimentos |
| Silver | SilverPedidos.dbc | Limpeza, transformação e junção de dados de pedidos |
| Gold | GoldTotalEstabelecimento.dbc | Agregações por estabelecimento |
| Gold | GoldVendasTotalPedidos.dbc | Métricas globais de vendas e pedidos |
| Config | configurações.dbc | Caminhos e parâmetros globais |
⚙️ Exemplo de Código
Ingestão Bronze
from pyspark.sql.functions import col
df_raw = spark.read.format("csv").option("header", "true").load(bronze_path)
df_raw.withColumnRenamed("Nome Estabelecimento", "nome_estabelecimento") \
.write.format("delta").mode("overwrite").saveAsTable("bronze.estabelecimentos")
Transformação Silver
df = spark.read.table("bronze.pedidos")
df_clean = df.filter(col("valor_total") > 0).dropna(subset=["id_pedido", "data_pedido"])
df_clean.write.format("delta").mode("overwrite").saveAsTable("silver.pedidos")
Agregação Gold
-- SQL no Databricks
CREATE OR REPLACE TABLE gold.total_vendas_estabelecimento AS
SELECT
id_estabelecimento,
COUNT(DISTINCT id_pedido) AS total_pedidos,
SUM(valor_total) AS total_vendas
FROM silver.pedidos
GROUP BY id_estabelecimento;
📊 Visualizações Recomendadas
As tabelas da camada Gold possibilitam as seguintes visualizações:
📈 Vendas por Estabelecimento
- Gráfico de barras ordenado por total de vendas
- Filtros por data e localização
📆 Evolução Temporal de Pedidos
- Gráfico de linha com pedidos/dia
- Tendência de crescimento ou sazonalidade
📍 Mapa de Estabelecimentos
- Visualização geográfica (caso contenha latitude/longitude)
- Clustering por volume de vendas
🔌 Integração com Power BI / Tableau
Power BI
- Acesse o Databricks SQL Endpoint.
- Copie a string de conexão JDBC.
- No Power BI:
- Escolha Get Data > Azure > Azure Databricks.
- Cole a string JDBC.
- Selecione a tabela
gold.total_vendas_estabelecimento.
- Crie relatórios com filtros, KPIs e dashboards interativos.
Tableau
- Em Connect > Databricks.
- Use o token de acesso e host da workspace.
- Selecione o schema
gold. - Crie painéis visuais com drag-and-drop.
🌐 Exposição via API (Databricks SQL)
Databricks pode ser integrado a APIs REST para servir dados da camada Gold:
curl -X POST https://<workspace-url>/api/2.0/sql/statements/execute \
-H "Authorization: Bearer <token>" \
-d '{
"statement": "SELECT * FROM gold.total_vendas_estabelecimento",
"warehouse_id": "<warehouse_id>"
}'
📌 Requisitos
- Databricks Community ou Enterprise
- Spark 3.0+
- Delta Lake
- Power BI / Tableau (opcional)
✅ Etapas de Execução
# Ordem sugerida para execução
1. configurações.dbc
2. 01.bronze.dbc
3. BronzeEstabelecimentos.dbc
4. SilverPedidos.dbc
5. GoldTotalEstabelecimento.dbc
6. GoldVendasTotalPedidos.dbc