Olap introduzione
Franco Perduca
Factory Software
[email protected]
Agenda
Basi dati multidimensionali (OLAP)
Analysis Services step by step
Cube Storage Options
Caratteristiche di un database Olap
Interrogare i cubi (Mdx e dintorni)
Client Olap
Gestire la sicurezza in Analysis Services
Deploy della soluzione








2
Basi dati multidimensionali (OLAP)
Problemi del dwh






3
I dati sono vastissimi
Le query non sempre sono “immediate”
C’è bisogno di un “cane da query” o “da report”
Le applicazioni spesso producono report cartacei e/o
fogli excel
I report e/o fogli excel più che rispondere a domande
le generano
Basi dati multidimensionali (OLAP)
È una “organizzazione” multidimensionale dei
dati provenienti dal DW
Il cubo rappresenta la struttura logica di un
database Olap
Le dimensioni e i fatti vengono organizzati in un
modello intuitivo di facile utilizzo da parte degli
utenti



4
Basi dati multidimensionali (OLAP)
Geo Dimension
Atlanta
Chicago
Denver
Cherries
Melons
Apples
Detroit
Q1
5
Q2
Q3
Time Dimension
Q4
Basi dati multidimensionali (OLAP)
Il cubo consente di rappresentare in modo
intuitivo e maneggevole la dipendenza di un
fatto da 3 dimensioni
L’ipercubo è una generalizzazione del cubo su n
dimensioni, con 1 <= n <= 
Per semplicità, si usa fare riferimento al “cubo”
indipendentemente dal numero di dimensioni



6
Basi dati multidimensionali (OLAP)

Ogni cella è un valore

Il valore di ogni cella è l’intersezione tra gli
attributi delle dimensioni
7
Basi dati multidimensionali (OLAP)
Sales
Fact
Atlanta
Chicago
Denver
Grapes
Cherries
Melons
Apples
Dallas
Q1
8
Q2
Q3
Time Dimension
Q4
Database OLAP
Le dimensioni ci permettono di “affettare” a
“dadi” il cubo
Le gerarchie all’interno delle dimensioni
consentono di “trapanare” all’ interno del cubo
per scendere/salire nei dettagli/aggregazioni
(DrillDown/DrillUp)
Può produrre report stampati, ma è prima di
tutto una funzionalità interattiva
Consente di verificare velocemente ipotesi
formulate dall’utente




9
Analysis Services step by step



10
Analysis Server gestisce una base dati
multidimensionale per ottimizzare l’accesso ai
dati attraverso client OLAP
Un database è un insieme di cubi
I cubi vengono alimentati con fonti dati esterne
Analysis Services step by step

Unified Dimensional Model (UDM)




11
Combina in un modello unico tutto il necessario per
l’analisi
Ambiente intuitivo per analisi interattive
Olap fa parte dell’ UDM
'UDM-server' è Microsoft Analysis Services
Udm
12
Analysis Services step by step
Data Source
Tool
MOLAP
OLAP
Browser (1)
MOLAP
Datamart
Datamart
UDM
XML/A or ODBO
Analysis
Services
OLAP
Browser (2)
Reporting
Tool (2)
Reporting
Tool (1)
DW
BI Applications
13
Analysis Services step by step
Security
End-user Model
• Translations
• Actions
• KPIs …
Calculations
Scope(Customer.Country.USA, *);
Sales = 2;
End Scope;
Basic Dimensional Model
• Cubes and Dimensions
• Storage/caching policies
• Linked objects
Order
Data Source View
14
Order# (PK)
CustomerID
DueDate
Customer
ID (PK)
Name
Age
Analysis Services step by step

Passi necessari per creare un cubo




Creare un data source (la fonte dati)
Disegnare la data source view
Eseguire il wizard
Deploy e processo del database
Un cubo puo’ contenere piu’ fact table


15
Ogni fact table genera measure group diverse
Analysis Services step by step

E’ l’operazione che “popola” il cubo


Trasferisce i dati dal Data Warehouse al database OLAP
Crea le aggregazioni e somma i dati

16
ci sono alcuni “dettagli” da considerare (li vediamo tra
breve)
Analysis Services step by step

BI Development Studio




17
Ambiente integrato
Funziona all’ interno di Visual Studio
Lavora in modo disconnesso
Genera script in formato xml
Analysis Services step by step

18
DEMO
Cube Storage Options

Lo spazio rappresenta un problema



