Intel·ligència de Negoci (BI) amb Big Data
Introducció
La Intel·ligència de Negoci (Business Intelligence, BI) és el conjunt de processos, tecnologies i metodologies que transformen les dades brutes en informació accionable per a la presa de decisions empresarials. En el context del Big Data, el BI ha evolucionat radicalment: ja no es tracta només de generar informes estàtics de vendes mensuals, sinó de construir sistemes capaços d'analitzar terabytes de dades en temps quasi real, descobrir patrons ocults i presentar-los de manera accessible a persones no tècniques.
El 2025, la convergència entre Big Data i BI ha generat el que s'anomena Modern Data Stack: un conjunt d'eines cloud-native, majoria open-source o freemium, que qualsevol empresa pot desplegar en dies i que substitueix infraestructures tradicionals de Data Warehouse que costaven milions d'euros i anys d'implementació.
1. Evolució del BI
1.1 Les eres del BI
Era 1 — Reporting bàsic (1990-2000): Informes predefinits generats per TI a petició dels directius. Un informe de vendes mensuals podia trigar dies a preparar-se. Eines: Crystal Reports, Business Objects.
Era 2 — OLAP i Cubos (2000-2010): Processament Analític en Línia (OLAP). Els Data Warehouses tradicionals (Teradata, Oracle DW) emmagatzemaven dades en cubs multidimensionals que permetien anàlisi per dimensions (temps, geografia, producte). L'usuari podia "pirullar" el cub per a veure les dades des de qualsevol angle. Eines: Microsoft Analysis Services, Cognos, Business Objects XI.
Era 3 — Self-service BI (2010-2020): La democratització del BI. Eines com Tableau (2003), QlikView i Power BI (2015) van posar el poder d'anàlisi directament a les mans dels analistes de negoci, sense necessitat de TI per a cada consulta. L'usuari podia arrossegar i deixar anar dimensions i mètriques per a crear les seves pròpies visualitzacions.
Era 4 — AI-augmented BI (2020-2024): La intel·ligència artificial entra al BI: detecció automàtica d'anomalies, forecasting integrat, generació automàtica d'insights ("les vendes del Q3 han caigut un 12% respecte al Q3 de l'any passat, principalment per la reducció en la categoria Electrònica"). Eines: Power BI amb Copilot, Tableau Pulse, ThoughtSpot.
Era 5 — Conversational BI (2024-2025): El BI basat en llenguatge natural. L'usuari pot preguntar en català (o qualsevol idioma): "Quines categories han crescut més aquest mes respecte al mes anterior?" i el sistema genera automàticament la visualització correcta. Eines: Tableau Pulse, ThoughtSpot Sage, Microsoft Fabric amb Copilot.
1.2 Comparativa d'eines BI 2025
| Eina | Model | Ideal per | Punts forts |
|---|---|---|---|
| Power BI | Llicència | Empreses Microsoft | Integració Office 365, DAX potent, Copilot |
| Tableau | Llicència | Enterprise, analistes avançats | Visualitzacions, comunitat, Tableau Pulse |
| Looker | Llicència | Google Cloud | LookML, semantic layer, API-first |
| Metabase | Open Source / Cloud | Startups, equips tècnics | Senzillesa, self-hosted, SQL + GUI |
| Apache Superset | Open Source | Dades en cloud | Molt configurable, connector Druid/ClickHouse |
| Redash | Open Source | Equips SQL | Simple, lleuger, fàcil d'integrar |
| DuckDB + Evidence | Open Source | Developers | BI-as-code, Markdown + SQL |
2. KDD: Knowledge Discovery in Databases
2.1 El procés KDD
El KDD (Knowledge Discovery in Databases) és el procés formal de descobriment de coneixement útil a partir de dades. Va ser formalitzat per Fayyad et al. el 1996 i continua sent el marc de referència teòric del Data Mining i el BI.
flowchart LR
Dades[(Dades brutes)] --> Seleccio
Seleccio[Seleccio] --> Preprocés
Preprocés[Preprocés] --> Transformacio
Transformacio[Transformacio] --> Mining
Mining[Data Mining] --> Interpretacio
Interpretacio[Interpretacio i Avaluació] --> Coneixement[(Coneixement)]
Fase 1 — Selecció: Identificar les fonts de dades rellevants per al problema. No totes les dades disponibles són útils per a una anàlisi concreta.
Fase 2 — Preprocés: Neteja de dades: gestió de valors nuls, eliminació de duplicats, correcció d'errors tipogràfics, normalització de formats de data i moneda.
Fase 3 — Transformació: Convertir les dades al format adequat per a l'anàlisi: agregacions, derivació de noves variables (edat a partir de data de naixement, marge a partir de preu i cost), codificació de variables categòriques.
Fase 4 — Data Mining: Aplicar algoritmes per a descobrir patrons: classificació, clustering, regles d'associació, detecció d'anomalies, sèries temporals.
Fase 5 — Interpretació/Avaluació: Avaluar si els patrons descoberts són útils, nous i comprensibles. Molts patrons estadísticament significatius no aporten valor real de negoci.
2.2 Comparativa KDD vs CRISP-DM vs SEMMA
| 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 |
| Iteració | Implícita | Explícita, molt iterativa | Implícita |
| Negoci | Poc èmfasi | Fort èmfasi (fase 1: comprensió del negoci) | Poc èmfasi |
| Us | Investigació | Projectes d'empresa | Usuaris SAS |
| 2025 | Referència teòrica | Estàndard de facto | Decreixent |
3. Modern Data Stack 2025
3.1 Arquitectura del Modern Data Stack
El Modern Data Stack (MDS) és una arquitectura modular de dades basada en serveis cloud especialitzats, cadascun excel·lent en la seva funció:
flowchart TB
subgraph Fonts["Fonts de Dades"]
DB[(BBDD producció)]
API[APIs externes]
Sheets[Google Sheets]
Logs[Logs aplicació]
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["Transformació"]
dbt[dbt]
end
subgraph Visualitzacio["Visualització BI"]
Metabase[Metabase]
Looker[Looker]
Superset[Superset]
end
Fonts --> Ingesta
Ingesta --> Emmagatzematge
Emmagatzematge --> Transformacio
Transformacio --> Emmagatzematge
Emmagatzematge --> Visualitzacio
3.2 Eines principals del Modern Data Stack
Ingesta: - Fivetran: SaaS, centenars de connectors, zero manteniment. Idoni per a empreses sense equip d'enginyeria de dades. Preu elevat. - Airbyte (open-source): 300+ connectors, self-hosted gratuït. Alternativa viable a Fivetran per a equips tècnics.
Emmagatzematge: - Snowflake: Data Cloud, arquitectura separació compute/storage, pay-per-use, excel·lent rendiment per a consultes analítiques. - BigQuery: Serverless, molt ben integrat amb l'ecosistema Google, SQL estàndard, excel·lent per a grans volums. - Redshift: Opció AWS, bo per a empreses already on AWS. - DuckDB: La sorpresa de 2023-2025, veure secció 4.
Transformació: - dbt (data build tool): Estàndard absolut per a transformació. SQL + Jinja2 templates, tests, documentació, lineage automàtics. Veure secció 5.
Visualització: - Tableau, Power BI, Looker: Les opcions enterprise. - Metabase, Apache Superset, Redash: Les opcions open-source.
4. DuckDB: OLAP al teu portàtil
4.1 Què és DuckDB i per qué és revolucionari
DuckDB és un sistema de gestió de bases de dades OLAP (columnar) embegut que s'executa directament en el procés Python, R, Java o CLI, sense servidor extern. Va ser creat el 2019 a la Universitat de Delft (Països Baixos) i el 2023-2025 s'ha convertit en la solució de referència per a analítica local.
Per qué és revolucionari:
- Zero infraestructura: No cal instal·lar cap servidor.
pip install duckdbi ja pots analitzar GB de dades. - Velocitat: Execució vectoritzada i paral·lela, usa tots els cors del CPU. Pot analitzar 1 GB de Parquet en 1-2 segons en un portàtil modern.
- Llegir directament fitxers: CSV, Parquet, JSON, Arrow, S3, HTTP — sense importar les dades.
- SQL complet: Suporta Window Functions, CTEs, PIVOT, UNNEST, i extensions pròpies.
- Integració Python/Pandas: Resultat directament com a DataFrame de Pandas o Arrow.
4.2 DuckDB en acció
import duckdb
import pandas as pd
# Connectar (en memòria, o a un fitxer persistent)
conn = duckdb.connect()
# Exemple 1: Analitzar múltiples fitxers Parquet directament (glob pattern)
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)
# Exemple 2: Llegir CSV directament (detecció automàtica de schema)
conn.execute("""
CREATE VIEW vendes AS
SELECT * FROM read_csv_auto('vendes_2024.csv', header=True)
""")
# Exemple 3: Consulta complexa amb Window Functions
query_avancada = """
SELECT
data_venda,
categoria,
import,
SUM(import) OVER (
PARTITION BY categoria
ORDER BY data_venda
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) as import_rolling_7dies,
LAG(import, 365) OVER (
PARTITION BY categoria
ORDER BY data_venda
) as import_any_anterior,
ROUND(
(import - LAG(import, 365) OVER (PARTITION BY categoria ORDER BY data_venda))
/ NULLIF(LAG(import, 365) OVER (PARTITION BY categoria ORDER BY data_venda), 0)
* 100,
1
) as creixement_yoy_pct
FROM read_parquet('vendes_*.parquet')
ORDER BY categoria, data_venda
"""
df_analisi = conn.execute(query_avancada).df()
# Exemple 4: Llegir directament de S3 (sense descarregar)
# conn.execute("INSTALL httpfs; LOAD httpfs;")
# conn.execute("SET s3_region='eu-west-1';")
# df_s3 = conn.execute("SELECT * FROM read_parquet('s3://bucket/dades/*.parquet')").df()
# Exemple 5: Exportar resultats a Parquet optimitzat
conn.execute("""
COPY (
SELECT categoria, SUM(import) as total
FROM read_parquet('vendes_*.parquet')
GROUP BY categoria
) TO 'resum_categories.parquet' (FORMAT PARQUET, COMPRESSION ZSTD)
""")
conn.close()
4.3 DuckDB vs Spark: quan usar cadascun
| 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 |
| Integració notebooks Python | Senzilla (pip install) | Complex (PySpark) |
| Temps de resposta interactiu | Sublim | Overhead de Spark context |
5. dbt: transformació com a codi
5.1 Conceptes fonamentals
dbt (data build tool) és l'eina estàndard per a transformació de dades en el Modern Data Stack. La idea central és simple: les transformacions es defineixen com a models SQL, i dbt gestiona la compilació, l'execució, les dependències i els tests automàticament.
Conceptes clau:
- Models: Fitxers
.sqlque defineixen una vista o taula materialitzada. dbt les gestiona com a dependències. - Seeds: Fitxers CSV petits (taules de referència, codis postals, etc.) que dbt carrega directament.
- Tests: Validació de la qualitat de dades:
not_null,unique,accepted_values, relacions referencials. - Snapshots: Captures SCD Tipus 2 (mantenir l'historial de canvis en registres que canvien amb el temps).
- Macros: Reutilització de lògica SQL amb Jinja2. Equivalent a funcions en programació.
- Sources: Definició de les taules d'origen (raw) amb metadades i tests de frescor.
5.2 Estructura del projecte dbt
dbt-sapalomera/
├── dbt_project.yml # Configuració general
├── profiles.yml # Connexions a BBDD
├── models/
│ ├── staging/ # Capa 1: neteja i tipus
│ │ ├── stg_vendes.sql
│ │ ├── stg_clients.sql
│ │ └── sources.yml # Definició de fonts raw
│ ├── intermediate/ # Capa 2: combinació de dades
│ │ └── int_vendes_clients.sql
│ └── marts/ # Capa 3: lògica de negoci
│ ├── finance/
│ │ └── fct_vendes.sql
│ └── marketing/
│ └── dim_clients.sql
├── tests/ # Tests SQL personalitzats
├── seeds/ # CSV de referència
│ └── codis_categoria.csv
├── snapshots/ # SCD Tipus 2
│ └── scd_preus.sql
└── macros/ # Reutilització SQL
└── calcular_marge.sql
5.3 Exemples de models dbt
-- models/staging/stg_vendes.sql
-- Capa staging: neteja i tipus, 1-to-1 amb la taula raw
{{ config(materialized='view') }}
WITH font AS (
SELECT * FROM {{ source('postgresql', 'vendes_raw') }}
),
netejada AS (
SELECT
id::INT AS venda_id,
CAST(data_venda AS DATE) AS data_venda,
TRIM(LOWER(categoria)) AS categoria,
producte_id::INT AS producte_id,
client_id::INT AS client_id,
quantitat::INT AS quantitat,
ROUND(import::DECIMAL, 2) AS import,
ROUND(cost::DECIMAL, 2) AS cost
FROM font
WHERE
id IS NOT NULL
AND data_venda IS NOT NULL
AND import > 0
)
SELECT * FROM netejada
-- models/marts/finance/fct_vendes.sql
-- Capa marts: taula de fets de vendes amb mètriques calculades
{{ config(
materialized='table',
indexes=[{'columns': ['data_venda'], 'unique': False}]
) }}
WITH vendes AS (
SELECT * FROM {{ ref('stg_vendes') }}
),
clients AS (
SELECT * FROM {{ ref('dim_clients') }}
),
vendes_enriquides AS (
SELECT
v.venda_id,
v.data_venda,
DATE_TRUNC('month', v.data_venda) AS mes_venda,
DATE_PART('year', v.data_venda) AS any_venda,
v.categoria,
v.producte_id,
v.client_id,
c.segment AS segment_client,
c.pais,
v.quantitat,
v.import,
v.cost,
ROUND(v.import - v.cost, 2) AS marge_brut,
ROUND((v.import - v.cost) / NULLIF(v.import, 0) * 100, 1) AS marge_pct
FROM vendes v
LEFT JOIN clients c ON v.client_id = c.client_id
)
SELECT * FROM vendes_enriquides
5.4 Tests automàtics dbt
# models/marts/finance/schema.yml
version: 2
models:
- name: fct_vendes
description: "Taula de fets de vendes amb mètriques calculades"
columns:
- name: venda_id
description: "Identificador únic de la venda"
tests:
- not_null
- unique
- name: data_venda
tests:
- not_null
- name: import
tests:
- not_null
- dbt_utils.expression_is_true:
expression: ">= 0"
- name: segment_client
tests:
- accepted_values:
values: ['Premium', 'Estàndard', 'Bàsic']
- name: producte_id
tests:
- not_null
- relationships:
to: ref('dim_productes')
field: producte_id
5.5 Comandes principals dbt
# Compilar i executar tots els models
dbt run
# Executar només la capa marts
dbt run --select marts.*
# Executar tests de qualitat
dbt test
# Generar documentació (obre al navegador)
dbt docs generate && dbt docs serve
# Executar model i tots els seus dependents (descendents)
dbt run --select stg_vendes+
# Executar model i tots els seus ancestres (parents)
dbt run --select +fct_vendes
# Fer un dry-run per veure el SQL compilat
dbt compile --select fct_vendes
6. Metabase Open Source
6.1 Introducció i desplegament
Metabase és l'eina de BI open-source més popular (50.000+ estreles a GitHub). Destaca per la seva usabilitat radical: un usuari no tècnic pot crear preguntes i dashboards en minuts sense escriure una sola línia de SQL.
# Desplegament ràpid amb Docker (base de dades H2 interna, per a proves)
docker run -p 3000:3000 metabase/metabase:v0.50.21
# Desplegament de producció amb PostgreSQL com a metabase backend
docker run -p 3000:3000 \
-e MB_DB_TYPE=postgres \
-e MB_DB_HOST=postgres \
-e MB_DB_PORT=5432 \
-e MB_DB_DBNAME=metabase \
-e MB_DB_USER=metabase_user \
-e MB_DB_PASS=iabd2025 \
metabase/metabase:v0.50.21
6.2 Tipus de preguntes a Metabase
Simple Questions (GUI): Selecciona una taula, aplica filtres, agrupa per dimensions i tria una visualització. Zero SQL. Ideal per a analistes de negoci no tècnics.
Custom Questions: Constructor de consultes visual avançat. Permet joins, múltiples filtrres, expressions calculades.
SQL Queries: Editor SQL complet amb autocompletació, suport per a variables dinàmiques ([[WHERE categoria = {{categoria}}]]) i caches configurables.
-- Exemple SQL a Metabase amb variable dinàmica
SELECT
DATE_TRUNC('month', data_venda) as mes,
categoria,
SUM(import) as total_vendes,
COUNT(DISTINCT client_id) as clients_unics,
AVG(import) as tiquet_mitja
FROM vendes
WHERE
data_venda >= {{data_inici}}
AND data_venda <= {{data_fi}}
[[AND categoria = {{categoria}}]]
GROUP BY 1, 2
ORDER BY 1, 3 DESC
6.3 Dashboards i subscripcions
Dashboards a Metabase:
- Crear un nou dashboard: + New → Dashboard
- Afegir preguntes existents o crear-ne de noves directament
- Filtres de dashboard: Vincular un filtre de data a totes les preguntes que tenen un camp de data
- Drill-through: Clicar sobre un punt del gràfic per a veure el detall
- Accions: (Metabase Pro) Executar accions SQL en clicar
Subscripcions automàtiques:
- Obrir el dashboard
- Clicar a la icona d'enviament (sobre)
- Dashboard subscriptions → Email subscription
- Freqüència: diària, setmanal, mensual
- Hora d'enviament i destinataris
6.4 Comparativa Metabase vs Superset vs Redash
| Criteri | Metabase | Apache Superset | Redash |
|---|---|---|---|
| Facilitat d'ús | Excel·lent (no tècnics) | Mitja (requereix SQL) | Bona (SQL-first) |
| GUI sense SQL | Si, molt complet | Parcial | Limitat |
| Dashboards | Molt bons | Excel·lents (Echarts) | Bons |
| Connectors | 50+ | 40+ | 30+ |
| Alertes natives | Si (pro) | Si | Si |
| Gestió multi-tenant | Si (pro) | Si | Limitat |
| Self-hosted | Si (gratuït) | Si (gratuït) | Si (gratuït) |
| Rendiment | Bo | Excel·lent (cachés) | Bo |
| Comunitat | Molt activa | Activa (Airbnb/Preset) | Moderada |
7. AI-augmented BI el 2025
7.1 Power BI Copilot
Microsoft Power BI Copilot (integrat a Microsoft Fabric) permet generar mesures DAX i visualitzacions en llenguatge natural:
- "Crea una mesura que calculi el creixement any a any per categoria"
- Copilot genera el DAX:
YoY Growth = DIVIDE([Sales Current Year] - [Sales Prior Year], [Sales Prior Year]) - "Afegeix un gràfic de tendències de vendes mensuals per als darrers 2 anys"
- Copilot crea el visual automàticament
Fabric Copilot va més lluny: pot generar pipelines de dades complets a partir d'una descripció en prosa.
7.2 Tableau Pulse
Tableau Pulse és la funcionalitat d'IA de Tableau que genera automàticament Insights personalitzats per a cada usuari:
- Detecta anomalies en les mètriques que l'usuari segueix
- Genera explicacions en llenguatge natural: "Les vendes de novembre han baixat un 8% respecte a l'octubre. El principal factor és la categoria 'Electrònica', que ha caigut un 15%."
- Envia resums automàtics per email o Slack
7.3 ThoughtSpot: search-based analytics
ThoughtSpot és una plataforma BI radicalment diferent: l'usuari cerca en comptes de navegar. Tipus Google Analytics però per a les dades de l'empresa:
- Escriu: "vendes per categoria el darrer trimestre ordenat per creixement"
- ThoughtSpot interpreta la consulta, la executa i presenta els resultats
- SpotIQ: Algoritme d'IA que analitza automàticament totes les mètriques i genera insights proactius
7.4 Looker Studio + Gemini
Looker Studio (ex Google Data Studio, ara integrat a Google Cloud) incorpora Gemini per a:
- Generar automàticament resums de dashboards
- Recomanar visualitzacions basades en el tipus de dades
- Detectar tendències i anomalies
8. Models d'Intel·ligència de Negoci
8.1 Star Schema (Esquema Estrella)
L'Esquema Estrella és el model dimensional clàssic per a Data Warehouses. Consta d'una taula de fets central (mesures quantitatives) envoltada de taules de dimensions (context descriptiu).
erDiagram
FCT_VENDES {
int venda_id PK
int data_id FK
int producte_id FK
int client_id FK
int botiga_id FK
decimal import
int quantitat
decimal marge
}
DIM_DATA {
int data_id PK
date data
int any
int mes
string nom_mes
string trimestre
boolean es_laborable
}
DIM_PRODUCTE {
int producte_id PK
string nom
string categoria
string subcategoria
decimal preu
}
DIM_CLIENT {
int client_id PK
string nom
string segment
string pais
string ciutat
}
FCT_VENDES }o--|| DIM_DATA : "data_id"
FCT_VENDES }o--|| DIM_PRODUCTE : "producte_id"
FCT_VENDES }o--|| DIM_CLIENT : "client_id"
Avantatges: Consultes simples i ràpides (pocs JOINs), fàcil d'entendre per als usuaris BI, excel·lent per a OLAP.
8.2 Data Vault 2.0
El Data Vault 2.0 és una metodologia de modelat pensada per a la auditabilitat i traçabilitat de les dades. Molt usada en sectors regulats (banca, assegurances, sanitat).
Components:
- Hubs: Claus de negoci úniques (Hub_Client, Hub_Producte). La identitat.
- Links: Relacions entre hubs (Link_Venda_Client_Producte). Les transaccions.
- Satellites: Atributs descriptius amb historial temporal (Sat_Client_Dades, Sat_Producte_Preu). El context.
Avantatges: Permet recarregar dades sense pèrdua, historial complet de tots els canvis, fàcil d'afegir noves fonts sense redissenyar el model.
Desavantatges: Més complex, requereix més JOINs, necessita eines especialitzades (dbt-vault, WhereScape).
8.3 One Big Table
El One Big Table (OBT) és l'enfoc oposat: tot en una sola taula desnormalitzada, amb totes les dimensions ja joinades. Herètic des del punt de vista tradicional, però molt pràctic amb DuckDB o Parquet:
-- Una sola taula amb tot desnormalitzat
SELECT
v.data_venda,
v.import,
p.nom AS producte_nom,
p.categoria,
c.nom AS client_nom,
c.segment,
c.pais
FROM vendes v
JOIN productes p ON v.producte_id = p.id
JOIN clients c ON v.client_id = c.id
Quan usar OBT: Analítica simple sobre un domini únic, equips petits, DuckDB local, prototips ràpids. No adequat per a múltiples dominis de negoci ni per a auditabilitat.
9. Implantació d'un sistema BI
9.1 Fases del projecte BI
Fase 1 — Descobriment (2-4 setmanes): Entrevistes amb stakeholders, inventari de fonts de dades, definició de KPIs crítics, avaluació de qualitat de dades actuals.
Fase 2 — Disseny (2-3 setmanes): Arquitectura del Modern Data Stack, model de dades (star schema o Data Vault), prototip de dashboards (maquetes estàtiques), definició de SLAs del pipeline.
Fase 3 — Construcció (4-12 setmanes): Implementació dels connectors d'ingestió, models dbt, dashboards inicials, tests de qualitat de dades.
Fase 4 — Validació (2-4 setmanes): Pilot amb usuaris clau, validació de les xifres amb comptabilitat/operacions, ajustaments de les visualitzacions.
Fase 5 — Formació i adopció (contínua): Formació d'usuaris, documentació dels dashboards, creació d'una comunitat d'usuaris BI, iteració basada en feedback.
9.2 Change Management en projectes BI
La causa principal del fracàs dels projectes BI no és tècnica: és la resistència al canvi. Les persones que portaven anys generant informes manualment a Excel poden veure el nou sistema com una amenaça.
Estratègies clau:
- Involucrar els usuaris des del principi: Que les persones que usaran el sistema participin en el disseny dels dashboards
- Quick wins visibles: Publicar el primer dashboard funcional en 2-3 setmanes per a generar entusiasme
- Champions interns: Identificar entusiastes a cada departament que actuïn com a formadors i evangelistes
- Mantenir l'Excel temporalment: No eliminar bruscament els informes Excel fins que el nou sistema sigui de confiança total
10. ROI del BI
10.1 Com mesurar el valor
El ROI (Return on Investment) del BI és difícil de calcular directament, però hi ha mètodes pràctics:
Temps estalviat: Quantifica les hores humanes estalviades en generació manual d'informes. Si un equip de 5 persones estalvia 4 hores setmanals cadascuna, en un any són 1.040 hores × cost/hora = valor tangible.
Velocitat de decisió: Mesurar el temps entre que es genera una dada i que es pren una decisió basada en ella. Reduir de dies a hores té un valor competitiu mesurable.
Reducció d'errors: Incidents deguts a decisions basades en dades incorrectes o desactualitzades. Un sol incident evitat pot pagar tota la infraestructura BI anual.
10.2 Casos d'èxit reals
Zara (Inditex): El sistema BI de Zara permet als seus compradors veure en temps real quins productes s'estan venent a quines botigues. Cada dimecres i divendres, els responsables de botiga fan comandes basades en dades de vendes de les darreres 48 hores. Resultat: el cicle disseny-producció-botiga de 2 setmanes, versus les 6 setmanes de la competència.
Mercadona: El sistema de previsió de demanda de Mercadona analitza dades de vendes, meteorologia, calendari festiu i tendències estacionals per a optimitzar les comandes als proveïdors i minimitzar les ruptures d'estoc. Redueix el malbaratament alimentari en un 20%.
SEAT (Volkswagen Group): La plataforma de BI de SEAT integra dades de producció, qualitat, logística i vendes. El dashboard en temps real de la línia de producció permet identificar colls d'ampolla en minuts i ajustar la planificació de la producció del dia. Reducció del 15% en aturades de línia no planificades.
11. Pipeline BI complet
flowchart LR
subgraph Fonts["Fonts de Dades"]
ERP[ERP SAP]
CRM[CRM Salesforce]
Web[Analytics Web]
IoT[Sensors IoT]
end
subgraph Ingesta["Ingesta"]
Airbyte[Airbyte]
Kafka[Kafka Streams]
end
subgraph Lake["Data Lake"]
S3[S3 Bucket Raw]
end
subgraph Warehouse["Data Warehouse"]
Snowflake[Snowflake]
end
subgraph Transform["Transformació"]
dbt[dbt Models]
end
subgraph Marts["Data Marts"]
Finance[Finance Mart]
Marketing[Marketing Mart]
Operations[Operations Mart]
end
subgraph BI["Visualitzacio BI"]
Metabase[Metabase]
PowerBI[Power BI]
end
Fonts --> Ingesta
Ingesta --> Lake
Lake --> Snowflake
Snowflake --> dbt
dbt --> Marts
Marts --> BI
Miniactivitat
Crea una pregunta SQL a Metabase que mostri el top 5 de categories per vendes del darrer mes, amb el percentatge sobre el total.
Passos:
1. Despliega Metabase amb docker run -p 3000:3000 metabase/metabase:v0.50.21
2. Configura la connexió a la base de dades PostgreSQL
3. Crea una nova pregunta SQL amb la consulta:
Exercici pràctic: Dashboard BI complet amb Metabase
Objectiu: Crear un dashboard de BI professional amb Metabase i PostgreSQL usant dades d'una empresa fictícia de venda online.
Pas 1: Desplega l'entorn (docker-compose del fitxer practiques/practica_bi.md):
Pas 2: Accedeix a Metabase (http://localhost:3000) i fes la configuració inicial:
- Email admin:
joan.garcia@sapalomera.cat - Nom de l'empresa: "TecnoShop - Institut Sa Palomera"
- Connecta la base de dades PostgreSQL
Pas 3: Crea les preguntes següents (mínim 6):
- Vendes mensuals (línia temporal, darrers 12 mesos)
- Top 10 productes (barra horitzontal)
- Vendes per segment de client (pastís)
- Mapa de vendes per país (mapa)
- KPI: Total vendes del mes (número gran)
- Comparativa any actual vs any anterior (barra agrupada)
Pas 4: Crea el dashboard "TecnoShop - [el teu nom]" amb les 6 visualitzacions.
Pas 5: Afegeix filtres de dashboard:
- Filtre de data → connectar a totes les visualitzacions
- Filtre de categoria → connectar a les visualitzacions rellevants
Lliurament: Captura de pantalla del dashboard complet amb el teu nom visible en el títol.