Salta el contingut

Modern Data Stack aplicat a BI

Contingut d'ampliació

Aquesta pàgina amplia el bloc de Visualització de dades amb continguts que no formen part del repartiment oficial de les 99 hores del currículum (vegeu Programació), tret de la comparativa KDD/CRISP-DM/SEMMA, que sí correspon al contingut oficial 2.4 del RA2 ("Principals mètodes i algorismes a la mineria de dades. Models SEMMA i CRISP-DM"). El professorat el pot tractar com a activitat de reforç o ampliació segons la disponibilitat horària del grup.

KDD, CRISP-DM i SEMMA

El KDD (Knowledge Discovery in Databases) és el procés formal de descobriment de coneixement a partir de dades, formalitzat per Fayyad et al. el 1996.

flowchart LR
    Dades[(Dades brutes)] --> Seleccio
    Seleccio[Seleccio] --> Preproces
    Preproces[Preproces] --> Transformacio
    Transformacio[Transformacio] --> Mining
    Mining[Data Mining] --> Interpretacio
    Interpretacio[Interpretacio i Avaluacio] --> Coneixement[(Coneixement)]

Fase 1 — Selecció: identificar les fonts de dades rellevants per al problema.

Fase 2 — Preprocés: neteja de dades (valors nuls, duplicats, errors tipogràfics, normalització de formats).

Fase 3 — Transformació: agregacions, derivació de noves variables, codificació de variables categòriques.

Fase 4 — Data Mining: classificació, clustering, regles d'associació, detecció d'anomalies, sèries temporals.

Fase 5 — Interpretació/Avaluació: valorar si els patrons descoberts són útils, nous i comprensibles.

Aspecte KDD CRISP-DM SEMMA
Origen Acadèmic (1996) Industrial, IBM/Daimler (1999) SAS Institute (1999)
Enfoc Descobriment de coneixement Projecte de mineria de dades Procés tècnic de modelat
Fases 5 6 5 (Sample, Explore, Modify, Model, Assess)
Iteració Implícita Explícita, molt iterativa Implícita
Negoci Poc èmfasi Fort èmfasi (fase 1: comprensió del negoci) Poc èmfasi
Ús actual Referència teòrica Estàndard de facto a la indústria Decreixent, lligat a l'ecosistema SAS

Miniactivitat — AC5074/07/07

Aplica les cinc fases del KDD a un cas concret: a partir d'un CSV de vendes (o el de la teva pràctica PR507402), descriu què faries a cada fase (selecció, preprocés, transformació, mineria, interpretació) per respondre la pregunta "quins productes hauríem de deixar de vendre?". Compara-ho amb com abordaries el mateix problema seguint les 6 fases de CRISP-DM.

El Modern Data Stack

El Modern Data Stack (MDS) és una arquitectura modular de dades basada en serveis cloud especialitzats:

flowchart TB
    subgraph Fonts["Fonts de Dades"]
        DB[(BBDD produccio)]
        API[APIs externes]
        Sheets[Google Sheets]
    end

    subgraph Ingesta["Ingesta - ELT"]
        Fivetran[Fivetran]
        Airbyte[Airbyte OS]
    end

    subgraph Emmagatzematge["Data Warehouse / Lakehouse"]
        Snowflake[Snowflake]
        BigQuery[BigQuery]
        DuckDB[DuckDB]
    end

    subgraph Transformacio["Transformacio"]
        dbt[dbt]
    end

    subgraph Visualitzacio["Visualitzacio BI"]
        Metabase[Metabase]
        Looker[Looker]
    end

    Fonts --> Ingesta
    Ingesta --> Emmagatzematge
    Emmagatzematge --> Transformacio
    Transformacio --> Emmagatzematge
    Emmagatzematge --> Visualitzacio

Ingesta: Fivetran (SaaS, centenars de connectors, zero manteniment) o Airbyte (open-source, self-hosted).

Emmagatzematge: Snowflake (separació compute/storage, pay-per-use), BigQuery (serverless, ecosistema Google), Redshift (AWS) o DuckDB per a analítica local.

Transformació: dbt — veure secció següent.

Visualització: Metabase i Power BI, ja treballats en aquest mateix bloc.

DuckDB: OLAP al portàtil

DuckDB és un sistema de gestió de bases de dades OLAP (columnar) embegut, que s'executa directament dins del procés Python, R o CLI, sense servidor extern. Creat el 2019 a la Universitat de Delft, s'ha convertit en la solució de referència per a analítica local des del 2023.

Per què és rellevant: zero infraestructura (pip install duckdb), execució vectoritzada i paral·lela usant tots els cors del CPU, lectura directa de CSV/Parquet/JSON/S3 sense importar les dades, SQL complet (window functions, CTEs, PIVOT) i integració nativa amb pandas/Arrow.

import duckdb

conn = duckdb.connect()

# Analitzar múltiples fitxers Parquet directament, sense importar-los
resultat = conn.execute("""
    SELECT categoria, SUM(import) AS total, COUNT(*) AS num_vendes
    FROM read_parquet('vendes_*.parquet')
    GROUP BY categoria
    ORDER BY total DESC
    LIMIT 10
""").df()

print(resultat)
Escenari DuckDB Spark
Fitxers < 50 GB, 1 màquina Molt millor (menys overhead) Possible però excessiu
Dades > 500 GB No adequat Necessari
Analítica ad-hoc en portàtil Perfecte Poc pràctic
Pipeline de producció distribuït No adequat Ideal

dbt aplicat a un pipeline de BI

dbt (data build tool) organitza les transformacions com a models SQL en capes, gestionant dependències i tests automàticament:

staging/    -> neteja i tipus, 1-a-1 amb la font bruta
intermediate/ -> combinació de dades de diverses fonts
marts/      -> lògica de negoci final, consumida pel BI
-- models/marts/finance/fct_vendes.sql
{{ config(materialized='table') }}

WITH vendes AS (
    SELECT * FROM {{ ref('stg_vendes') }}
),
clients AS (
    SELECT * FROM {{ ref('dim_clients') }}
)
SELECT
    v.venda_id,
    v.data_venda,
    v.categoria,
    c.segment AS segment_client,
    v.import,
    ROUND(v.import - v.cost, 2) AS marge_brut
FROM vendes v
LEFT JOIN clients c ON v.client_id = c.client_id
dbt run                 # compila i executa tots els models
dbt test                # executa els tests de qualitat declarats al schema.yml
dbt docs generate && dbt docs serve   # documentació i lineage navegables

Aquesta capa marts és, en la pràctica, la font que després connecta Metabase o Power BI per construir els dashboards.

Modelatge dimensional: ja treballat al Bloc 4

L'esquema estrella, el Data Vault 2.0 i el One Big Table (OBT) —les tres estratègies habituals per estructurar la capa marts d'un pipeline dbt— ja es treballen en detall a Data Warehouse, amb la comparativa i la miniactivitat corresponent. No es repeteixen aquí.


Bloc 7 | Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027