19
I dati sono aggregati a più livelli
Sono duplicati (ripetuti) all’interno del cubo
All’aumentare delle dimensioni e misure le richieste di
spazio aumentano esponenzialmente
Cube Storage Options
Fatturato
Home
Business
Totale
Desktop
70
50
120
Hardware
Laptop Server
30
15
5
45
5
Software
Totale Italiano Inglese
100
80
70
25
5
170
105
5
• Celle di dettaglio: 10 (di cui 2 vuote) (A)
• Celle di sintesi: 14! (B)
• Celle complessive: 24 (C)
• Rapporto (C)/(A): 2.4!
20
Totale
80
30
110
Totale
180
100
280
Cube Storage Options

•70000
“Data Explosion !!!”
•65536
•Numero di Aggregazioni
•60000
•50000
•40000
•30000
•20000
•16384
•10000
•0
•16
•2
•81
•3
•256 •1024
•4
•5
•6
Numero di Dimensioni
21
•4096
•7
•8
Cube Storage Options
“Data Sparsity”
Fatturato
Milano
Roma
Napoli
Torino
Venezia
Bologna
Aosta
Trieste
Ancona
Firenze
Bari
Palermo
Cagliari
Genova
Reggio C.
Pere
Mele
Pesche
134
100
100
80
60
134
30
10
80
23
100
70
30
10
80
23
100
134
70
45
134
70
45
234
70
30
10
80
23
100
234
70
30
Carote
45
234
100
80
Limoni
234
100
80
60
134
Fragole
80
70
100
80
60
134
Arance
134
70
45
134
70
Spinaci
200
120
80
100
200
120
80
100
200
120
80
100
200
120
80
Banane
200
200
200
200
In generale, molte celle possono essere vuote,
soprattutto scendendo nei dettagli
22
Cube Storage Options

MOLAP, ROLAP e HOLAP



23
Cosa sono?
Quali sono le prestazioni e l’efficienza caratteristiche di
ciascuno?
Come scegliere?
Cube Storage Options
24
Cube Storage Options
•Molap : Multidimensional OLAP





25
I dati vengono caricati in OLAP
Services via OLE DB
Sia i dettagli che le aggregazioni
sono memorizzati nello store di
OLAP Services in formato nativo
Stesso contenuto delle tabelle
ROLAP
E’ molto efficiente, sfrutta
compressione e data sparsity
Processo del cubo molto veloce
Cube Storage Options
•ROLAP : Relational OLAP


Aggregazioni create nel RDBMS per
velocizzare le query
Popolazione delle tabelle via istruzioni
SQL di tipo “INSERT INTO”







26
Nessun dato nello store di OLAP
Services
Indici creati automaticamente
Le tabelle risultanti sono molto
leggibili
Supporta provider OLE DB
Query piu’ lente
Processo piu’ lento
Risparmio spazio
Cube Storage Options
•HOLAP - Hybrid OLAP : il compromesso

La via di mezzo






27
Mantiene i fatti in RDBMS
Le aggregazioni sono nello
store MOLAP
Evita la duplicazione dei dati
Si perdono prestazioni quando si
deve accedere ai dettagli
Tempi di processo simili a MOLAP
Perdo in termini di prestazioni
quando vado sui dettagli
Proactive Cache

28
Aggiornamento Automatico
Cube Storage Options

IMPORTANTE !!!

Aggregare al 100 % non e’ necessario:




29
Aumenta tempo di processo e richieste di spazio
Cache !!!!!
Regola 80/20
Wizard per fare tuning
Cube Storage Options

30
Demo
Dettagli sulle dimensioni


31
Dimensione è basata sugli attributi presenti nella
tabella delle dimensioni
Posso creare gerarchie per poter facilitare la
navigazione
Dettagli sulle dimensioni

Member Key Column:



Member Name Column:



Definisce il “nome” per i membri di un livello
Possono essere definite con espressioni
Sorting Member


Definisce i membri in un livello
Possono essere definite con espressioni
Definisce l’ordine all’ interno di un livello
Discretization

Crea range


32
( $9.97, $10.05, $10.10,…)
( <$10, $10 > $10,…)
Dettagli sulle dimensioni

Dimensioni parent child




Classica tabella con autoreferenza
Sono basate su due campi all’ interno della stessa
tabella
Più lente perché calcolate a “runtime”
“Members with data” gestisce legame con tabella dei
fatti



33
Non-leaf Data Hidden
Non-leaf Data Visible
DEMO!!!
Dettagli sulle dimensioni

Dimensione tempo



34
Può essere creata in automatico con wizard a partire da
un campo data/stringa della tabella dei fatti
Se gestita come una normale tabella delle dimensioni
possiamo gestire altri dettagli legate alla data es.
festivo, prefestivo ecc.
Occupa meno spazio !!!
Dettagli sulle dimensioni

