In origine fu lo statunitense "Bill" Inmon a fornirne la prima definizione:
Successivamente, Ralph Kimball, fornì una definizione più sintetica dello stesso:
La differenza sostanziale tra le due definizioni è quella che Inmon la centra sulle caratteristiche che i dati devono avere all'interno un Data Warehouse, mentre Kimball si concentra sullo scopo per cui va costruito.
Senza entrare nello specifico delle precedenti definizioni e delle rispettive componenti ma semplicemente riformulandole, provo a fornire la mia definizione:
Al di là della definizione, la "sfida architetturale" (e spesso filosofica) tra Inmon e Kimball rimane uno degli aspetti interessanti da approfondire quando si parla di Architettura di un Data Warehouse.
In estrema sintesi, le definizioni sopra riportate, ci suggeriscono alcune delle principali componenti che deve possedere un Data Warehouse: una componente capace di acquisire i dati dai sistemi sorgente, trasformarli in modo da renderli tra loro consistenti e caricarli in una seconda componente capace di archiviare i dati strutturati prodotti. In poche parole, un Data Warehouse presenta almeno
un modulo di ETL (Extract, Transform, Load), costituito da un insieme di uno o più processi capaci di estrarre, trasformare e caricare i dati in un'area dati, e
l'area dati stessa dove archiviare e storicizzare le informazioni strutturate (ovvero, un Database opportunamente creato e configurato).
Ovviamente, queste due componenti da sole, possono risultare poco significative: senza la componente delle sorgenti dati e quella dell'analisi dati, avere dei processi di manipolazione dati ed un archivio storico di dati strutturati, avrebbe poco senso. Possiamo quindi individuare altre due componenti fondamentali nel contesto del Data Warehouse:
una componente rappresentante l'insieme delle fonti dati da acquisire attraverso il modulo ETL, e
una componente rappresentante l'insieme della strumentazione (ma anche di metodi e tecniche) necessaria ad estrarre le informazioni dal Data Warehouse.