La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione alla tecnologia OLAP: Microsoft SQL Analisys Services

Presentazioni simili


Presentazione sul tema: "Introduzione alla tecnologia OLAP: Microsoft SQL Analisys Services"— Transcript della presentazione:

1 Introduzione alla tecnologia OLAP: Microsoft SQL Analisys Services

2 Agenda Perchè mi serve il Data Warehouse e OLAP ?
Caricamento e trasformazione dei dati (DTS) Basi dati multidimensionali (OLAP) Analysis Services step by step Caratteristiche di un database Olap Interrogare i cubi (Mdx e dintorni) Gestire la sicurezza in Analysis Services Deploy della soluzione

3 Perchè mi serve il Data Warehouse e OLAP ?

4 Perchè mi serve il Data Warehouse e OLAP ?
Dati = informazione non è sempre vero Sono organizzati per una elaborazione transazionale Non forniscono dati “attendibili” Rallentano il sistema Spesso devono essere integrati con sorgenti di diversa natura

5 Perchè mi serve il Data Warehouse e OLAP ?
La soluzione è creare un db ad-hoc per le analisi Lo scopo è di “concentrare” tutti i dati dell’ azienda in un unico punto Integra informazioni provenienti da sorgenti diverse I dati sono trasformati / “puliti” Il disegno e’ ottimizzato per la lettura Possiamo considerarlo come un db Read-Only

6 Creare il Data Warehouse
E’ un progetto molto difficoltoso : Capire e identificare gli obbiettivi della analisi Trovare le informazioni e i dati sorgenti Applicare eventuali trasformazioni / normalizzazioni per consolidare i dati Essere flessibili, riuscire a gestire cambiamenti e “modifiche nella storia”

7 Creare il 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 Base di partenza per OLAP

8 Creare il Data Warehouse
Passi per la creazione del Data Warehouse Identificare gli eventi da misurare Vendite Movimentazione di magazzino Customer satisfaction Ecc. Identificare le fonti dati I dati possono arrivare da fonti diverse ed eterogenee, non strutturate (Excel,file di testo,…) Consolidare i dati Trasformazioni per eliminare le differenze Es. Lira vs. Euro Definire processo di aggiornamento Intervallo di aggiornamento del DW

9 Creare il Data Warehouse
Data Mart Poichè il processo per la creazione di un DW è spesso lungo e difficoltoso, è possibile creare dei processi intermedi “Mini” DW tematici per rispondere ad esigenze specifiche (es. vendite, marketing, controllo di gestione ecc.) L’insieme di tutti i Data Mart costituisce il DW

10 Componenti di un modello Data Warehouse
Tabella dei fatti Contiene gli elementi da misurare es. (vendite,movimenti e transazioni ecc.) Elemento centrale del DW Misure Sono i valori che vogliamo analizzare rappresentati delle quantità es. (importi, quantità, numero di transazioni) Sono contenute nella tabella dei fatti

11 Componenti di un modello Data Warehouse
Tabella delle dimensioni Descrive e rappresenta l’entità di business Fornisce un contesto alle misure È il “per” nelle analisi Es. (Venduto PER cliente,Venduto PER prodotto) Dimensione E’ il contenuto della tabella dimensione Spesso è gerarchica Es. (Categoria -> SottoCategoria -> Prodotto)

12 Componenti di un modello Data Warehouse
Comune Prodotto Tempo Unità Fatturato Tabella delle Dimensioni Comuni Prodotti Tabella dei Fatti Misure Fatti Dimensioni

13 Componenti di un modello Data Warehouse
Esempio Dw da Northwind Introduzione al nostro Case Study DEMO

14 Struttura di un Data Warehouse
La struttura di un DW è riconducibile a 2 modelli : Star Schema (a stella) Snowflake Schema (fiocco di neve)

15 Struttura di un Data Warehouse
Star Schema Lo Star Schema è la modellizzazione più semplice ed efficace dei componenti di un DW Ogni tabella dei fatti è associata a N tabelle dimensionali Le relazioni gerarchiche all’interno di una dimensione (per es. anno/mese/giorno) vengono mantenute in una sola tabella dimensionale

