Salta el contingut

Pràctica 8: Pipeline de Data Warehouse

Objectiu

Crear un pipeline complet de càrrega a un data warehouse simulat.

Descripció

ETL des de múltiples fonts cap a un data warehouse (PostgreSQL simulant DWH).

Arquitectura

[API 1] ──┐
[API 2] ──┼──> [Transform] ──> [Stage] ──> [DWH]
[CSV]   ──┘

Part A: Crear estructura DWH

-- Taules staging
CREATE SCHEMA staging;

CREATE TABLE staging.vendes_raw (
    font VARCHAR(50),
    dades JSONB,
    carregat_a TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Taules DWH
CREATE SCHEMA dwh;

CREATE TABLE dwh.fact_vendes (
    venda_id SERIAL PRIMARY KEY,
    producte_id INTEGER,
    client_id INTEGER,
    import DECIMAL(10,2),
    data_venda DATE,
    sistema_origen VARCHAR(50)
);

CREATE TABLE dwh.dim_productes (
    producte_id SERIAL PRIMARY KEY,
    nom_producte VARCHAR(200),
    categoria VARCHAR(100),
    preu DECIMAL(10,2)
);

Part B: Workflow de càrrega

  1. Schedule Trigger - Diari a les 2 AM

  2. Subworkflow: Extract des d'API 1

  3. HTTP Request
  4. Transform
  5. Load a staging

  6. Subworkflow: Extract des de CSV

  7. Read Binary File
  8. Spreadsheet File
  9. Transform
  10. Load a staging

  11. Function: Merge i neteja

    // Eliminar duplicats
    // Validar dades
    // Normalitzar formats
    

  12. Postgres: Load a DWH

  13. Inserir a fact tables
  14. Actualitzar dimension tables

  15. Function: Data quality checks

    // Comptar registres
    // Validar integritat referencial
    // Verificar rangs de valors
    

  16. Notification: Resultat

  17. Email amb resum
  18. Slack amb mètriques

Lliurables

  • Workflow complet del pipeline
  • Scripts SQL d'estructura
  • Documentació del procés
  • Report d'execució amb mètriques