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.