16 Star Schema Employee_Dim Time_Dim Product_Dim Customer_Dim Shipper_Dim
EmployeeKey EmployeeID . Time_Dim TimeKey TheDate Product_Dim ProductKey ProductID Customer_Dim CustomerKey CustomerID Shipper_Dim ShipperKey ShipperID Sales_Fact RequiredDate Multipart Key Measures Dimensional Keys

17 Struttura di un Data Warehouse
Snowflake schema Le gerarchie all’interno delle dimensioni sono mantenute in tabelle separate È leggermente più complesso di una struttura a stella È meno efficiente

18 Caricamento e trasformazione dei dati (DTS)

19 Alimentare un Data Warehouse
Scegliere il tool appropriato: Transact-SQL Query distribuite Utility BCP (bulk copy), istruzione BULK INSERT DTS (Data Transformation Services)

20 DTS (Data Transformation Services)
Tool per automatizzare operazioni di trasformazione/trasferimento di dati Incluso in SQL Server 7/2000 Supporta qualsiasi fonte (e destinazione) OLE DB Consente di integrare ActiveX Scripts all’interno delle operazioni disponibili

21 Il Package di DTS Contiene la definizione delle attività da eseguire come parte della trasformazione Può essere eseguito dalla GUI, da scheduler, da command line, da script Ciascun package è costituito da passi (step) multipli Gli step vengono eseguiti in serie o in parallelo Fornisce un modello di “workflow” Transazioni lungo gli step

22 DTS Package Editor

23 DTS (Data Transformation Services)
DEMO !!!

24 Basi dati multidimensionali (OLAP)

25 Database OLAP I dati sono vastissimi
Le query non sempre sono “immediate” C’è bisogno di un “cane da query” Le applicazioni spesso producono report cartacei e/o fogli excel I report e/o fogli excel più che rispondere a domande le generano

26 Database 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

27 Database OLAP Atlanta Chicago Denver Grapes Cherries Detroit Melons
Products Dimension Apples Q1 Q2 Q3 Q4 Time Dimension

28 Database 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

29 Database OLAP Ogni cella è un valore
Il valore di ogni cella è l’intersezione tra dimensioni

30 Database OLAP Sales Fact Atlanta Chicago Markets Dimension Denver
Grapes Cherries Dallas Melons Apples Q1 Q2 Q3 Q4 Time Dimension

31 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

32 Analysis Services step by step

33 Analysis Server Analysis Server gestisce una base dati multidimensionale per ottimizzare l’accesso ai dati attraverso client OLAP Un database è un insieme di cubi Cubi di uno stesso database possono condividere una o più dimensioni I cubi vengono alimentati con fonti relazionali accessibili via OLE DB

34 Architettura Analysis Server
OLAP Manager Custom Applications DSO OLAP Server Data Storage ROLAP data MOLAP HOLAP Source data Cube Relational Database Client Application ADO MD OLE DB PivotTable Service

35 Analysis Manager Snap-In per MMC (Microsoft Management Console)
Consente di amministrare store e processing multidimensionali Integra diversi editor specializzati e wizard per progettare la soluzione Cube Editor Dimension Editor

36 Analysis Manager

37 Analysis Manager Passi necessari per creare un cubo
Creare un data source (la fonte dati oledb) Eseguire il wizard Selezionare la tabella dei fatti Identificare le misure Selezionare le tabelle delle dimensioni Identificare le dimensioni Star Schema Snowflake Schema Parent Child Time dimension Processare il cubo

38 Processare il cubo E’ l’operazione che “popola” il cubo
Trasferisce i dati dal Data Warehouse al database OLAP Crea le aggregazioni e somma i dati ci sono alcuni “dettagli” da considerare (li vediamo tra breve)

39 Analysis Manager Il nostro primo cubo !!! DEMO!!!

40 Caratteristiche di un database Olap

41 Cube Storage Options Lo spazio rappresenta un problema
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

42 Cube Storage Options Celle di dettaglio: 10 (di cui 2 vuote) (A)
Celle di sintesi: 14! (B) Celle complessive: 24 (C) Rapporto (C)/(A): 2.4!

