Introduzione alla
realizzazione di
Data Warehouse con
Microsoft SQL Server
MCSD MCAD MCSE+I MCSA MCDBA MCT
www.devleap.it
Chi siamo
 www.DevLeap.it
 Un gruppo di 5 persone con tanta voglia di
 Studiare a fondo le tecnologie
 Capire il “behind the scenes”
 Implementare soluzioni reali
 Confrontarsi con le problematiche reali
 Sperimentare nuove idee
 Facciamo Corsi, Conferenze, Training
www.devleap.it
Agenda
 Modellazione di un DataWarehouse
 Data Warehouse e Data Mart
 Componenti di un modello di Data Warehouse
 Differenze tra DB relazionali normalizzati e Data
Warehouse
 Star Schema e Snowflake Schema
www.devleap.it
Modellazione
Data Warehouse
www.devleap.it
Data Warehouse
 Magazzino di dati a livello di impresa
 Insieme di strumenti per convertire un
vasto insieme di dati in informazioni
utilizzabili dall’utente
 Obiettivi:
 Possibilità di accedere a tutti i dati dell’impresa,
centralizzati in un solo database
 Coerenza e consolidamento dei dati
 Velocità nell’accesso alle informazioni
 Supporto per l’analisi dei dati
www.devleap.it
Data Mart
 Magazzino di dati a livello dipartimentale
 E’ un segmento di un Data Warehouse
 E’ fisicamente realizzato come un Data
Warehouse, ma con una finalità più
ristretta:
 I dati coprono solo alcune aree aziendali
(ad es. vendite)
 Minori costi di realizzazione
 Risultati più vicini nel tempo
www.devleap.it
Data Warehouse vs. Data Mart
 Il Data Warehouse è un progetto più vasto,
complesso e costoso, ma garantisce
maggiore coerenza dei dati
 Da un Data Warehouse si possono ricavare
velocemente dei Data Mart (top-down)
 Si può costruire un Data Warehouse unendo
più Data Mart realizzati nel tempo (bottomup)
www.devleap.it
Finalità di un Data Warehouse
 Strumento di supporto decisionale
 Base informativa per costruire sistemi di
analisi e previsione:
 Reports
 On-Line Analytical Processing (OLAP)
 Data Mining
www.devleap.it
Report
 Report che analizzano i dati con una certa
profondità storica
 Possono richiedere tempi di elaborazione
elevati se i dati vanno aggregati
 Spesso ottenibili con soluzioni OLAP
(minore tempo di elaborazione)
www.devleap.it
Cosa è OLAP
 OLAP: On Line Analytical Processing
 È una tecnologia di Business Intelligence
 Sinonimo di termini usati in precedenza:
 DSS: Decision Support System
 EIS: Executive Information System
 OLAP = vista multidimensionale sui dati
www.devleap.it
On-Line Analytical Processing (OLAP)
 I dati, strutturati per dimensioni, vengono
esaminati a diversi livelli di dettaglio
(tramite aggregazione e drill-down)
 Viene anche chiamata analisi multidimensionale dei dati
 Può produrre report stampati, ma è prima
di tutto una funzionalità interattiva (come
le Pivot Table)
 Consente di verificare velocemente ipotesi
formulate dall’utente
www.devleap.it
Data Mining
 Tecniche per aiutare gli utenti ad estrarre
informazioni utili da grandi database
 L’utente finale non deve essere un esperto
di statistica
 Utilizzato per generare ipotesi
www.devleap.it
Caratteristiche di un Data Warehouse
 E’ un archivio di dati con le seguenti
caratteristiche:
 subject oriented
 integrated
 nonvolatile
 time variant
www.devleap.it
Definizione di un Data Warehouse
 E’ il processo più lungo e costoso:
 Identificare gli obiettivi di business
 Raccogliere ed analizzare informazioni
 Definire il modello di dati
 Identificare le fonti di dati
 Definire le trasformazioni necessarie a
consolidare i dati
 Stabilire profondità temporale, creare una base
