Arquitectures generals de dades
L'arquitectura de dades d'una organització és el conjunt de decisions sobre com s'emmagatzemen, es mouen, es transformen i s'exposen les dades. No existeix una arquitectura universalment correcta: cada opció és una resposta a restriccions concretes de negoci, tècniques i d'equip. Comprendre l'evolució d'aquestes arquitectures ajuda a entendre per qué s'han creat les eines que existeixen avui i quan té sentit usar cadascuna.
timeline
title Evolució de les arquitectures de dades
1990 : Data Warehouse relacional
: Kimball (dimensional) i Inmon (normalitzat)
: ETL nocturna, OLAP, esquema estrella
2006 : Hadoop i HDFS
: Processament distribuït accessible
: MapReduce com a paradigma de programació
2011 : Data Lake
: Emmagatzematge brut a qualsevol escala
: Schema-on-read, S3 com a storage layer
2016 : Spark substitueix MapReduce
: Processament en memòria 100x més ràpid
: Spark SQL, DataFrames, MLlib
2019 : Delta Lake (Databricks)
: ACID sobre fitxers Parquet
: Neix el concepte Lakehouse
2020 : Data Mesh (Dehghani)
: Descentralització per dominis
: Dades com a producte
2021 : Apache Iceberg i Apache Hudi
: Formats oberts de taula per al lake
: Time travel, schema evolution
2024 : Lakehouse com a estàndard
: Snowflake, Databricks, BigQuery Iceberg
: Open table formats dominants
Data Warehouse tradicional
El Data Warehouse (DW) va sorgir a finals dels anys 80 i principis dels 90 com a resposta a la necessitat de separar les consultes analítiques (OLAP) de les transaccionals (OLTP). Un sistema OLTP (com la base de dades d'una botiga en línia) està optimitzat per a insercions i actualitzacions ràpides d'una sola fila. Intentar executar una anàlisi de vendes dels últims 5 anys sobre la mateixa base de dades degradaria el rendiment transaccional. El DW resolia aquest problema introduint una capa analítica separada.
Dos models de disseny: Kimball vs Inmon
Ralph Kimball — El model dimensional (bottom-up)
Kimball va proposar construir el DW com una col·lecció de data marts departamentals, cadascun amb el seu propi esquema dimensional, integrats posteriorment. El seu enfocament és bottom-up: es comença per les necessitats concretes de negoci i s'afegeix complexitat gradualment.
El concepte central de Kimball és el modelatge dimensional, que organitza les dades en:
- Taules de fets: contenen mesures numèriques i claus foranes cap a les dimensions. Ex: la taula
vendesamb columnesimport,quantitat,id_producte,id_client,id_data. - Taules de dimensions: contenen atributs descriptius. Ex: la taula
producteambnom,categoria,marca,color.
erDiagram
VENDES_FETS ||--o{ DIM_PRODUCTE : "id_producte"
VENDES_FETS ||--o{ DIM_CLIENT : "id_client"
VENDES_FETS ||--o{ DIM_DATA : "id_data"
VENDES_FETS ||--o{ DIM_BOTIGA : "id_botiga"
VENDES_FETS {
int id_venda PK
int id_producte FK
int id_client FK
int id_data FK
int id_botiga FK
decimal import_net
int quantitat
decimal descompte
}
DIM_PRODUCTE {
int id_producte PK
string nom_producte
string categoria
string subcategoria
string marca
}
DIM_CLIENT {
int id_client PK
string nom_client
string segment
string provincia
string pais
}
DIM_DATA {
int id_data PK
date data_completa
int any
int mes
string nom_mes
string trimestre
boolean es_festiu
}
Aquest és l'esquema estrella (star schema): la taula de fets al centre, les dimensions al voltant com les puntes d'una estrella. Si les dimensions estan parcialment normalitzades (ex: categoria té la seva pròpia taula separada que subcategoria referencia), es parla d'esquema floc de neu (snowflake schema), que usa menys espai però és més complex de consultar.
Bill Inmon — El model corporatiu (top-down)
Inmon definia el Data Warehouse com "un conjunt de dades integrades, orientades al subjecte, variables en el temps i no volàtils, per donar suport al procés de presa de decisions". El seu enfocament és top-down: primer es construeix un DW corporatiu únic, completament normalitzat (3NF), i després se'n deriven els data marts departamentals.
| Dimensió | Kimball | Inmon |
|---|---|---|
| Enfocament | Bottom-up (per departaments) | Top-down (corporatiu primer) |
| Modelatge | Dimensional (estrella/floc de neu) | Normalitzat (3NF) |
| Temps d'implementació | Ràpid (primeres setmanes) | Lent (mesos o anys) |
| Flexibilitat | Alta per a consultes analítiques | Alta per a integritat de dades |
| Adopció actual | Dominant a la indústria | Menys freqüent |
ETL: Extract, Transform, Load
El procés que alimenta el DW és l'ETL: s'extreuen dades dels sistemes fonts (OLTP, CRM, ERP), es transformen per adaptar-les a l'esquema dimensional (netejar, integrar, agregar), i es carreguen al DW. Típicament s'executa en un procés nocturn (batch) perquè és intensiu en recursos.
OLAP: anàlisi multidimensional
Un cop les dades estan al DW, les eines OLAP (Online Analytical Processing) permeten explorar-les des de múltiples dimensions: per any, per producte, per zona, etc. Les operacions fonamentals d'OLAP son:
- Drill-down: de resum a detall (de trimestre a mes a dia)
- Roll-up: de detall a resum (de producte a categoria)
- Slice: filtrar per una dimensió (només vendes de Barcelona)
- Dice: filtrar per múltiples dimensions (vendes de Barcelona de productes electrònics el 2024)
- Pivot: canviar l'orientació de la taula (files/columnes)
Data Lake
El Data Lake va sorgir com a resposta a les limitacions del DW tradicional davant del Big Data. El terme el va popularitzar James Dixon (CTO de Pentaho) el 2010. La idea fonamental és: emmagatzemar totes les dades en format brut, sense transformar-les prèviament, i aplicar l'esquema en el moment de la consulta.
Principis del Data Lake
- Schema-on-read: les dades s'emmagatzemen tal com arriben (JSON, CSV, logs, imatges). L'esquema s'aplica en llegir, no en escriure.
- Emmagatzematge barat a escala: S3, Azure ADLS Gen2 o Google Cloud Storage costen entre 20€ i 25€ per TB/mes, molt menys que un DW gestionat.
- Separació de còmput i emmagatzematge: es paga per les dades emmagatzemades independentment de la potència de còmput usada per processar-les.
- Acceptació de múltiples formats: un Data Lake pot contenir fitxers Parquet, CSV, JSON, imatges JPEG, vídeos MP4 i fitxers de log en la mateixa ubicació.
Plataformes de Data Lake
| Proveïdor | Servei | Característica clau |
|---|---|---|
| AWS | Amazon S3 + AWS Glue | Maduresa i ecosistema ampli |
| Azure | Azure Data Lake Storage Gen2 | Integració amb Azure Synapse Analytics |
| Google Cloud | Google Cloud Storage + BigQuery | BigQuery pot consultar directament GCS |
| Open source | MinIO (compatible S3) | On-premise i multi-cloud |
El problema del "data swamp"
Sense governança adequada, un Data Lake es converteix ràpidament en un data swamp (pantà de dades):
- Ningú sap quines dades hi ha ni on.
- No hi ha documentació sobre el format ni el significat de cada fitxer.
- Les dades de baixa qualitat s'acumulen sense control.
- Les consultes fallen perquè els esquemes han canviat sense avís.
- Diferents equips llegeixen les mateixes dades de formes inconsistents.
La solució al data swamp no és tecnològica sinó organitzativa: cal un catàleg de dades (Apache Atlas, AWS Glue Data Catalog, Azure Purview), una política de nomenclatura de fitxers, i un responsable de governança de dades.
Data Lakehouse
El Data Lakehouse combina el millor dels dos mons: l'escalabilitat i la flexibilitat del Data Lake amb les garanties d'un Data Warehouse (ACID, esquema, qualitat).
El terme va ser encunyat per Databricks el 2020 en presentar Delta Lake, la tecnologia open source que fa possible el Lakehouse. La idea central és afegir una capa de metadades transaccionals sobre fitxers Parquet al lake, de manera que les operacions que fins aleshores eren impossibles sobre un lake (actualitzar, esborrar, transaccions) es tornen viables.
Les tres tecnologies de taula open format
flowchart TD
subgraph LAKE["Data Lake (S3 / ADLS / GCS)"]
PQ["Fitxers Parquet\n(dades reals)"]
end
subgraph FORMATS["Capa de metadades (open table format)"]
DL["Delta Lake\n(Databricks, 2019)"]
IC["Apache Iceberg\n(Netflix, 2018)"]
HU["Apache Hudi\n(Uber, 2016)"]
end
subgraph MOTORS["Motors de consulta"]
SP["Apache Spark"]
TR["Trino / Presto"]
DF["Dremio / Starburst"]
SF["Snowflake (Iceberg)"]
end
PQ --> DL
PQ --> IC
PQ --> HU
DL --> SP
DL --> TR
IC --> SP
IC --> TR
IC --> SF
HU --> SP
Delta Lake (Databricks, 2019, open source des del 2020):
- ACID sobre fitxers Parquet a S3/ADLS/GCS.
- Time travel: consultar versions anteriors de la taula (SELECT * FROM taula VERSION AS OF 10).
- Schema enforcement: rebutja dades que no coincideixen amb l'esquema definit.
- Schema evolution: permet afegir columnes sense reescriure totes les dades.
- Upserts eficients (MERGE INTO).
Apache Iceberg (Netflix, 2018, Apache Software Foundation): - Dissenyat per gestionar taules de petabytes amb milers de particions. - Hidden partitioning: l'usuari no necessita saber com estan particionades les dades. - Compatible amb Spark, Trino, Flink, Hive, BigQuery i Snowflake. - Time travel i schema evolution. - Cada vegada més adoptat com l'estàndard de facto per a entorns multi-motor.
Apache Hudi (Uber, 2016, Apache Software Foundation): - Optimitzat per a casos d'ús de streaming i upserts (actualitzar registres individuals de manera eficient). - Dos tipus de taula: Copy-on-Write (COW) per a lectures ràpides, Merge-on-Read (MOR) per a escriptures ràpides. - Usat extensament a Uber, Alibaba i altres empreses amb necessitat de dades quasi-real-time al lake.
Per qué el Lakehouse és el model dominant el 2025
El Lakehouse ha guanyat adopció perquè resol els principals problemes del Data Lake sense els costos del DW tradicional:
- Un sol dipòsit de dades per a analytics, ML i streaming.
- Formats oberts: les dades no estan "tancades" en el format propietari del proveïdor.
- Costos d'emmagatzematge propers als del lake (Parquet a S3), molt per sota dels DW gestionats.
- Suport per a actualitzacions i esborrats (necessari per al GDPR: "dret a l'oblit").
Data Mesh
El Data Mesh no és una tecnologia sinó una arquitectura organitzativa proposada per Zhamak Dehghani el 2019 (Thoughtworks). La seva premissa és que les arquitectures centralitzades (DW o lake monolítics gestionats per un equip central de dades) no escalen quan una organització creix i té molts dominis de negoci.
Els quatre principis del Data Mesh
1. Propietat per dominis (Domain ownership)
Les dades pertanyen als equips de negoci que les generen, no a un equip central de dades. L'equip de "Comandes" és responsable de les seves dades de comandes; l'equip de "Logística", de les dades de lliurament.
2. Dades com a producte (Data as a product)
Cada domini publica les seves dades com si fossin un producte, amb les mateixes garanties de qualitat que un producte de software: SLAs de disponibilitat, documentació, versionat, API estable. Els consumidors poden "subscriure's" a un producte de dades amb confiança.
3. Plataforma self-serve (Self-serve data platform)
Per a que els dominis puguin publicar i consumir dades de forma autònoma, cal una plataforma d'infraestructura que elimini la fricció tècnica: aprovisionament automàtic de pipelines, catàleg de dades centralitzat, monitorització integrada.
4. Governança federada (Federated computational governance)
Hi ha normes globals (seguretat, privacitat, qualitat mínima) que tots els productes de dades han de complir, però cada domini té llibertat per a les decisions locals. La governança es fa computacionalment (polítiques com a codi) no burocràticament.
Taula comparativa de les quatre arquitectures
| Criteri | Data Warehouse | Data Lake | Data Lakehouse | Data Mesh |
|---|---|---|---|---|
| Model de dades | Estructurat (esquema fix) | Qualsevol format (schema-on-read) | Estructurat + semiestructurat | Per dominis (cada domini decideix) |
| Escalabilitat | Limitada (escala vertical, cara) | Alta (escala horitzontal, barata) | Alta (storage separat del còmput) | Molt alta (descentralitzada) |
| Qualitat de dades | Alta (ETL rigorós) | Baixa sense governança | Alta (schema enforcement) | Variable per domini |
| Latència | Batch (hores) | Batch a streaming | Batch a quasi-real-time | Depèn de la implementació |
| Cost inicial | Alt (llicències, hardware) | Baix (S3 genèric) | Mig (format + còmput cloud) | Alt (plataforma + canvi cultural) |
| Facilitat d'ús | Alta per a BI | Baixa sense eines | Alta | Depèn de la plataforma |
| Casos d'ús de ML | Limitats | Bons (dades brutes per entrenament) | Excel·lents | Bons |
| Governança | Centralitzada | Difícil sense eines addicionals | Integrada (Delta/Iceberg) | Federada per disseny |
| Exemples d'eines | Snowflake, Redshift, BigQuery, Teradata | S3 + Athena, ADLS + Synapse | Databricks Lakehouse, Delta Lake, Iceberg | Atlan, Collibra + qualsevol storage |
| Quan usar-la | BI corporatiu estable, equips petits | Arxiu de dades, ML a gran escala | La majoria de casos d'ús moderns | Organitzacions grans i distribuïdes |
AC5074/01/02 — Miniactivitat
Una empresa de transport urbà (autobús i metro) vol construir un sistema de dades amb els objectius següents:
- Analitzar la puntualitat de les línies en temps real (alertes si un servei porta més de 5 minuts de retard).
- Generar informes mensuals de rendiment operatiu per als directius.
- Emmagatzemar les dades de GPS de tots els vehicles dels últims 3 anys (uns 50 TB).
- Permetre als científics de dades entrenar models de previsió de demanda.
- Complir el GDPR: cal poder esborrar les dades associades a un bitllet concret si el client ho sol·licita.
Pregunta 1: Quina arquitectura o combinació d'arquitectures proposes? Justifica la teva decisió tenint en compte cadascun dels cinc objectius.
Pregunta 2: Quin format de taula open (Delta Lake, Iceberg o Hudi) triaries per al component de lake/lakehouse? Per qué?
Pregunta 3: Dibuixa un esquema simplificat (en paper, draw.io o Mermaid) de com organitzaries les capes de l'arquitectura proposada.
Lliurament: Document (màx. 1 pàgina de text + diagrama), entregat al Campus Virtual.
Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027