Design and Implementing OLAP solution with Microsoft SQL Server 2005 Analysis Services autore: Cristian Marchi Anildo
May 02, 2015
Design and Implementing OLAP solution with
Microsoft SQL Server 2005 Analysis Services
autore: Cristian Marchi Anildo
2
Obiettivi del corso
Il corso fornisce ai partecipanti le conoscenze necessarie per progettare,implementare e gestire nuove applicazioni di analisi multidimensionale utilizzando il nuovo sistema Microsoft SQL Server 2005 Analysis Services.
3
Contenuti del corso
• Introduzione alla piattaforma Microsoft per la Business Intelligence
• Architettura degli Analysis Services• Creazione di un progetto Analysis Services• Introduzione agli oggetti Analysis Services• Amministrazione di database Analysis Services• La programmazione multidimensionale• Utilizzo di Client OLAP per l’interrogazione di basi dati
multidimensioanli
4
Introduzione: la tecnologia OLAP
Il termine OLAP identifica una particolare tecnologia, vista anche come estensione delle funzionalità tipiche di un Data Warehouse, in grado di supportare l’elaborazione di operazioni per il supporto alle decisioni.
Analysis Services è la piattaforma OLAP di Microsoft mediante la quale è possibile progettare, creare, gestire e distribuire strutture multidimensionali, le cui informazioni aggregate permettono attività di analisi per il supporto alle decisioni.
La piattaforma Microsoft per la Business Intelligence
Sessione 1
6
La piattaforma Microsoft per la BI
Microsoft SQL Server 2005 è una piattaforma completamente integrata che fornisce strumenti, funzionalità e caratteristiche innovative per lo sviluppo di soluzioni di Business Intelligence e applicazioni di analisi e reporting direzionale.
7
Panoramica dei componenti chiave di gestione
Principali strumenti per la realizzazione di soluzioni BI:• SQL Server Management Studio (SSMS)• SQL Server Business Intelligence Development Studio (SSBIDS)
Principali componenti server per la realizzazione di soluzioni BI:• SQL Server Database Engine• SQL Server Analysis Services• SQL Server Integration Services• SQL Server Reporting Services
8
SQL Server Management Studio
• Strumento integrato per la gestione ed amministrazione di qualsiasi tipo di server appartenente alla famiglia SQL Sever:– Database Engine– Analysis Services– Reporting Services– Integration Services
• Funzionalità tipiche di gestione database (proprietà, data files, backup and restore, etc.)
• Query Editor integrato:– Database Engine Query– AS MDX Query– AS DMX Query– AS XMLA Query
• Definizione di oggetti Analysis Services
9
SQL Server Business Intelligence Development Studio
• Strumento integrato per la gestione, implementazione e distribuzione di progetti Analysis Services
• Solution Explorer– Definizione di sorgenti dati (Data Source)
– Definizione di strutture multidimensionali (Cubi e Dimensioni)
– Definizione di modelli di Mining
– Definizione di Ruoli Utente (Roles and Permission)
– Amministrazione delle proprietà del progetto Analysis Services
• Deployment and Processing Progress– Modalità di elaborazione e storage delle strutture multidimensionali
– Deploy di progetti Analysis Services
10
Dimostrazione 1-1
• Visti da vicino…– SQL Server Management Studio
– SQL Server Business Development
L’architettura degli Analysis Services 2005
Sessione 2
12
Architettura Client/Server
• Architettura costruita su componenti Client e Server– Componente Server (MSMDSVR.EXE) eseguito come servizio
Windows
– La comunicazione con i Clients avviene utilizzando lo standard XML for Analysis per l’invio di comandi
13
Architettura Distribuita
• Differenti Providers forniti con AS per supportare differenti linguaggi di programmazione
• Comunicazione con AS mediante l’invio e la ricezione di pacchetti SOAP (XML/A) mediante protocollo TCP/IP
• Comunicazione mediante protocollo HTTP (Internet Information Server)
14
Componenti Server e Client
• Applicazione Server msmdsvr.exe (XML/A Listener)– Interpreta i comandi inviati dalle postazioni Client
– Gestione di metadata
– Processi di elaborazione delle strutture multidimensionali
– Calcolo e gestione delle aggregazioni
– Funzionalità di caching
• Applicazioni Client– Data Access Interfaces per le applicazioni Client (OLEDB for OLAP,
ADO MD, ADO MD.NET, XML/A)
– Comunicazione attraverso XML/A
– Tutte le interrogazioni vengono elaborate lato Server
15
Oggetti Analysis Services
• Data Source• Data Source Views• Cubi• Dimensioni• Modelli di Mining• Ruoli
16
Data Source
• Il Data Source rappresenta la connessione ad una origine dati. Contiene la stringa di connessione con i seguenti parametri:– Server Name
– Database
– Security
– Timeout
– Etc.
• Analysis Services immagazzina le informazioni di connessione in un file XML opportunamente criptato.
C:\Programmi\Microsoft SQL Server\ MSSQL.2\OLAP\Data\OLAPDatabase.0.db\OLAPDatabase.7.ds.xml
17
Data Source: xml file- <Load xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">- <ParentObject> <DatabaseID>GAT</DatabaseID> </ParentObject>- <ObjectDefinition>- <DataSource xsi:type="RelationalDataSource"> <Name>GAT</Name> <ID>GAT</ID> <CreatedTimestamp>2005-10-10T20:59:17</CreatedTimestamp> <LastSchemaUpdate>2005-10-13T10:10:57</LastSchemaUpdate> <ObjectVersion>7</ObjectVersion> <ObjectID>E5E6061A-C5B7-41E7-B400-59FCC2AA6E9C</ObjectID> <Ordinal>7</Ordinal> <PersistLocation>0</PersistLocation> <System>false</System> <DataFileList /> <Description /> <PermissionFileList>DataSourcePermission.2.perm.xml</PermissionFileList> <ConnectionString>[EncryptedDataStart]CAAAAAAHmgD2mnUf6aIvMnk/eKZUchQk6ctUoYL1rS0/9+zaA3KSwJddx28PHjP2aYkOCEsahwVz
tDffiJeJwjKvUsKMGHyjsZy9kW4BvKYQA2DL54UXH1cNfiZQJaZTrwE9YDjhZ0+S0bBKLdBa/p+R zjzDsSZicOJfbo1qpG6jveIQmu334P20e6F0Kf6+/JWrOg0HIevwGmzrB1wpTMYlrexc6BEuFHRk 2tca4sLWC0Ysv7Ax7tKxy0NvarxwoBqikdQkF1vMCGH/AJqClQEql+nWjhM+ww6Uox3dkCkDRknu NeqxZrXFx1JDwtrcHXr5d4N2pZLiYet85Ylw+Q== [EncryptedDataEnd]</ConnectionString>
<Timeout>P0D</Timeout> - <ImpersonationInfo> <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode> <Account /> <Password>CAAAAAAAAADzA4h3rswfNEGmETAP8q9X</Password> </ImpersonationInfo> <MaxActiveConnections>10</MaxActiveConnections> <Isolation>ReadCommitted</Isolation> </DataSource> </ObjectDefinition> </Load>
18
C:\Programmi\Microsoft SQL Server\ MSSQL.2\OLAP\Data\OLAPDatabase.0.db\<<dsv nome>>.dsv.xml
Data Source Views
• Il Data Source Views (DSV) consente la creazione di un livello logico di interfaccia tra il sistema relazionale e quello multidimensionale.
• L’oggetto DSV:– Contiene i metadati degli oggetti relazionali importati da una o più
sorgenti dati (Data Source) connesse, oppure i metadati di oggetti relazionali che possono essere creati successivamente.
– Può essere definito su una o più sorgenti dati– Può contenere relazioni, colonne calcolate e query che non sono
presenti all’interno delle sorgenti dati fisiche.– Non è visibile all’applicazione Client
• E’ possibile costruire uno o più DSV. Gli oggetti DSV possono essere condivisi fra le strutture OLAP.
• Tutte le informazioni sono salvate in file XML
19
Data Source Views (continua…)
L’introduzione dell’oggetto DSV fornisce una enorme flessibilità nella progettazione di oggetti Analysis Services in quanto la loro implementazione non si limita allo schema fisico delle strutture contenute nell’origine dati, bensì ad uno schema logico basato su nuove relazioni, colonne calcolate o query capaci di definire nuove entità relazionali.
L’introduzione dell’oggetto DSV consente l’implementazione di sistemi BI complessi, eliminando le problematiche relative alla creazione di nuove entità relazionali fisiche su sorgenti dati laddove non si dispone di privilegi di System Administrator.
Ulteriore vantaggio è la certezza di poter progettare e disegnare modelli multidimensionali senza la necessità di essere collegati alla sorgente dati.
20
Dimensione
• L’oggetto dimensione è una componente fondamentale nella struttura di un cubo.
• La costruzione dell’oggetto dimensione si basa sulle entità logiche definite nel DSV.
• La struttura di una dimensione è molto simile al concetto di tabella.• L’oggetto dimensione viene costruito su una base di attributi e
gerarchie. La dimensione è una collezione di attributi.• L’oggetto dimensione può essere utilizzata in molteplici strutture
cubi• L’oggetto dimensione può essere utilizzata più volte all’interno di
una struttura cubo.• Esistono differenti tipi di dimensioni.
21
Concetto di attributo
• La dimensione è una collezione di attributi• Ogni attributo corrisponde ad una o più colonne di una tabella• In una dimensione deve essere sempre definito un attributo chiave,
corrispondente ad una o più colonne chiave di una tabella. (Tipicamente l’attributo chiave rappresenta la PK della tabella. Laddove non sia definita una PK è possibile definire una Logical Primary Key).
• I membri contenuti in un attributo sono organizzati in due livelli gerarchici (livello figlio e livello ALL)
• Gli attributi contribuiscono alla definizione delle gerarchie.• All’interno di una dimensione è possibile definire molteplici gerarchie
22
Rappresentazione di una gerarchia
• Dimensione Tempo– Attributi Year, Quarter e Month
• Membri: 2004, Quarter 1,2,3…
– Gerarchia Calendario• Livelli Year, Quarter e Month
– Membri 2004, Quarter 1,2,3…
23
Relazioni in una gerarchia
Dimensione
Parent
Siblings
Children
Ancestors di Dec
Descendants di 2004
Cousins
24
Le relazioni
• Alcuni concetti fondamentali di una rappresentazione di dati in forma multidimensionale– Fatto – un concetto sul quale centrare l’analisi
– Misura – una proprietà atomica di un fatto da analizzare
– Dimensione - descrive una prospettiva lungo la quale effettuare l’analisi
• Le dimensione devono essere quindi correlate ai fatti• AS consente di combinare le dimensioni ai i fatti in modi differenti
– Regular
– Role-Playing
– Fact Dimension
– References
– Many-to-Many
25
Regular, Role-Playing e References
• Una Regular Dimension è una dimensione correlata direttamente alla Fact Table attraverso l’attributo chiave.
• Una medesima dimensione può essere correlata più volte alla Fact Table assumendo il nome di Role-Playing Dimension.
• Una dimensione correlata indirettamente alla Fact Table mediante una dimensione intermedia, prende il nome di References Dimension (snowflake schema). Non vi è un limite al numero di reference dimensions che possono essere correlate tra loro.
26
Fact Dimension
Dimensioni standard i cui attributi sono definiti sulla base di colonne presenti all’interno della dimensione tabella dei fatti. Vengono utilizzate per supportare le azioni di drillthrough.
27
Many-to-Many Dimension
• Medesima logica presente nelle strutture relazionali• Il concetto di dimensione many-to-many allarga il modello
dimensionale oltre il classico star-schema consentendo analisi complesse dove le dimensioni non sono direttamente correlate alla Fact Table.
28
Categorie di dimensioni
• Tutte le dimensioni sono composte da informazioni soggette a cambiamenti più o meno frequenti nel tempo.
• AS 2005 suddivide le dimensioni in tre categorie:– Regular Dimensions – Dimensioni le cui informazioni vengono
considerate statiche
– Slowly Changing Dimensions – Dimensioni le cui informazioni possono cambiare
– Rapidly Changing Dimensions – Dimensioni le cui informazioni possono cambiare nel tempo con una elevata frequenza.
29
Slowly Changing Dimensions
• Le SCDs mantengono uno storico dei cambiamenti all’interno di una sorgente dati.
• Le SCDs più comunemente utilizzate sono raggruppate in due differenti sottocategorie:– SCDs Type 1 – durante il processo di elaborazione le informazioni
“storiche” vengono sovrascritte e non conservate (La chiave primaria identificativa del record soggetto a modifica non viene alterata).
– SCDs Type 2 - forma più comune di SCD. Durante il processo di elaborazione le informazioni “storiche” vengono mantenute e le eventuali differenze vengono gestite mediante la generazione di un nuovo membro per l’attributo soggetto a modifica.
30
Rapidly Changing Dimensions
• Utilizzate per gestire grandi quantitativi di dati• Le RCDs influiscono sulla struttura della Fact Table mediante la
generazione di chiavi surrogate• Le RCDs e la Fact Table sono correlate tra loro mediante le
correlazioni definite tra le chiavi surrogate aggiunte.
31
Dimostrazione 2-1
• Creazione di un nuovo progetto Analysis Server• Creazione di un nuovo oggetto connessione (Data Source)• Creazione di un nuovo oggetto Data Source Views• Creazione di un nuovo oggetto Dimensione
– Identificazione degli attributi e definizione delle gerarchie
– Impostazione di proprietà per l’oggetto Dimensione
fine primo giorno
32
Oggetto Cubo
• Il Cubo è sviluppato sulla base di tabelle e viste definite nell’oggetto DSV.
• Un Cubo è un insieme di misure, che rappresentano i fatti, e dimensioni.
• Un Cubo è composto da misure basate su una o più Fact Tables e dimensioni, basate su una o più Dimension Tables.
33
Concetto di Measures e Measures Group
• Una misura rappresenta una colonna che contiene i dati (solitamente numerici) quantificabili e aggregati, presenti in una tabella dei fatti.
• Una misura può essere calcolata sulla base di una regola di business definita utilizzando il linguaggio multidimensionale (MDX).
• All’interno di un cubo, le misure presenti in una tabella dei fatti sono raggruppate tra loro, formando un “gruppo di misure”.
• In AS 2005, lo scenario prospettato è quello di definire una singola struttura multidimensionale (Cubo) che contiene una o più misure di gruppo. I dati presenti nella tabella dei fatti, all’interno di un gruppo di misure hanno una specifica granularità definita dall’intersezione delle dimensioni.
34
UDM - Unified Dimensional Model
• UDM è un livello logico che si interpone tra l’utente finale e l’insieme delle sorgenti dati.
• UDM può essere definito sulla base di quattro elementi chiave:– Accesso a fonti dati eterogenee
• Data Source e Data Source Views
– Caratteristiche e funzionalità di analisi aggiuntive• KPI, Translation, Perspective, etc.
– Advanced Analytics• Logica di business per analisi complesse (definizione di Calculation Script)
– Proactive Caching• Servizio che consente di configurare l’accesso ai dati (realtime o non
realtime) mantenendo un elevato livello di performance.
• Cubo è sinonimo di UDM
35
UDM - Rappresentazione
Il ruolo del livello UDM è quello di fornire un ponte fra l’utente analista e le sorgenti dati. UDM è costruito su una o più sorgenti dati e l’utente finale invia richieste/interrogazioni utilizzando una varietà di strumenti Client, quali ad esempio Microsoft Excel.
36
Dimostrazione 2-2
• Creazione di un nuovo oggetto Cubo– Impostazione di proprietà per l’oggetto Cubo
Creazione di un progettoAnalysis Services 2005
Sessione 3
38
Ambiente di lavoro
• Business Intelligence Development Studio (Visual Studio 2005)
Definizione degli oggetti
Definizione delle proprietà
39
Definizione oggetto Data Source
• Creazione oggetto di connessione ad una fonte dati.• Impostazione delle proprietà di connessione (Server Name,
Database Name, Security, etc.)
40
Definizione oggetto Data Source Views
• Definizione di un livello logico rappresentativo dei metadati
Sorgente D
ati
Metadati
41
Data Source Views Designer
• Definizione di nuovi diagrammi, schemi relazionali, named query, colonne calcolate, etc.
42
Definizione oggetto Dimensione
• Wizard per la definizione di un nuovo oggetto dimensione– Costruzione di un oggetto dimensione utilizzando le entità presenti
all’interno di una sorgente dati
– Costruzione di un oggetto dimensione non utilizzando le entità presenti all’interno di una sorgente dati (modalità top-down)
43
Laboratorio 3-1
• Mettiamo in pratica quanto sin qui analizzato:– Creazione di un nuovo progetto Analysis Server
– Creazione di un nuovo oggetto connessione
– Creazione di un nuovo oggetto Data Source Views• Creazione di colonne calcolate, relazioni, logical key
– Creazione di un nuovo oggetto Dimensione• Proprietà dell’oggetto Dimensione
Durata: 30 minuti
44
Definizione oggetto Cubo
• Wizard per la definizione di un nuovo oggetto cubo– Identificazione Fatti e Dimensioni
– Identificazione Dimensione Tempo
– Identificazione delle Misure
45
Cube Wizard Designer
46
Relazionare Dimensioni e Misure
• Utilizzo del Dimension Usage Tab del frame-work Cube Designer
47
…Relazionare Dimensioni e Misure
• Selezionare il tipo di relazione da implementare
48
Laboratorio 3-2
• Mettiamo in pratica quanto sin qui analizzato:– Creazione di un nuovo oggetto Cubo
• Proprietà dell’oggetto Cubo
– Definizione delle relazioni tra Dimensioni e Misure
Durata: 30 minutifine secondo giorno
49
Deploy di un progetto AS
• Impostazione delle proprietà di configurazione del progetto AS• Deploy e Processing del progetto AS
Caratteristiche di un CuboAnalysis Services 2005
Sessione 4
51
Business Intelligence enhancement
• Aggiungere “valore” alle strutture multidimensionali mediante Business Intelligence Wizard.
Enhancement Tipo Applicata a
Time Intelligence Cubo Cubo
Account Intelligence Dimensione Dimensione o Cubo
Dimension Intelligence Dimensione Dimensione o Cubo
Custom Aggregation Dimensione Dimensione o Cubo
Semiadditive Behavior Cubo Cubo
Custom Member Formula Dimensione Dimensione o Cubo
Custom Sorting Dimensione Dimensione o Cubo
Dimension Writeback Dimensione Dimensione o Cubo
52
Time Intelligence
• Consente la creazione semplificata di nuove misure calcolate basate su una dimensione tempo:– Period to date– Period over period – Moving averages– Parallel period
• Modelli di calcolo (template) definiti nel file TimeIntelligence.xml eventualmente modificabile in base alle proprie esigenze di calcolo.
• Modifica della struttura (metadati) dell’oggetto Data Source Views con l’aggiunta delle nuove colonne calcolate.
• Modifica della struttura dell’oggetto dimensione (Time) con l’aggiunta di nuovi attributi
• Modifica della struttura dell’oggetto cubo con l’aggiunta di nuovi membri calcolati nel linguaggio MDX.
53
KPI
• Nuovo pannello per la creazione di indicatori di business• Possibilità di visualizzare gli indicatori creati in reports, portali e
dashboard mediante utilizzo di APIs
54
Object Translation
• AS 2005 permette la rappresentazione dei nomi degli oggetti misure, gruppi di misure, dimensioni, attributi e gerarchie, KPIs, e membri calcolati in un linguaggio specifico (proprietà di identificazione del linguaggio LCID “Local Identifier”)
55
Perspective
• AS 2005 permette di definire una o più viste semplificate di un cubo in base alle specifiche di business.
56
Action
• Espressione multidimensionale (MDX) definita in AS• Può essere incorporata in una applicazione client• L’esecuzione viene ordinata dall’utente finale• Differenti tipologie di Actions:
– URL
– Statement
– Dataset
– Drillthrough
– Reporting
57
Laboratorio 4-1
• Mettiamo in pratica quanto sin qui analizzato:– Creazione di una nuova Dimensione Time mediante l’utilizzo del Wizard “Add
Business Intelligence”– Aggiunta di KPI ad un Cubo– Aggiunta di Object Translation ad un Cubo– Aggiunta di Perspective ad un Cubo
Durata: 30 minuti
Amministrazione di un databaseAnalysis Services 2005
Sessione 5
59
Ruoli, Gruppi e Permessi
• AS 2005 consente la creazione di Ruoli mediante lo strumento Role Designer
• È consentito impostare le modalità di accesso agli oggetti AS (Fact Table e Dimension Table)
• È consentito impostare i permessi di elaborazione per ogni singolo oggetto AS.
• È consentito, all’amministratore di sistema, definire utenti e gruppi locali per il ruolo creato.
60
Backup e Restore
• In SSAS 2005 un amministratore può effettuare il backup di un database AS direttamente su file system.
• Il processo di backup crea un file contenente varie informazioni a seconda del tipo di struttura multidimensionale (OLAP, MOLAP o HOLAP)
– MOLAP – metadata, dati e aggregazioni– HOLAP – metadata e aggregazioni– ROLAP – metadata
• In SSAS 2005 un amministratore può effettuare il restore di un database AS impostando differenti opzioni:
– Restore di un database utilizzando il medesimo nome della base dati– Sovrascrivere un database esistente– Decidere se utilizzare differenti locazioni per ogni partizione che compongono la
struttura miltidimensionale. Partizioni locali possono essere restorate in qualsiasi locazione appartenente all’istanza dell’Analysis Server. Partizioni remote possono essere restorate in qualsiasi locazione su qualsiasi server.
61
Dimostrazione 5-1
• Funzionalità di amministrazione di un data base OLAP– Impostazione di ruoli e permessi
– Backup e Restore
62
Processo di strutture multidimensionali
• Comando mediante il quale server di Analisi accede alle sorgenti dati per alimentare le strutture multidimensionali (cubi, dimensioni, modelli di mining, partizioni, etc.)
• Le richieste di elaborazione vengono inviate al server di Analisi mediante protocollo nativo XML for Analysis
<Process>
<Object>object_reference</Object>
<Type>processing_type</Type>
<Bindings>ool_bindings</Bindings>
<DataSource>ool_ds</DataSource>
<DataSourceView>ool_dsv</DataSourceView> <ErrorConfiguration>error_config</ErrorConfiguration> <WriteBackTableCreation>wb_tbl_creation</WriteBackTableCreation>
</Process>
63
Principali Opzioni di elaborazione
Processing Option Database Dimension Cube Measure Group
Partition
ProcessFull X X X X X
ProcessClear X X X X X
ProcessDefault X X X X X
ProcessData X X X
ProcessIndexes X X X
ProcessUpdate X
ProcessAdd X X
ProcessStructure X
64
…Opzioni di elaborazione
• ProcessFull può essere applicato a tutti gli oggetti AS. Elimina il contenuto dell’oggetto in lavorazione e ricostruisce il tutto
• ProcessClear può essere applicato a tutti gli oggetti AS. Elimina il contenuto dell’oggetto in lavorazione
• ProcessDefault può essere applicato a tutti gli oggetti AS. Permette di completare la lavorazione di un’oggetto portandolo allo stato di Fully Processed.
• ProcessData può essere applicato agli oggetti OLAP (dimensioni, cubi, misure e partizioni). L’azione di lavorazione si concentra soltanto sulla ricostruzione dei dati.
• ProcessIndexes può essere applicato agli oggetti OLAP (dimensioni, cubi, misure e partizioni). L’azione di lavorazione si concentra soltanto sulla ricostruzione degli indici
65
…Opzioni di elaborazione
• ProcessUpdate può essere applicato soltanto all’oggetto dimensione. Il processo di lavorazione verifica eventuali cambiamenti (update, addition e deletion) registrati nella tabella di origine.
• ProcessAdd può essere applicato soltanto agli oggetti dimensione e partizione. Riferito alle dimensioni effettua soltanto operazioni di addition. Riferito alle partizioni, il processo di lavorazione crea un partizione temporanea, elabora la partizione e termina le operazione con una attività di merge con la partizione target.
• ProcessStructure può essere applicato soltanto all’oggetto cubo. Il processo di lavorazione effettua la ricostruzione della struttura dell’oggetto.
66
Elaborazione delle Dimensioni
• Logica di elaborazione
67
Elaborazione delle Partizioni
• Logica di elaborazione
68
Le Partizioni
• Una partizione è un file o un disco fisico che contiene un sottoinsieme di dati/informazioni che compongono un database Analysis Services
• Le partizioni si definiscono locali se sono definite, processate e salvate su un server di analisi
• Le partizioni si definiscono remote se sono definite su un server di analisi, ma processate e salvate su altri server
• Partition Wizard consente la creazione ed aggiunta di nuove partizioni ad un cubo AS.
• E’ possibile impostare le modalità di storage per ogni singola partizione creata
69
Storage Setting
Storage Setting Descrizione
ROLAP Modalità Real Time update. Dati e aggregazioni sono memorizzati in schema relazionale.
HOLAP Modalità “ibrida”. Dati memorizzati in schema relazionale. Aggregazioni in schema multidimensionale
Low Latency MOLAP Dati e aggregazioni memorizzati in schema multidimensionale. Il server di Analisi ascolta eventuali notifiche di aggiornamento sulle informazioni per passare eventualmente sull’impostazione real-time ROLAP, mentre la struttura MOLAP vengono riprocessati in un’area temporanea (cache). È previsto un intervallo di “silenzio” di almeno 10 secondi prima dell’aggiornamento della cache. Qualora tale intervallo non sia raggiunto ne è previsto uno in sovrapposizione di 10 minuti. L’elaborazione procede automaticamente con uno stato di latenza di 30 minuti dopo le prime modifiche sui dati.
Medium Latency MOLAP Come il precedente fatta eccezione per l’elaborazione automatica con uno stato di latenza di quattro ore dopo le prime modifiche sui dati.
Automatic MOLAP Viene mantenuta la corrente cache MOLAP mentre ne viene generata una nuova. Il server non passa all’impostazione real-time ROLAP. È richiesto un intervallo di 10 secondi prima della generazione della nuova cache MOLAP. Sempre previsti i 10 minuti di sovrapposizione. Mentre l’elaborazione procede automaticamente con uno stato di latenza di due ore.
Scheduled MOLAP Nessuna notifica di modifiche sui dati inviata al server di analisi. Il server di analisi elabora automaticamente ogni 24 ore.
MOLAP Servizio di Proactive Caching non abilitato. Attività di elaborazioni manuale o schedualata.
70
Proactive Caching
• Proactive Caching è un nuovo servizio che consente di determinare ogni quanto tempo deve essere rielaborata la cache di una struttura multidimensionale.
• Il servizio di Proactive Caching viene impostato per ogni partizione
• E’ possibile impostare correttamente il servizio di Proactive Caching mediante l’apposito Wizard.
71
Laboratorio 5-1
• Mettiamo in pratica quanto sin qui analizzato:– Elaborazione e Processing di strutture multidimensionali– Impostazione delle opzioni di Processing– Impostazione delle modalità di Storage
• Gestire il servizio di Proactive Caching
Durata: 30 minutifine terzo giorno
Introduzione alla programmazione inAnalysis Services 2005
Sessione 6
73
Linguaggi per amministrare una istanza AS
• Creare o modificare oggetti AS (database, cubi, dimensioni, etc.) mediante:– Analysis Management Objects (AMO)
– XML for Analysis (XMLA) e Analysis Services Scripting Language (ASSL)
• Processare oggetti AS mediante:– Analysis Management Objects (AMO)
– XML for Analysis (XMLA)
• Gestione di una istanza AS– Analysis Management Objects (AMO)
– XML for Analysis (XMLA)
74
Analysis Management Objects (AMO)
• AMO è una libreria di oggetti MS .NET da utilizzare all’interno di una applicazione.
• AMO consente la gestione di oggetti Analysis Services (database, cubi, dimensioni, modelli di mining, etc.)
AMO namespaces
Microsoft.AnalysisServicesMicrosoft.AnalysisServices.HostingMicrosoft.Datawarehouse.ComponentModel……
AMO Classes of Namespace AnalysisService
AccountAccountCollectionAccountType……CubeCubeAttributeCubeDimension……
75
Analysis Management Objects (AMO)
AMO Classe Cube of Namespace AnalysisService
Cube
Public method
CanProcessCloneCopyTo…Process……
Method CopyTo
Public Function CopyTo (_ obj As Cube _
) As Cube
Microsoft.AnalysisServices.Server server = new Server(); Server.Connect("localhost");
76
Analysis Services Scripting Language (ASSL)
• ASSL è una sintassi XML utilizzata dalle applicazioni clients per comunicare con SSAS
• ASSL è composto da due sezioni:– Data Definition Language (DDL): definizione dell’istanza di AS e dei
relativi oggetti
– Command Language: Create, Alter, Process ovvero comandi inviati al server di analisi.
<Batch Transaction="true" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Process>
<Object><DatabaseID>Adventure Works DW</DatabaseID> <DimensionID>Customer</DimensionID>
</Object> <Type>ProcessFull</Type>
</Process> <Process>….</Process> </Batch>
77
Introduzione al linguaggio MDX
• MDX è un linguaggio utilizzato per definire, lavorare con, e restituire dati o informazioni da oggetti multidimensionali.
• MDX è molto simile ad un linguaggio SQL, ma non è una estensione dello stesso.
• Con MDX è possibile:– Creare, eliminare ed operare con oggetti multidimensionali (Data
Definition Language o DDL)
– Restituire e gestire le informazioni risultanti da oggetti multidimensionali (Data Manipulation Language o DML)
– Gestire le informazioni attraverso un insieme di operatori e funzioni messe a disposizione
– Estendere le funzionalità tipiche mediante la definizione di User Define Functions.
78
Concetti chiave nel linguaggio MDX
• Concetti fondamentali di un modello dimensionale per MDX– Hierarchies, Levels, Members and Measures
– Calculated Members
– Cells, Tuples and Sets
– Expressions, Statements and Scripts
79
Hierarchies
• Database relazionale definito attraverso entità logiche (tabelle) bi-dimensionali, la cui intersezione tra colonne e righe fornisce il valore del dato.
• All’interno di un database multidimensionale (cubi OLAP) i dati sono organizzati in gerarchie (hierarchies) e non in tabelle.
80
Levels, Members and Measures
Ogni dimensione (Route, Source, Time e Measures) contiene dei livelli (levels).
Ogni livello di una gerarchia è composto da singoli elementi, membri (members) , ovvero i dati presenti all’interno di una dimensione. Un membro può rappresentare una o più occorrenza di dati
I Membri della dimensione Measures vengono chiamati measures.
Es:. Time.[2nd half].[3rd quarter]
Es:. Time.[2nd half].&[Q4]
Uso la proprietà member name
Uso la proprietà member key
81
Calculated Members
• Un membro calcolate può essere creato come una parte di una query MDX, in grado di restituire dati calcolati mediante espressioni o funzioni rese disponibili in MDX.– WITH MEMBER [Measures].[PackagesForecast] AS
'[Measures].[Packages] * 1.1' • Il membro calcolato viene eseguito in modalità run-time mediante
l’espressione di calcolo MDX definita.
82
Tuples
• Una tupla identifica una “fetta” di dati contenuti in un oggetto cubo.• Una tupla è praticamente una collezione di membri di una o più
dimensioni.– Esempio di tupla semplice (Time.[2nd half])
– Esempio di tupla composta (Time.[2nd half], Source.nonground.air)
83
Sets
• Un insieme è una collezione di 0, una o più tuple.• L’insieme è comunemente usato per definire gli Assi in una query
MDX.
{ (Time.[1st half], Source.nonground.air), (Time.[2nd half], Source.nonground.sea)}
InsiemeTupla 1
Tupla 2
84
Query MDX
• Una Query MDX è una istruzione in grado di restituire un insieme di celle contenente un sotto insieme di dati presenti in una struttura multidimensionale.
SELECT
{
[Measures].[Sales Amount],
[Measures].[Tax Amount]
} ON COLUMNS,
{
[Date].[Fiscal Time].[Fiscal Year].&[2002], [Date].[Fiscal Time].[Fiscal Year].&[2003]
} ON ROWS
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
85
Laboratorio 6-1
• Mettiamo in pratica quanto sin qui analizzato:– Scrivere Query MDX– Creare nuovi membri calcolati
Durata: 30 minuti
fine quarto giorno
Introduzione all’utilizzo di Client OLAP
Sessione 7
87
Strumenti Microsoft per l’Analisi multidimensionale
• Office OLAP Components– Pivot Table Service
– Excel Pivot Table
– Office Web Component
• Reporting Service– Reports a matrice
– Delivery di Reports (e-Mail;file sharing;etc.)
– Format Rendering Reports (PDF, Excel, Html, Xml)
88
Utilizzo delle Office Web Component 10.0
89
Collegamento alla fonte dati OLAP
90
Analisi mediante Pivot Table
91
Impiego delle OWC in un contesto applicativo
92
Impiego delle OWC in un contesto applicativo
93
Laboratorio 7-1
• Mettiamo in pratica quanto sin qui analizzato:– Utilizzo di Microsoft Excel per interrogare un Cubo Olap– Utilizzo delle Office Web Component per interrogare un Cubo Olap
Durata: 30 minuti
Presentazione di un Case Study
Sessione 8
fine quinto giorno