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
    🏗️ Pipeline de Dados - Estabelecimentos e Vendas

    🛠️ Tecnologias Utilizadas

    Apache Spark
    Databricks

    📁 Estrutura dos Notebooks

    CamadaNotebookDescrição
    Bronzebronze.dbcIngestão inicial dos dados brutos
    BronzeBronzeEstabelecimentos.dbcIngestão de dados de estabelecimentos
    SilverSilverPedidos.dbcLimpeza, transformação e junção de dados de pedidos
    GoldGoldTotalEstabelecimento.dbcAgregações por estabelecimento
    GoldGoldVendasTotalPedidos.dbcMétricas globais de vendas e pedidos
    Configconfigurações.dbcCaminhos 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

    1. Acesse o Databricks SQL Endpoint.
    2. Copie a string de conexão JDBC.
    3. No Power BI:
      • Escolha Get Data > Azure > Azure Databricks.
      • Cole a string JDBC.
      • Selecione a tabela gold.total_vendas_estabelecimento.
    4. Crie relatórios com filtros, KPIs e dashboards interativos.

    Tableau

    1. Em Connect > Databricks.
    2. Use o token de acesso e host da workspace.
    3. Selecione o schema gold.
    4. 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