160 likes | 393 Views
Data warehousing con SQL Server. SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre un insieme di funzionalit à di supporto al data warehousing Componenti per il data warehousing
E N D
Data warehousing con SQL Server • SQL Serverè un RDBMS (Relational DataBase Management System) • Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data warehousing • Componenti per il data warehousing • OLAP Server: è il server analitico dei dati rappresenta i dati analitici del DW in forma multidimensionale, usando i concetti di cubo, dimensione e misura • OLAP Manager : strumento di amministrazione dei dati analitici
Analysis Services • Punto di partenza : • DW relazionale organizzato secondo uno schema dimensionale (star schema, snowflake schema) • Il DW relazionale non deve essere necessariamente un DB gestito con SQL Server • Obiettivo : • I dati del DW relazionale vengono rappresentati ed analizzati in forma multidimensionale usando la nozione di cubo (data cube) • I cubi sono contenuti in un OLAP database gestiti dall’OLAP Server • Un cubo recupera i dati dal DW relazionale che è definito come sorgente dati (data source) all’interno dell’OLAP Database • Un OLAP database può avere varie data source • Un cubo può recuperare dati da una singola data source • Diversi cubi (di uno stesso OLAP database) possono recuperare dati da data source differenti
OLAP Server: Modalità di memorizzazione dei dati • OLAP multidimensionale (MOLAP) • rappresentazione dei dati in formato multi-dimensionale proprietario • i dati sono estratti dal DW e memorizzati nel server OLAP • le interrogazioni analitiche vengono eseguite in modo efficiente, perchè il formato è ottimizzato in tal senso • OLAP relazionale (ROLAP) • rappresentazione dei dati in formato relazionale • i dati di base sono acceduti dal DW memorizzato su un RDBMS • l’RDBMS viene anche usato anche per la memorizzazione di dati pre-aggregati, in tabelle separate • modalità adeguata per DW acceduti poco frequentemente • OLAP ibrido (HOLAP) • combina elementi da MOLAP e da ROLAP • i dati di base sono acceduti dal DW memorizzato su un RDBMS • i dati pre-aggregati vengono invece memorizzati dal server OLAP, in formato multi-dimensionale proprietario • modalità adeguata per DW grandi dimensioni
Schemi multi-dimensionali in Analysis Services • Dimensioni e attributi dimensionali si chiamano livelli • I valori delle dimensioni e degli attributi dimensionali si dicono membri livelli dimensione STORE (ALL) membri
Schemi multi-dimensionali in Analysis Services Membri e Livelli: • le dimensioni contengono solitamente il livello speciale (ALL) che contiene il solo membro All che denota tutti i membri della dimensione Organizzazione in Livelli: • Nel modello DFM gli attributi dimensionali sono organizzati in una gerarchia che è un albero direzionato (un nodo può avere più figli) • In Analysis Services i livelli formano una successione lineare (un nodo può avere al massimo un figlio) • L’organizzazione in livelli corrisponde alla definizione di una relazione padre-figlio tra i membri di livelli successivi (ogni membro di un livello si raggruppa nel membro padre) • il membro All è padre dei membri Italia, Francia, ... • il membro Italia è padre dei membri EmiliaR, Lazio, .. • … Misure : corrispondono al concetto di misura del modello DFM • Le misure sono considerate come membri di una dimensione speciale chiamata Measures (presente in tutti i cubi)
Esempio di Gerarchie e Livelli • Consideriamo lo Schema di Fatto BIGLIETTI e la (parte di) dimensione dei voli, con la relativa gerarchia • In Analysis Server definiremo un cubo BIGLIETTI e le dimensioni rispetto alle quali si vogliono analizzare i dati • Dimensione VOLO-COMPAGNIA • Dimensione VOLO-ORADIPARTENZA
Misure ed operatori di aggregazione • Classificazione degli operatori di aggregazione : • Distributivi: permettono di calcolare dati aggregati a partire direttamente da dati parzialmente aggregati (es. somma, massimo, minimo) • Algebrici: richiedono un numero finito di informazioni aggiuntive (misure di supporto) per calcolare dati aggregati a partire da dati parzialmente aggregati (es. media – richiede il numero dei dati elementari che hanno contribuito a formare un singolo dato parzialmente aggregato) • Olistici: non permettono di calcolare dati aggregati a partire da dati parzialmente aggregati utilizzando un numero finito di informazioni aggiuntive (es. mediana, moda) • Nel seguito analizzeremo come questi concetti generali siano riportati ed implementati in Analysis Services e quali sono alcuni dei concetti particolari di Analysis Services
Misure Derivate • Ottenute applicando operatori matematici a due o più valori appartenenti alla stessa tupla: nell’espressione si usano solo attributi della Fact Table • Una misura derivata viene calcolata sugli eventi primari, ovvero prima di effettuare l’aggregazione dei dati; quindi, al pari delle altre misure, anche per le misure derivate si deve definire un operatore di aggregazione • In Analysis Service c’è il concetto di Misura Derivata
Misure Derivate : Esempio SUM SUM SUM AVG • Schema di Fatto ESAMI • Dimensioni • STUD (con in gerarchia FACOLTA) e DATA (con in gerarchia MESE) • Misure • BASE (Crediti di tipo Base) e ALTRO (Crediti di tipo ALTRO) • Misure derivate • RAPPORTO = BASE/ALTRO • TOTALE = BASE + ALTRO
Misure Calcolate (concetto di Analysis Services) • Una misura calcolata è una misura il cui valore è calcolato a partire da altre misure dopoaver aggregato i dati (quindi per una misura calcolata non si definisce un operatore di aggregazione) • Esempio: Consideriamo lo schema di Fatto ESAMI • Misure derivate • RAP_DER = BASE/ALTRO • Misure calcolate • RAP_CALC= BASE/ALTRO • TOTALE = BASE + ALTRO • se la misura e’ distributiva (TOTALE), otteniamo lo stesso risultato sia come misura derivata che come calcolata: la scelta si basa sull’efficienza del calcolo (una misura calcolata “è più efficiente”) • se la misura non è distributiva (RAPPORTO), non si ottiene lo stesso risultato e quindi si deve scegliere il modo opportuno
Esempio di Misure Calcolate SUM SUM AVG
Operatore di Aggregazione Algebrico : AVG • In Analysis Services una misura con operatore di aggregazione algebrico deve essere definito tramite una misura calcolata • Esempio : Prezzo Unitario (PU)
Implementazione in Analysis Services • Una misura quale PU con operatore di aggregazione AVG deve essere necessariamente definita come Misura Calcolata in quanto la devo calcolare come SUM(PU)/count(). Allora: • Si usa l’attributo PU per definire la misura PUBase aggregata con SUM; • Definisco la misura di supporto Conteggio, aggregata con COUNT; per definire il conteggio posso usare un qualsiasi attributo della fact table • Definisco PU calcolata come PrezzoBase/Conteggio • Le due misure utilizzate per calcolare PU possono non essere visualizzate
ESEMPIO (pag 20 delle dispense) ? Sum AVG 22.20 • Non è possibile calcolare l’aggregazione a partire dalle aggregazioni componente: il guadagno per il tipo T1 non lo posso ottenere moltiplicando la quantità per il prezzo unitario • La soluzione corretta è sempre quella che si ottiene aggregando i dati direttamente dalla vista primaria : definisco Guadagno come Misura Derivata aggregata tramite la SUM
ESEMPIO: Implementazione in Analysis Services • Prezzo ha come operatore di aggregazione AVG, allora si definisce come Misura Calcolata SUM(prezzo)/count(). Allora • Si usa l’attributo Prezzo per definire PrezzoBase aggregata con SUM; • Definisco la misura di supporto Conteggio, aggregata con COUNT • Definisco PREZZO calcolata come PrezzoBase/Conteggio • Si definisce la misura Guadagno come Misura Derivata Prezzo*Quantità, con operatore di aggregazione Sum • Per confrontare (e verificare l’errore che si otterrebbe calcolare l’aggregazione a partire dalle aggregazioni componente ) si definisce anche una misura GuadagnoCalc come Misura Calcolata Prezzo*Quantità
Misura Derivata: esempio dei biglietti SUM SUM AVG • CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. • Implementazione in Analysis Services • Si definisce la misura derivata CMB_Base • Definisco la misura di supporto Conteggio, aggregata con COUNT • Definisco CMB calcolata come CMB_Base/Conteggio