storica
www.devleap.it
Identificare gli obiettivi
 Il Data Warehouse è uno strumento di
supporto alle decisioni: l’utente è in genere
il management aziendale
 Bisogna individuare i fatti di rilievo per i
decision-maker, non per l’operatività
quotidiana
 Acquisire la visione aziendale del
management
www.devleap.it
Raccogliere informazioni
 Spesso le informazioni necessarie sono già
raccolte e presentate in qualche report
 Chiedere ai decision-maker di compilare
tabelle excel con le informazioni che
vorrebbero avere
www.devleap.it
Definire il modello di dati
 Identificare gli eventi da misurare:
 Vendite
 Chiamate al customer-service
 Interventi di assistenza
 Produzione
 Mantenere flessibilità per il futuro:
 Nuovi prodotti
 Nuovi centri assistenza
 Nuove linee di produzione
www.devleap.it
Identificare le fonti dati
 In una grande azienda sono spesso fonti
eterogenee
 Molti dati possono risiedere su archivi non
strutturati:
 Fogli Excel
 E-mail
 Individuare le modalità di accesso periodico
alle fonti dati per alimentare il Data
Warehouse
www.devleap.it
Consolidare i dati
 Decidere le trasformazioni da applicare ai
dati per eliminare le differenze di:
 valuta
 notazione metrica
 fiscali
 memorizzazione fisica (tipo dei dati)
 Definire un processo automatico e ripetibile
di trasformazione dei dati
www.devleap.it
Base storica
 Prima che il Data Warehouse diventi
operativo, è probabile che esistano delle
operazioni una-tantum per creare una base
storica iniziale
 Le trasformazioni iniziali possono differire
da quelle periodiche di un sistema in
produzione:
 mole di dati da trasferire
 aggiornamento completo vs. incrementale
www.devleap.it
Il Data Warehouse al lavoro
Source OLTP
Systems
Data Marts
Clients
Data
Warehouse
1
Retrieve Data
2 Transform Data
3
Populate
Data Warehouse
4
www.devleap.it
Populate
Data Marts
5
Query
Data
Da OLTP a OLAP
 Passando da un sistema transazionale ad
un sistema di analisi, cambiano le
caratteristiche di:
 normalizzazione
 prestazioni su query e modifica dei dati
 profondità storica
 complessità delle query
 dettaglio degli eventi rilevati
www.devleap.it
Database OLTP
 Caratteristiche di un database per un
ambiente operativo:
 Normalizzazione completa
 Alto numero di tabelle e di associazioni
 Dati memorizzati al minimo livello di granularità
 Interrogazioni richiedono join di molte tabelle
 La struttura dei dati non varia di frequente
 Ottimizzato per inserimento dei dati
www.devleap.it
Database OLAP
 Caratteristiche di un database per un
ambiente analitico:
 Entità denormalizzate
 Disegno del database più semplice (meno
tabelle e meno associazioni) per una
comprensione più facile da parte dell’utente
 I dati memorizzati possono essere aggregati
(riassuntivi)
 Le interrogazioni richiedono poche join
 Ottimizzato per la consultazione, per l’utente è
read-only
www.devleap.it
Ottimizzare i database OLAP
 Una base dati per OLAP è prima di tutto
denormalizzata
 Esistono dei modelli generici pensati per
queste esigenze:
 Star Schema
 Snowflake Schema
 Un database OLAP può essere realizzato
sfruttando un generico database
relazionale, ma esistono soluzioni
specifiche diverse (OLAP Server)
www.devleap.it
Componenti di un modello DW
Tabella delle
Dimensioni
Comuni
Dimensioni
Tabella dei Fatti
Comune
Prodotto
Prodotti
Tempo Unità
Misure
Fatturato
Fatti
Tempo
www.devleap.it
Componenti di un modello DW
 Tabella dei fatti
Contiene misure numeriche che descrivono un
evento di business, come una vendita o una
transazione bancaria
 Fatto