43 Cube Storage Options “Data Explosion !!!” Numero di Aggregazioni
16 81 256 1024 4096 16384 65536 10000 20000 30000 40000 50000 60000 70000 2 3 4 5 6 7 8 Numero di Aggregazioni Numero di Dimensioni (4 livelli in ciascuna dimensione)

44 Cube Storage Options “Data Sparsity”
In generale, molte celle possono essere vuote, soprattutto scendendo nei dettagli

45 Cube Storage Options MOLAP, ROLAP e HOLAP Cosa sono?
Quali sono le prestazioni e l’efficienza caratteristiche di ciascuno? Come scegliere?

46 Cube Storage Options Molap : Multidimensional OLAP
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

47 Cube Storage Options ROLAP : Relational OLAP
Aggregazioni create nel RDBMS per velocizzare le query Popolazione delle tabelle via istruzioni SQL di tipo “INSERT INTO” 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 Per cubi Real Time

48 Cube Storage Options HOLAP - Hybrid OLAP : il compromesso
La via di mezzo 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

49 Cube Storage Options IMPORTANTE !!!
Aggregare al 100 % non e’ necessario: Aumenta tempo di processo e richieste di spazio Cache !!!!! Regola 80/20

50 Cube Storage Options In pratica C’è il “solito wizard”

51 Dettagli sulle dimensioni
La dimensione è composta da livelli e membri Ogni livello da dettaglio diverso (All,Bread Bagels..) Membri sono figli di un livello Livello All è il totale generale

52 Dettagli sulle dimensioni
Le dimensioni possono essere Shared o Private Shared Condivise da più cubi Amministrate in unico punto (Dimension Editor) Se ricostruisco la struttura, i cubi che la condividono non sono disponibili Non possono essere trasformate in private Più semplice la manutenzione

53 Dettagli sulle dimensioni
Le dimensioni possono essere Shared o Private Private Usate solo da un singolo cubo Gestite all’ interno del Cube Editor Ricreate ogni volta che elaboro il cubo Non possono essere trasformate in Shared

54 Dettagli sulle dimensioni
Proprietà delle dimensioni Cube editor per le Private, Dimension editor per le Shared Member Key Column: Definisce i membri in un livello Possono essere definite con espressioni Member Name Column: Definisce il “nome” per i membri di un livello Sorting Member Definisce l’ordine all’ interno di un livello DEMO!!!

55 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 Leaf Members Only Non-leaf Data Hidden Non-leaf Data Visible DEMO!!!

56 Dettagli sulle dimensioni
Dimensione tempo 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. Può essere shared Occupa meno spazio !!! DEMO !!!

57 Dettagli sulle dimensioni
Member Properties Possono avere altri campi nella tabella delle dimensioni “interessanti” ma non abbastanza da creare delle dimensioni Non occupano spazio Sono la base per creare Dimensioni Virtuali

58 Dettagli sulle dimensioni
Dimensioni virtuali Sono basate sui membri virtuali Non hanno aggregazioni Ma non aumentano spazio e tempo di elaborazione Più lente rispetto a normali dimensioni Ideali per analisi richieste da pochi utenti DEMO !!!

59 Mdx Multi-Dimensional eXpression Parte della specifica OLEDB for OLAP
Ora parte anche delle specifiche XML/A Nasce per reporting e analisi

60 Mdx Per costruire reports (“simile” a SQL)
Lo usiamo per Query Statements Per costruire reports (“simile” a SQL) Formule Membri calcolati (simile a Excel) Management (cubi locali) Alter Cube, Update Cube, etc.

