Architettura del data warehouse
Sfide e compromessi nella scelta dell'architettura data warehouse

Che cos'è l'architettura data warehouse?
Un data warehouse è un sistema di gestione dei dati pensato per le aziende che archivia dati attuali e storici provenienti da più fonti in modo semplice e intuitivo per l'analisi e la generazione di report.
Un data warehouse è diverso da un database. Un data warehouse è un repository strutturato che fornisce dati per la business intelligence e l'analisi, mentre un database è una raccolta di dati strutturati che, oltre a testi e numeri, include anche immagini, video e molto altro.
L'architettura data warehouse è il framework che stabilisce come il data warehouse è organizzato, strutturato e implementato, compresi i suoi componenti e processi.
Secondo Bill Inmon, autore di Building the Data Warehouse, il libro rivoluzionario che ha lanciato l'industria del settore, un data warehouse è una "raccolta di dati a supporto del processo decisionale del management, orientata ai soggetti, integrata, variabile nel tempo e non volatile."
Analizziamo questi concetti:
Orientata ai soggetti — I dati sono organizzati e strutturati attorno a specifici ambiti o temi aziendali, come vendite, marketing o distribuzione
Integrata — Il data warehouse integra dati provenienti da più fonti in maniera unificata
Variabile nel tempo — I dati rappresentano un'istantanea storica che registra le modifiche nel tempo, consentendo l'analisi delle tendenze e la generazione di report sull'evoluzione dei dati
Non volatile — I dati nel warehouse sono in sola lettura; non vengono modificati o sovrascritti, mantenendo così intatti i dati storici e garantendone l'affidabilità per l'analisi
Ecco altre informazioni utili
Quando utilizzare l'architettura data warehouse?
Un'efficace architettura data warehouse consente alle organizzazioni di analizzare in modo rapido e semplice dati aziendali caricati da sistemi operazionali quali sistemi POS, sistemi di gestione dell'inventario o database di marketing o vendita. In un data warehouse ben progettato, i dati sono coerenti, archiviati in modo efficiente e facilmente accessibili, così da supportare e migliorare i processi decisionali.
I data warehouse svolgono un ruolo fondamentale nella business intelligence (BI), nell’analisi, nella reportistica, nelle applicazioni basate sui dati, nella preparazione dei dati per il machine learning (ML) e nelle attività di analisi. I data warehouse moderni si sono evoluti fino a supportare anche dati non strutturati come immagini e testi, e molti oggi includono funzionalità di AI integrate per analisi avanzate e automazione.
I casi d'uso includono:
Segmentazione dei clienti
Reportistica finanziaria
Analisi delle tendenze storiche
Ottimizzazione della supply chain
Prestazioni di vendita e marketing
I data warehouse possono gestire grandi volumi di dati e sono progettati per archiviare dati storici, consentendo alle aziende di analizzare le tendenze nel tempo. Inoltre, facilitano l'analisi di informazioni che sono difficili da ricavare direttamente dai database transazionali. Ad esempio, un'organizzazione potrebbe utilizzare un data warehouse per analizzare i ricavi complessivi generati da ciascun venditore su base mensile per ogni categoria di prodotto, informazioni che potrebbero non essere registrate in un database transazionale.
Tipi di architettura data warehouse
L'architettura data warehouse varia in complessità a seconda della struttura e dello scopo.
Single-tier
In questa forma semplice, il data warehouse funge da repository centralizzato per tutti i dati e da piattaforma per l'analisi e l'interrogazione. L'architettura single-tier è adatta a organizzazioni di piccole dimensioni con un numero limitato di fonti di dati, esigenze di reportistica semplici e budget ridotti.
Two-tier
In questo modello, i sistemi sorgente sono separati dal data warehouse, creando due livelli. Il data warehouse è la piattaforma per l'archiviazione e l'interrogazione. L'architettura two-tier offre maggiore scalabilità e migliori prestazioni e consente trasformazioni più complesse rispetto all'architettura single-tier.
Three-tier
Nell'architettura three-tier, il livello inferiore del data warehouse comprende le fonti di dati e l'archiviazione, i metodi di accesso e i processi di acquisizione o estrazione dei dati. Il livello intermedio è un server di elaborazione analitica online (OLAP). Il livello superiore include i client front-end per interrogazioni, BI, dashboard, reportistica e analisi. Questo è il tipo di architettura più complesso per un data warehouse e garantisce alte prestazioni e scalabilità, si integra con gli strumenti di analisi e supporta interrogazioni e analisi complesse.
Livelli di un data warehouse
L'architettura data warehouse è costruita su una struttura a livelli che facilita il flusso, la trasformazione e il consumo efficienti dei dati per l'analisi e il processo decisionale. Ogni livello svolge un ruolo essenziale nel garantire che i dati soddisfino le esigenze aziendali.
Livello sorgente
Il livello sorgente è la base dell'architettura data warehouse e rappresenta il punto di ingresso dei dati. Contiene dati grezzi provenienti da varie fonti, come sistemi point-of-sale, marketing automation, CRM o ERP, fonti di terze parti e altro.
Livello di staging
Il livello di staging memorizza temporaneamente i dati mentre vengono consolidati, ripuliti e trasformati così da poterli caricare in modo efficiente nel warehouse. Il livello di staging funge da buffer tra il livello sorgente e il livello di warehouse, garantendo che eventuali errori nei dati sorgente vengano risolti prima di ulteriori elaborazioni.
Livello di warehouse
Il livello di warehouse è quello in cui tutti i dati elaborati, puliti e strutturati vengono archiviati per un utilizzo a lungo termine. In questo livello i dati sono spesso organizzati in schemi ottimizzati per l'interrogazione e l'analisi. Inoltre, qui vengono applicate le policy di governance, come la provenienza dei dati e i controlli di accesso, per mantenere l'integrità e la sicurezza dei dati.
Livello di consumo
Il livello di consumo garantisce che i dati siano accessibili e rilevanti per gli utenti aziendali. Include strumenti di BI, dashboard, piattaforme di visualizzazione dei dati e API che forniscono interfacce user-friendly. In questo livello i dati sono spesso aggregati o pre-elaborati in tabelle di riepilogo o cubi per migliorare le prestazioni delle query.
Componenti di un data warehouse
L'architettura data warehouse è composta da componenti chiave che lavorano insieme per garantire una gestione e un'analisi dei dati senza interruzioni. I componenti principali includono l'architettura data lakehouse, gli strumenti di integrazione dei dati, i metadati e gli strumenti di accesso ai dati, ma le organizzazioni possono utilizzare componenti aggiuntivi in base alle loro esigenze.
Architettura data lakehouse
Il data lakehouse funge da piattaforma unificata per l'archiviazione e l'elaborazione di tutti i tipi di dati, combinando la flessibilità dei data lake con le funzionalità di gestione dei data warehouse tradizionali. Il lakehouse gestisce sia dati strutturati che non strutturati, supportando l'intera gamma di utilizzi (dalle analisi SQL ai carichi di lavoro di machine learning) e mantenendo al tempo stesso qualità dei dati e prestazioni.
Strumenti di integrazione dei dati
Gli strumenti di integrazione dei dati supportano due principali approcci alla gestione dei dati: integrazione diretta e virtualizzazione dei dati. Gli strumenti di integrazione diretta estraggono i dati nel database centrale e li trasformano in un formato unificato per l'analisi utilizzando metodi come ETL (extract, transform, load), ELT (extract, load, transform) e l'elaborazione in tempo reale o in modalità bulk-load. La virtualizzazione dei dati consente di interrogare i dati là dove risiedono tramite federazione, creando una vista unificata fra fonti distribuite senza spostare fisicamente i dati. Questi approcci possono essere utilizzati insieme, supportati da automazione, orchestrazione, qualità dei dati e arricchimento. Sempre più spesso, i clienti effettuano la reportistica direttamente all'interno del proprio data warehouse per evitare di movimentare i dati.
Metadati
I metadati sono dati sui dati, essenziali per la governance e la gestione. Forniscono contesto e dettagli sui dati, come origini, trasformazioni, struttura, relazioni e modalità di utilizzo. I metadati tecnici descrivono schemi, tipi di dati e derivazione, mentre i metadati aziendali descrivono i dati in modo comprensibile agli utenti non tecnici.
Strumenti di accesso ai dati
Gli strumenti di accesso ai dati consentono agli utenti di interrogare, analizzare e visualizzare i dati memorizzati nel data warehouse, colmando il divario tra dati grezzi e figure decisionali. Includono software di reportistica, piattaforme di BI, strumenti OLAP, strumenti di data mining, strumenti di sviluppo di applicazioni e API che rendono i dati accessibili sia agli utenti tecnici che a quelli non tecnici.
Funzionalità integrate di AI e ML
I data warehouse moderni includono spesso funzionalità integrate di AI e ML che consentono l'elaborazione automatica dei dati, il rilevamento di pattern e anomalie e l'analisi predittiva direttamente nell'ambiente del data warehouse, eliminando la necessità di sistemi di AI/ML separati.
Dashboard interattive
Le dashboard di analisi visiva forniscono accesso in tempo reale agli insight sui dati tramite grafici, tabelle e report interattivi. Queste interfacce self-service consentono sia agli utenti tecnici che a quelli non tecnici di esplorare i dati, creare visualizzazioni e generare informazioni senza dover scrivere query complesse.
Framework di governance
Un framework di governance completo gestisce controlli di accesso ai dati, politiche di sicurezza, requisiti di conformità e standard di qualità dei dati. Include strumenti per il tracciamento della derivazione dei dati, la registrazione degli audit log, la protezione della privacy e la gestione della conformità normativa in tutto l'ambiente del data warehouse.
Concetti di data warehousing: Inmon vs. Kimball
Bill Inmon e Ralph Kimball, pionieri del data warehousing, hanno approcci diversi alla progettazione del data warehouse. L'approccio di Inmon prevede l'uso di un data warehouse come repository centrale per i dati aziendali ed è noto come approccio top-down.
Il modello di Kimball, noto come approccio bottom-up, si basa invece sulla creazione di data mart (database specializzati adattati a particolari unità o reparti aziendali) e sulla loro integrazione in un data warehouse più ampio.
Approccio Inmon
Il modello top-down di Inmon prevede un data warehouse centralizzato a livello aziendale che funge da unica fonte di verità per l'intera organizzazione. In questo approccio, i dati vengono estratti dai sistemi di origine, ripuliti e archiviati in formato normalizzato all'interno del data warehouse centrale. La normalizzazione garantisce la coerenza dei dati, minimizza la ridondanza e facilita l'integrazione tra set di dati eterogenei. I data mart, focalizzati su specifiche aree di business, vengono creati come sottoinsiemi del data warehouse principale. Essendo derivati dal repository centrale, mantengono la coerenza con l'architettura dati complessiva dell'azienda.
Approccio Kimball
Il metodo bottom-up di Kimball si concentra sulla costruzione di data mart che rispondono direttamente a specifiche esigenze di business e di reportistica. Questi vengono poi combinati per creare il data warehouse, che facilita l'analisi e la produzione di report. L'approccio di Kimball utilizza un modello dimensionale con tabelle dei "fatti" contenenti misure numeriche e tabelle delle "dimensioni" con attributi descrittivi, spesso organizzate in uno schema a stella, che semplifica l'interrogazione e l'analisi. I dati vengono denormalizzati, il che permette di velocizzare la fase iniziale della progettazione del data warehouse. Poiché il data warehouse si concentra su singole aree di business piuttosto che sull'intera azienda, occupa meno spazio nel database, rendendo più semplice la gestione del sistema.
Scegliere l'approccio giusto
Le organizzazioni devono scegliere l'architettura data warehouse più adatta alle loro esigenze. Questo può includere, quando necessario, l'utilizzo di una combinazione degli approcci Inmon e Kimball, noto come modello ibrido.
In generale, l'approccio Inmon offre una soluzione completa e scalabile per la gestione di grandi set di dati a livello aziendale. Garantisce analisi coerenti e affidabili che consentono approfondimenti sofisticati sui dati e pone l'accento sulla qualità dei dati e sulla governance. Tuttavia, richiede strumenti avanzati e specializzati per l'interrogazione e l'analisi, oltre a un notevole investimento in termini di tempo, risorse e competenze tecniche per costruire un data warehouse.
Al contrario, l'approccio Kimball rende possibile consegnare i dati in modo flessibile e veloce. Permette agli utenti finali di interrogare e analizzare i dati direttamente dai data mart utilizzando strumenti familiari e modelli self-service, semplificando l'esplorazione e l'analisi anche per gli utenti che non dispongono di competenze specialistiche o strumenti avanzati. Quando le organizzazioni hanno bisogno di reportistica e analisi veloci e di facile utilizzo, o quando il budget e le risorse sono più limitati, il metodo Kimball può rappresentare la scelta migliore.
Strutturare il data warehouse
Le organizzazioni utilizzano degli schemi per descrivere i diversi assetti logici dei dati, rappresentati da oggetti come indici e tabelle, all'interno di un data warehouse. Questi schemi fungono da progetto su come i dati saranno archiviati e gestiti, e includono le definizioni dei termini, le relazioni e il loro ordinamento. Le aziende possono utilizzare tre tipi di schemi per strutturare un data warehouse.
Schema a stella
Uno schema a stella è un modello di dati multidimensionale utilizzato per organizzare i dati in un database in modo che siano facili da comprendere e analizzare. Lo schema a stella è lo schema di data warehouse più semplice, ottimizzato per l'interrogazione di set di dati di grandi dimensioni. Presenta una singola tabella dei fatti al centro, collegata a più tabelle delle dimensioni. Lo schema a stella consente agli utenti di "sezionare" i dati come meglio preferiscono, tipicamente unendo due o più tabelle di fatti e di dimensioni.
Lo schema a stella viene utilizzato per denormalizzare i dati aziendali in dimensioni (come tempo e prodotto) e fatti (come transazioni in importi e quantità). I modelli di dati denormalizzati hanno una maggiore ridondanza (duplicazione) dei dati, il che rende le prestazioni delle query più veloci a costo della duplicazione dei dati.
Schema a fiocco di neve
Uno schema a fiocco di neve è un'estensione di uno schema a stella in cui le tabelle delle dimensioni vengono suddivise in sottodimensioni. Il modello di dati diventa così più complesso, ma facilita il lavoro degli analisti, soprattutto per determinate tipologie di dati.
La differenza principale tra gli schemi a stella e gli schemi a fiocco di neve è che questi ultimi normalizzano i dati. Gli schemi a fiocco di neve offrono maggiore efficienza di storage, grazie alla loro rigorosa conformità a standard di normalizzazione elevati, ma le prestazioni delle query non sono allo stesso livello dei modelli di dati denormalizzati. Gli schemi a fiocco di neve vengono solitamente utilizzati per la business intelligence e la reportistica in data warehouse OLAP, data mart e database relazionali.
Schema a galassia
Uno schema a galassia utilizza più tabelle dei fatti collegate tra loro tramite tabelle delle dimensioni normalizzate e condivise. Questa caratteristica lo differenzia dagli schemi a stella e a fiocco di neve, che invece impiegano una sola tabella dei fatti. Uno schema a galassia è interconnesso e normalizzato, ed elimina quasi completamente la ridondanza e l'incoerenza dei dati. Gli schemi a galassia sono noti per l'elevata accuratezza e qualità dei dati e costituiscono una base solida per analisi e reportistica efficaci, risultando una scelta valida per sistemi di database complessi.
Sfide per l'architettura data warehouse
Progettare e mantenere l'architettura data warehouse comporta diverse sfide che possono influire sull'efficienza e l'efficacia.
Dati non strutturati
I dati non strutturati, come immagini, video, file di testo e log, sono importanti per il miglioramento, l'innovazione e la creatività perché offrono l'opportunità di scoprire nuovi schemi e ricavare informazioni da fonti eterogenee. Tuttavia, le architetture data warehouse tradizionali sono progettate per dati strutturati, quindi le organizzazioni potrebbero aver bisogno di strumenti avanzati per estrarre valore da dati non strutturati. Inoltre, il volume stesso di questi dati può rappresentare una sfida in termini di archiviazione e di gestione efficiente.
Scalabilità
Man mano che le organizzazioni crescono, l'espansione esponenziale del volume di dati mette alla prova la scalabilità delle architetture data warehouse. I sistemi on-premise tradizionali possono avere difficoltà a gestire set di dati su larga scala, carichi elevati di query o esigenze di elaborazione in tempo reale. I data warehouse basati su cloud offrono una scalabilità elastica, ma richiedono una pianificazione accurata per ottimizzare risorse e costi.
Costo
La costruzione e la manutenzione di un data warehouse richiedono un investimento significativo in infrastrutture e personale qualificato. I sistemi on-premise sono costosi da implementare, mentre le soluzioni basate su cloud possono essere onerose da gestire. I costi aumentano con la crescita dei volumi di dati, l'incremento delle richieste da parte degli utenti e l'integrazione di funzionalità avanzate di analisi o AI.
Prestazioni ed efficienza
Le prestazioni e l'efficienza di un data warehouse sono cruciali per le attività operative di un'azienda, soprattutto quando si gestiscono set di dati di grandi dimensioni e query complesse. Tempi di risposta alle query lenti e pipeline di elaborazione dei dati inefficienti possono ridurre la produttività degli utenti e ostacolare il processo decisionale. Raggiungere prestazioni ottimali richiede spesso un aumento della complessità nella progettazione e gestione del sistema.
Utilizzo non tecnico
Gli utenti non tecnici devono poter accedere ai dati e analizzarli, ma i data warehouse tradizionali richiedono spesso competenze specifiche in SQL o in altri strumenti tecnici. Questo crea un sistema lento e inefficiente, in cui gli utenti devono inoltrare richieste ai team di data management e attendere la consegna dei dati. Ne derivano colli di bottiglia e ritardi, che si amplificano nelle organizzazioni di grandi dimensioni.
Sistemi separati per AI e ML
I data warehouse tradizionali sono progettati per i carichi di lavoro tipici di un data warehouse, come reportistica storica, BI e interrogazioni. Tuttavia, non sono mai stati pensati o progettati per supportare i carichi di lavoro del machine learning. L'uso di pipeline aggiuntive per trasferire i dati tra il warehouse e ambienti specializzati di AI/ML aumenta la complessità e la latenza. L'integrazione diretta delle funzionalità di AI e ML nel data warehouse, o l'utilizzo di piattaforme ibride, può risolvere questi problemi.
Sistemi separati per la BI
Le architetture tradizionali richiedono spesso sistemi specializzati separati per la business intelligence e l'analisi, con il risultato di creare silos di dati e richiedere complesse movimentazioni di dati tra sistemi diversi. Questa separazione può portare a incoerenze, a un aumento dei costi di manutenzione e a ritardi nell'ottenimento di informazioni. Le piattaforme integrate moderne, che combinano in un unico ambiente archiviazione dei dati e funzionalità di BI, aiutano le organizzazioni a semplificare i flussi di lavoro analitici e a garantire la coerenza dei dati.
Sistemi separati per la governance dei dati
Avere sistemi separati per la governance dei dati crea difficoltà nel mantenere politiche, controlli di accesso e standard di conformità coerenti in tutto l'ecosistema dei dati. Le organizzazioni si trovano spesso a gestire il problema di strumenti di governance frammentati che non comunicano efficacemente tra loro, con conseguenti vulnerabilità di sicurezza e rischi di non conformità. Un framework di governance unificato, integrato nella piattaforma dati, garantisce l'applicazione coerente delle politiche e semplifica la gestione della conformità.