Una riga nella tabella dei fatti; contiene uno o più
valori numerici che misurano un evento
 Misura
Una colonna numerica della tabella dei fatti
 Dimensione
Una entità di business che descrive il quando,
chi, dove, come di un fatto (tempo, prodotto,
cliente, ...)
www.devleap.it
Star Schema
 Lo Star Schema è la modellizzazione più
semplice ed efficace dei componenti di un
data warehouse
 Ogni tabella dei fatti è associata ad N
tabelle dimensionali
 Relazioni gerarchiche all’interno di una
dimensione (per es. anno/mese/giorno)
vengono mantenute in una sola tabella
dimensionale
www.devleap.it
Star Schema
Employee_Dim
EmployeeKey
EmployeeID
.
.
.
Time_Dim
Sales_Fact
TimeKey
TheDate
.
.
.
Product_Dim
Dimensional Keys
Shipper_Dim
TimeKey
TimeKey
EmployeeKey
ProductKey
CustomerKey
ShipperKey
RequiredDate
.
.
.
ProductKey
ProductID
.
.
.
Multipart Key
Measures
Customer_Dim
ShipperKey
ShipperID
CustomerKey
CustomerID
.
.
.
.
.
.
www.devleap.it
Star Schema
 La tabella dei fatti può contenere misure
che si riferiscono a livelli di dettaglio
differenti, in funzione della dimensione
 La tabella dei fatti può contenere lo stesso
dato più volte (a livello di riepilogo
giornaliero, mensile ed annuale)
www.devleap.it
Snowflake Schema
Primary Dimension Table
Sales_Fact
TimeKey
EmployeeKey
ProductKey
CustomerKey
ShipperKey
RequiredDate
.
.
.
Product_Dim
ProductKey
Product Name
Product Size
Product Brand ID
Secondary Dimension Tables
Product_Brand_Id
Product Brand
Product Category ID
Product_Category_Id
Product Category
Product Category ID
www.devleap.it
Scelta dello schema
Star
Snowflake
Easier
More Difficult
Numero di tabelle
Less
More
Complessità query
Simpler
More Complex
Prestazioni query
Quicker
Slower
Comprensibilità del modello
www.devleap.it
Granularità del modello
 Determinare i requisiti di analisi
 Scegliere il livello di dettaglio più basso
 Richiede più spazio su disco
 Maggiore tempo di elaborazione
 Fornisce capacità analitiche con maggiore
dettaglio
 Conformare le misure alla granularità
definita
www.devleap.it
Definire le dimensioni





Definire caratteristiche delle dimensioni
Identificare gerarchie
Definire dimensioni convenzionali
Condividere le dimensioni tra i Data Mart
Definire altri tipi di dimensioni
www.devleap.it
Caratteristiche delle dimensioni
 Applicare le caratteristiche alla tabella delle
dimensioni
 Definire una chiave primaria
 Includere colonne correlate e descrittive (usare
testo, non codici)
 Designing for Usability and Extensibility
 Minimizzare o evitare l’uso di codici o
abbreviazioni
 Creare colonne utili per i livelli di aggregazione
 Evitare valori mancanti o NULL
 Minimizzare il numero di righe che cambia nel
tempo
www.devleap.it
Gerarchie nelle Dimensioni
Gerarchia Consolidata
Gerarchia Separata
Località Negozio
Continente
Località Negozio
Continente Paese Regione
Città
Negozio
Continente
Paese
Paese
Regione
Regione
Città
Città
Negozio
Negozio
01
www.devleap.it
Definire dimensioni convenzionali
 Dimensione Tempo (o Data – Ora)
 “spezzare” le informazioni sulla data in attributi
individuali
 Rappresentare la data come giorni lavorativi,
weekend, vacanza, stagione, periodo fiscale,
ecc.
 Dettaglio limitato alla granularità della tabella
dei fatti
 Dimensione geografica
 Dimensione prodotto
 Dimensione cliente