61 Mdx Nuove misure Nuovi membri Average Price =
Mdx formule Nuove misure Nuovi membri Tuple based Average Price = [Sales Amount] / [Order Quantity] come riferimento Excel: =B5/B4 Set based Year To Date = Sum(PeriodsToDay(PeriodsToDate([Order Date].[Calendar Quarter]),[Order Quantity]) Come Excel ranges: =Sum(B2:B10) ([Unit Sales],ancestor(Product,[Product].[(All)]))

62 Mdx ogni cella ha un nome
([All Product], [All State], Dollars) All State Canada Mexico USA Dollars All Product Units Bread (Bread, USA, Units) Dairy (Meat, Mexico, Dollars) Meat

63 Mdx 1 membro da ogni dimensione Se piu’ dimensioni separo con ,
Tupla Coordinate multidimensionali di una cella 1 membro da ogni dimensione Se piu’ dimensioni separo con , Fa messa tra () Se una dimensione non è specificata usa membro di default o membro corrente

64 Mdx (State.CurrentMember, Time.Calendar.CurrentMember, Product.CurrentMember, [Sales Units])

65 Mdx Set Insieme di tuple

66 Mdx Dicers: assi (normalmente Column e Row)
MDX query È composta da 3 parti Dicers: assi (normalmente Column e Row) Data Grid – riempita dalla risoluzione degli assi Slicers: Filtro SELECT <Set> On Columns, <Set> On Rows FROM <Cube> WHERE <Slicers>

67 Mdx Funzioni (tra le piu’ usate) Order Head/Tail TopCount Filter
Crossjoin Generate

68 Mdx Attributi aggiuntivi Hierarchize (ordina dimensione)
NON EMPTY (toglie righe vuote) CELL PROPERTIES Formatted_Value;

69 Gestire la sicurezza in Analysis Services

70 Gestire la sicurezza in Analysis Services
Amministrativa La sicurezza e’ basata su Windows 2000 o Windows NT 4.0 Security Per amministrare Analysis Services è necessario far parte del gruppo Olap Administrators, creato al momento dell’installazione L’ autenticazione può essere effettuata tramite HTTP (IIS autentication)

71 Gestire la sicurezza in Analysis Services
Utenti 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

72 Gestire la sicurezza in Analysis Services
Il ruolo viene creato a livello di database dal Database Role Manager All’interno di ciascun cubo si possono specificare i dettagli tramite il Cube Role Manager

73 Gestire la sicurezza in Analysis Services

74 Gestire la sicurezza in Analysis Services

75 Gestire la sicurezza in Analysis Services

76 Deploy della soluzione

77 Deploying an OLAP Solution
Aggiornamento dei cubi Full Process quando : viene creato Aggiungo,elimino o modifico una misura Rebuild di una dimensione shared conseguenze : Il cubo non e’ disponibile Elaborazione lunga

78 Deploying an OLAP Solution
Aggiornamento dei cubi Incremental Update quando : Aggiungo nuovi dati al DW conseguenze : Non “costa molto” in quanto il cubo rimane disponibile

79 Deploying an OLAP Solution
Aggiornamento dei cubi Refresh quando : Ho sbagliato un aggiornamento e riparto da zero Necessità di dati da diverse data source conseguenze : Il cubo viene ricreato ma la sua struttura non cambia il cubo rimane disponibile

80 Deploying an OLAP Solution
Aggiornamento delle dimensioni (Shared) Rebuild quando : aggiungo, elimino un livello, rinomino o elimino un membro oppure lo passo di livello conseguenze : Nessun cubo interessato è disponibile ed inoltre deve prevedere un full process prima di diventarlo  Incremental Update Nuovi membri o Member Properties I cubi rimangono disponibili I nuovi membri aggiunti legati a tabelle dei fatti non ancora processate appariranno senza valore

81 Deploying an OLAP Solution
Si può automatizzare il tutto con DTS tramite l’ Olap Administrative Task DEMO !!!

82 Deploying an OLAP Solution
Backup e restore di un cubo Msmdarch utility a linea di comando per backup e restore (possibilità di schedulare) Analysis Manager (pulsante destro del mouse) Crea file .cab

83 Deploying an OLAP Solution
Per trasferire database da un server ad un altro si può fare copia incolla !!!! DEMO !!!

84 Deploying an OLAP Solution
Per installare PivotTable Services lato client nel cd di sql i percorsi sono i seguenti : MSOLAP\Install\PTS\PTSFULL.EXE MSOLAP\Install\PTS\PTSLITE.EXE

85 Le novità Reporting Services XMLA (xml for analisys) ADOMD.NET Yukon
“Capiscono” mdx Demo XMLA (xml for analisys) Analysis Services diventa un web services ADOMD.NET Managed Provvider per dot net (ancora in beta) Yukon Grandi novità….


Scaricare ppt "Introduzione alla tecnologia OLAP: Microsoft SQL Analisys Services"

Presentazioni simili


Annunci Google