Definizione di Data Warehouse
Un Data Warehouse è un sistema centralizzato progettato per archiviare grandi volumi di dati strutturati provenienti da più fonti in un formato ottimizzato per l'analisi e il reporting, non per le operazioni quotidiane. Riunisce dati storici da tutta l'organizzazione in modo che gli analisti e i decision-maker possano interrogarlo, identificare trend e generare report senza compromettere le prestazioni dei sistemi che gestiscono il business.
Come si differenzia da un database tradizionale?
Un database operazionale (come quello dietro a un checkout e-commerce o a un sistema ERP) è costruito per velocità di lettura e scrittura di singoli record: elaborazione ordini, aggiornamento livelli di magazzino, registrazione transazioni. Un data warehouse è costruito per un compito diverso: eseguire query complesse su milioni di record per rispondere a domande come "quali erano le vendite totali per regione negli ultimi tre anni?"
La differenza strutturale riflette questo. I database operazionali sono tipicamente normalizzati: i dati sono divisi in molte tabelle correlate per ridurre la duplicazione. I data warehouse spesso usano una struttura più piatta e denormalizzata (talvolta chiamata schema star o snowflake) che rende le query analitiche più veloci e semplici da scrivere.
Quali dati vanno in un data warehouse?
I dati vengono tipicamente caricati da sistemi operazionali — piattaforme di vendita, ERP, strumenti CRM, software di logistica, utilizzando processi ETL o ELT. Una volta all'interno, vengono archiviati storicamente: i record non vengono sovrascritti quando qualcosa cambia; invece, nuove versioni vengono aggiunte accanto a quelle vecchie. Questo permette l'analisi di come le cose sono cambiate nel tempo.
Come si relaziona a un Data Lake?
Un Data Lake archivia dati grezzi, non elaborati nel loro formato originale: strutturati, semi-strutturati e non strutturati (log, immagini, documenti). Un data warehouse archivia dati che sono già stati puliti, strutturati e modellati per l'analisi. I due sono spesso usati insieme: i dati grezzi confluiscono nel lake, vengono elaborati, e l'output raffinato viene caricato nel warehouse per il reporting. Alcune piattaforme moderne sfumano questa distinzione nel termine data lakehouse.