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) Caratteristiche di un database Olap Analysis Services step by step Interrogare i cubi (Mdx e dintorni) Gestire la sicurezza in Analysis Services Deploy della soluzione Basi dati multidimensionali (OLAP)

3 Perchè mi serve il Data Warehouse e OLAP ?

4 Dati = informazione non è sempre vero Spesso devono essere integrati con sorgenti di diversa natura Rallentano il sistema Non forniscono dati attendibili Sono organizzati per una elaborazione transazionale

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

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 dallutente Obiettivi: –Possibilità di accedere a tutti i dati dellimpresa, centralizzati in un solo database –Coerenza e consolidamento dei dati –Velocità nellaccesso 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.) –Linsieme 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 lentità 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 ComuniComuni ProdottiProdotti TempoTempo Tabella dei Fatti MisureMisure FattiFatti DimensioniDimensioni

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 allinterno di una dimensione (per es. anno/mese/giorno) vengono mantenute in una sola tabella dimensionale

16 Star SchemaEmployee_DimEmployee_Dim EmployeeKey EmployeeID. EmployeeID. EmployeeKey Time_DimTime_Dim TimeKey TheDate. TheDate. TimeKey Product_DimProduct_Dim ProductKey ProductID. ProductID. ProductKey Customer_DimCustomer_Dim CustomerKey CustomerID. CustomerID. CustomerKey Shipper_DimShipper_Dim ShipperKey ShipperID. ShipperID. ShipperKey Sales_Fact TimeKey EmployeeKey ProductKey CustomerKey ShipperKey TimeKey EmployeeKey ProductKey CustomerKey ShipperKey RequiredDate. RequiredDate. TimeKey CustomerKey ShipperKey ProductKey EmployeeKey Multipart Key MeasuresMeasures Dimensional Keys

17 Struttura di un Data Warehouse Snowflake schema –Le gerarchie allinterno 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 allinterno 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 Detroit Denver Chicago Atlanta Q4 Q1Q2Q3 Time Dimension Cherries Grapes Apples Melons Products Dimension

28 Database OLAP Il cubo consente di rappresentare in modo intuitivo e maneggevole la dipendenza di un fatto da 3 dimensioni Lipercubo è 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 è lintersezione tra dimensioni

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

31 Database OLAP Le dimensioni ci permettono di affettare a dadi il cubo Le gerarchie allinterno 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 dallutente

32 Analysis Services step by step

33 Analysis Server Analysis Server gestisce una base dati multidimensionale per ottimizzare laccesso 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 Server OLAP Manager Custom Applications DSO OLAP Server Data Storage ROLAP data MOLAP HOLAP Source data Cube RelationalDatabase Client Application ADO MD Client Application 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 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 E loperazione 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) allinterno del cubo –Allaumentare 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 dettaglio: 10 (di cui 2 vuote) (A) Celle di sintesi: 14! (B) Celle di sintesi: 14! (B) Celle complessive: 24 (C) Celle complessive: 24 (C) Rapporto (C)/(A): 2.4! Rapporto (C)/(A): 2.4!

43 Cube Storage Options Data Explosion !!! Numero di Dimensioni Numero di Aggregazioni (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 lefficienza caratteristiche di ciascuno? –Come scegliere?

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

47 Cube Storage Options –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 ROLAP : Relational OLAP

48 Cube Storage Options –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 HOLAP - Hybrid OLAP : il compromesso

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 Possono essere definite con espressioni –Sorting Member Definisce lordine 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 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 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 Bread Dairy Meat Units Dollars (Bread, USA, Units) ([All Product], [All State], Dollars) (Meat, Mexico, Dollars) USA Canada Mexico All State

63 Mdx 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 MDX query –È composta da 3 parti –Dicers: assi (normalmente Column e Row) –Data Grid – riempita dalla risoluzione degli assi –Slicers: Filtro SELECT On Columns, On Rows FROM WHERE

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 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 dellinstallazione –L autenticazione può essere effettuata tramite HTTP (IIS autentication)

71 Utenti –Si basa sulla creazioni di ruoli allinterno di Analysis Services –Posso limitare lutente a vedere singole dimensioni, livelli, membri –Consente di arrivare alla singola cella allinterno del cubo Gestire la sicurezza in Analysis Services

72 Il ruolo viene creato a livello di database dal Database Role Manager Allinterno di ciascun cubo si possono specificare i dettagli tramite il Cube Role Manager

73 Gestire la sicurezza in Analysis Services

74

75

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 quando : –Nuovi membri o Member Properties conseguenze : –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 –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à…. Demo


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

Presentazioni simili


Annunci Google