Data Warehouse - Panoramica
Un data warehouse è costituito da dati provenienti da multiple heterogeneous data sourcese viene utilizzato per il reporting analitico e il processo decisionale. Il data warehouse è un luogo centrale in cui i dati vengono archiviati da diverse origini dati e applicazioni.
Il termine Data Warehouse è stato inventato per la prima volta da Bill Inmom nel 1990. Un Data Warehouse è sempre tenuto separato da un database operativo.
I dati in un sistema DW vengono caricati da sistemi di transazione operativi come:
- Sales
- Marketing
- HR
- SCM, ecc.
Può passare attraverso l'archivio dati operativo o altre trasformazioni prima di essere caricato nel sistema DW per l'elaborazione delle informazioni.
Un Data Warehouse viene utilizzato per la creazione di report e l'analisi delle informazioni e archivia sia i dati storici che quelli correnti. I dati nel sistema DW vengono utilizzati per il reporting analitico, che viene successivamente utilizzato da analisti aziendali, responsabili delle vendite o lavoratori della conoscenza per il processo decisionale.
Nell'immagine sopra, puoi vedere che i dati provengono da multiple heterogeneous datasorgenti a un data warehouse. Le origini dati comuni per un data warehouse includono:
- Database operativi
- Applicazioni SAP e non SAP
- File flat (file xls, csv, txt)
I dati nel data warehouse sono accessibili agli utenti BI (Business Intelligence) per report analitici, data mining e analisi. Viene utilizzato per il processo decisionale da parte degli utenti aziendali, del responsabile delle vendite e degli analisti per definire la strategia futura.
Caratteristiche di un data warehouse
È un archivio dati centrale in cui i dati vengono archiviati da una o più origini dati eterogenee. Un sistema DW memorizza sia i dati attuali che quelli storici. Normalmente un sistema DW memorizza 5-10 anni di dati storici. Un sistema DW è sempre tenuto separato da un sistema di transazioni operative.
I dati in un sistema DW vengono utilizzati per diversi tipi di rapporti analitici, dal confronto trimestrale a quello annuale.
Data Warehouse vs database operativo
Le differenze tra un data warehouse e un database operativo sono le seguenti:
Un Operational System è progettato per carichi di lavoro e transazioni noti come l'aggiornamento di un record utente, la ricerca di un record, ecc. Tuttavia, le transazioni di Data Warehouse sono più complesse e presentano una forma generale di dati.
Un Operational System contiene i dati correnti di un'organizzazione e il data warehouse normalmente contiene i dati storici.
Un Operational Databasesupporta l'elaborazione parallela di più transazioni. Il controllo della concorrenza e i meccanismi di ripristino sono necessari per mantenere la coerenza del database.
Un Operational Database query consente di leggere e modificare operazioni (inserimento, cancellazione e aggiornamento) mentre una query OLAP richiede solo l'accesso in sola lettura dei dati memorizzati (istruzione Select).
Architettura del Data Warehouse
Il data warehouse implica la pulizia dei dati, l'integrazione dei dati e il consolidamento dei dati. Un data warehouse ha un'architettura a 3 livelli:
Livello origine dati
Definisce come i dati arrivano a un Data Warehouse. Coinvolge varie fonti di dati e sistemi di transazione operativi, file flat, applicazioni, ecc.
Livello di integrazione
Si compone di Operational Data Store e area di Staging. L'area di staging viene utilizzata per eseguire la pulizia dei dati, la trasformazione dei dati e il caricamento dei dati da diverse origini in un data warehouse. Poiché sono disponibili più origini dati per l'estrazione in fusi orari diversi, l'area di gestione temporanea viene utilizzata per archiviare i dati e successivamente per applicare le trasformazioni ai dati.
Livello di presentazione
Viene utilizzato per eseguire report BI da parte degli utenti finali. I dati in un sistema DW sono accessibili dagli utenti BI e utilizzati per il reporting e l'analisi.
La figura seguente mostra l'architettura comune di un sistema di data warehouse.
Caratteristiche di un Data Warehouse
Le seguenti sono le caratteristiche chiave di un Data Warehouse:
Subject Oriented - In un sistema DW, i dati sono classificati e archiviati da un soggetto aziendale piuttosto che da applicazioni come piani azionari, azioni, prestiti, ecc.
Integrated - I dati provenienti da più origini dati sono integrati in un Data Warehouse.
Non Volatile- I dati nel data warehouse non sono volatili. Significa che quando i dati vengono caricati nel sistema DW, non vengono alterati.
Time Variant- Un sistema DW contiene dati storici rispetto al sistema transazionale che contiene solo dati correnti. In un data warehouse è possibile visualizzare i dati per 3 mesi, 6 mesi, 1 anno, 5 anni, ecc.
OLTP contro OLAP
In primo luogo, OLTP sta per Online Transaction Processing, mentre OLAP sta per Online Analytical Processing
In un sistema OLTP, ci sono un gran numero di brevi transazioni online come INSERT, UPDATE e DELETE.
Considerando che, in un sistema OLTP, una misura efficace è il tempo di elaborazione di transazioni brevi ed è molto inferiore. Controlla l'integrità dei dati in ambienti ad accesso multiplo. Per un sistema OLTP, il numero di transazioni al secondo misura l'efficacia. Un sistema OLTP Data Warehouse contiene dati aggiornati e dettagliati e viene mantenuto negli schemi nel modello di entità (3NF).
For Example -
Un sistema di transazioni giornaliere in un negozio al dettaglio, in cui i record dei clienti vengono inseriti, aggiornati e cancellati su base giornaliera. Fornisce un'elaborazione più rapida delle query. I database OLTP contengono dati dettagliati e aggiornati. Lo schema utilizzato per archiviare il database OLTP è il modello Entity.
In un sistema OLAP, il numero di transazioni è inferiore rispetto a un sistema transazionale. Le query eseguite sono di natura complessa e coinvolgono aggregazioni di dati.
Cos'è un'aggregazione?
Salviamo tabelle con dati aggregati come annuale (1 riga), trimestrale (4 righe), mensile (12 righe) o giù di lì, se qualcuno deve fare un confronto anno per anno, verrà elaborata solo una riga. Tuttavia, in una tabella non aggregata confronterà tutte le righe. Questo si chiama Aggregazione.
Esistono varie funzioni di aggregazione che possono essere utilizzate in un sistema OLAP come Sum, Avg, Max, Min, ecc.
For Example -
SELECT Avg(salary)
FROM employee
WHERE title = 'Programmer';
Differenze chiave
Queste sono le principali differenze tra un sistema OLAP e un sistema OLTP.
Indexes - Un sistema OLTP ha solo pochi indici mentre in un sistema OLAP ci sono molti indici per l'ottimizzazione delle prestazioni.
Joins- In un sistema OLTP, un gran numero di join e dati vengono normalizzati. Tuttavia, in un sistema OLAP ci sono meno join e vengono denormalizzati.
Aggregation - In un sistema OLTP, i dati non vengono aggregati mentre in un database OLAP vengono utilizzate più aggregazioni.
Normalization - Un sistema OLTP contiene dati normalizzati, tuttavia i dati non sono normalizzati in un sistema OLAP.
Data Mart Vs Data Warehouse
Il data mart si concentra su una singola area funzionale e rappresenta la forma più semplice di un Data Warehouse. Considera un data warehouse che contiene dati per vendite, marketing, risorse umane e finanza. Un data mart si concentra su una singola area funzionale come Vendite o Marketing.
Nell'immagine sopra, puoi vedere la differenza tra un data warehouse e un data mart.
Tabella dei fatti e delle dimensioni
Una tabella dei fatti rappresenta le misure su cui viene eseguita l'analisi. Contiene anche chiavi esterne per le chiavi dimensione.
For example - Ogni vendita è un dato di fatto.
ID cliente | Prod Id | Time Id | Qtà venduta |
---|---|---|---|
1110 | 25 | 2 | 125 |
1210 | 28 | 4 | 252 |
La tabella Dimension rappresenta le caratteristiche di una dimensione. Una dimensione Cliente può avere Customer_Name, Phone_No, Sex, ecc.
ID cliente | Cust_Name | Telefono | Sesso |
---|---|---|---|
1110 | sortita | 1113334444 | F |
1210 | Adamo | 2225556666 | M |