35
Demo
Interrogare i cubi

La soluzione più semplice è nella maggior parte
dei casi utilizzare Excel:



Reporting Services


36
Magari integrato in WSSS
BSM 2005


Excel può collegarsi ad Analysis Services
Excel add-in accelerator
Ricco ambiente di sviluppo
Office 12
Interrogare i cubi

37
DEMO
Interrogare i cubi


38
Potrebbe essere interessante implementare
calcoli e formule per consentire analisi più
approfondite e/o confronti tra le varie dimensioni
(es. tempo)
La risposta e’ MDX
Interrogare i cubi

Key Performance Indicators



Calculate Value, Goal, Status, Trend, Weight,
Gauge
Disponibile sul client


39
Per creare cruscotti aziendali
Adomd.net
RS
Interrogare i cubi


KPI
Actual value


Goal value



Come sta andando
Valore compreso tra (-1 very bad ,0,1 very good )
Trend.


40
Obiettivo da raggiungere
Status


Valore attuale.
Andamendo nel tempo
Valore compreso tra (-1 ,0,1 )
Rappresentazione grafica per status e trend
Interrogare i cubi

Writeback

Possibilità di “scrivere” nell’ UDM


Actions

Link tra dati e una azione



41
Es Budget con possibilità di “spalmare” sul dettaglio dati
aggregati
url
Reporting
DrillThrough
Interrogare i cubi

42
DEMO
Gestire la sicurezza

Si basa su definizioni di ruoli che si “appoggiano”
sulla windows security

Amministrativa



43
Administrator
Process Database
Read Definition
Gestire la sicurezza

Utenti



44
Si basa sulla creazioni di ruoli all’interno di Analysis
Services
Posso limitare l’utente a vedere singole dimensioni,
livelli, membri
Consente di arrivare alla singola cella all’interno del
cubo
Gestire la sicurezza


45
Il ruolo viene creato a livello di database dal
Database Role Manager
Per ciascun cubo si possono specificare i dettagli
Gestire la sicurezza

46
Demo
Deploying an OLAP Solution

Aggiornamento dei cubi

Process Full

quando :




conseguenze :


47
viene creato
Aggiungo,elimino o modifico una misura
Rebuild di una dimensione
Il cubo non e’ disponibile
Elaborazione lunga
Deploying an OLAP Solution

Aggiornamento dei cubi

Process Incremental

quando :


conseguenze :

48
Aggiungo nuovi dati al DW
Non “costa molto” in quanto il cubo rimane disponibile
Deploying an OLAP Solution

Aggiornamento delle dimensioni

Process Full

quando :


conseguenze :


il cubo no è disponibile ed inoltre deve prevedere un full process prima
di diventarlo
Process Update

quando :


Nuovi member,modifiche
conseguenze :


49
Modifiche strutturali
I cubi rimangono disponibili
I nuovi membri aggiunti legati a tabelle dei fatti non ancora processate
appariranno senza valore
Deploying an OLAP Solution

Backup e restore di un cubo


50
SSMS (pulsante destro del mouse)
Possibilità di encrypt con password
Deploying an OLAP Solution

51
Analysis Services Scripting Language (ASSL)
 Linguaggio usato in tutti i file xml di AS
 View Code da Development Studio
 <Annotations> è usata solo dal Designer
 È basato su XML/A
 XML for Analysis
 SOAP-based
 www.xmla.org
Deploying an OLAP Solution

XMLA




52
Zero client footprint
HTTP, TCP/IP, SOAP, UDDI, WSDL
Backward compatibility with OLE DB and ADO MD
No Client caching
Deploying an OLAP Solution




53
Save (from BI Development Studio)
 Salva in formato XML la definizione
Build (from BI Development Studio)
 Genera ASDatabase XML file
Deploy
 Manda ASDatabase XML file al server
 Deployment Wizard per configurare script
Process
 Carica dimensions e misure
 BIDS fa processes automatico sul deploy
Deploying an OLAP Solution



54
Doppio click su .ASDatabase definition file
Chiede informazioni di configurazione
 Server name, target database name
 Replacement mode for partitions and roles
 Locations for error logs and data files
 Processing options (full, default, or none)
Puo creare XMLA script
Deploying an OLAP Solution




55
Analysis Management Objects (AMO)
.Net API per eseguire ASSL
Scripting crea ASSL, no AMO
Rimpiazza (DSO)
 DSO disponibile per compatibilità
Deploying an OLAP Solution

56
DEMO !!!
Domande?
57
© 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Scarica

OLAP - Microsoft