www.devleap.it
Condividere le dimensioni tra i
Data Mart
Production
One instance exist and is
shared among data marts
Time
Multiple
instances exist in
individual data marts
Purchasing
www.devleap.it
Sales
Definire la tabella dei fatti
 Applicare la granularità definita
 Garantire la consistenza tra le misure
 Usare valori numerici e aggregabili
www.devleap.it
Minimizzare dimensione tabella fatti
 Ridurre il numero di colonne
 Dati ridondanti
 Dati non richiesti per l’analisi
 Ridurre la dimensione di ogni colonna
 Usare chiavi surrogate
 Assicurarsi che i campi carattere e binari siano a
lunghezza variabile
 Strano però nella tabella dei fatti avere campi così,
a meno che non siano degenerate dimension
 Disegno Star Schema risultante:
 Tabelle dei fatti – lunghe e strette
 Tabelle dimensioni – corte e larghe
www.devleap.it
Implementare uno Star Schema
 Stima dimensioni Data Warehouse
 Creare database
 Creare tabelle
 Creare constraint
 Creare indici
www.devleap.it
Stima dimensioni Data Warehouse
 Dimensioni tabella dei fatti
 Granularità
 Byte per riga
Variables:
Years of data = 5
Customers = 10,000
Average number of transactions per customer per day = 4
Description
Number of rows in fact table
Estimated row size of fact table
Estimated data warehouse size
Calculation Method
Value
10,000 x 4 x 365 x 5
73,000,000
(7 IDs x 4 bytes) + (5 measures x 4 bytes) ~ 48 bytes
~3.5 GB
48 bytes x 73,000,000 rows
www.devleap.it
Creare Database
 Usare opzioni CREATE DATABASE
 SIZE
 MAXSIZE
 FILEGROWTH
 Impostare opzioni Database
 Trunc. log on chkpt. (Recovery Model: Simple)
www.devleap.it
Creare tabelle
 Creare una tabella
 Specificare NULL o NOT NULL
 Quasi sempre NOT NULL
 Valutare uso di NULL per misure con Analysis
Services
 Generare valori colonne
www.devleap.it
Creare constraints
 Usare PRIMARY KEY
 Non consente valori duplicati
 Consente creazione indici
 Non consente valori NULL
 Uso di FOREIGN KEY
 Tabella dei fatti punta a tabelle dimensioni
 Definisce un riferimento a una colonna con
constraint PRIMARY KEY o UNIQUE
 Specifica i range di valori accettabili
www.devleap.it
Uso di Foreign Key
FOREIGN KEY
Constraint
product_key
customer_key
order_date_key
FOREIGN KEY
Constraint
customer_dim_key
time_dim_key
FOREIGN KEY Constraint
product_dim_key
www.devleap.it
Creare indici
 Creazione indici per data warehouse
 Definire chiave primaria in tabelle dimensioni
 Dichiarare relazioni foreign key
 Definire chiave primaria in tabella dei fatti
 Con Analysis Services si può evitare multipart key
 Valutare uso di chiave surrogata
 Definire indici per ogni foreign key nella tabella
dei fatti
 Valutare prestazioni se i dati si leggono una volta
sola per alimentare i cubi di Analysis Services
 Usare chiavi surrogate
 Indici clustered, nonclustered e composti
www.devleap.it
Conclusioni
 Il Data Warehouse è un mezzo, non un fine
 Facilmente interrogabile dall’utente
 Fonte dati per Analysis Services (OLAP)
 Modellazione denormalizzata secondo
canoni precisi
 Star Schema
 Alimentazione non continua
 Di solito giornaliera, settimanale o mensile
www.devleap.it
Altre Informazioni
 Dove posso ottenere maggiori informazioni
 http://www.microsoft.com/sql
 http://www.microsoft.com/sql/evaluation/bi
 http://msdn.microsoft.com
 Developer resources
 Microsoft Developer Network
 http://www.devleap.it
 http://www.sqljunkies.com
www.devleap.it
Scarica

Introduzione alla realizzazione di Data Warehouse con Microsoft