Business Intelligence: creazione del primo cubo

Stacia Misner

 

Un'ottima idea per introdurre Microsoft SQL Server Analysis Services consiste nel creare un semplice cubo contenente un campionamento dei dati degli utenti. Devo però stare molto attenta: in più di una occasione sono stata letteralmente travolta dall'entusiasmo di nuovi utenti, attratti da quanto stavo mostrando loro e intenzionati a saperne ancora di più, grazie alla possibilità di esplorare dati in modi che fino ad allora ritenevano impossibili. Indipendentemente dal fatto che si desideri esplorare i propri dati in modo più semplice o sia necessario supportare una community di utenti che consuma enormi quantità di dati, SQL Server Analysis Services (SSAS) rappresenta la soluzione ideale.

Questo articolo è il terzo di una serie. I primi due sono stati pubblicati sul numero di agosto 2009 e sono disponibili all'indirizzo technet.microsoft.com/magazine/ee263919.aspx. In questa serie vengono fornite informazioni per comprendere meglio il concetto di Business Intelligence (BI) utilizzando i componenti disponibili Microsoft SQL Server 2008 nell'ambito della creazione di una semplice soluzione di BI. Dal momento che farò riferimento a concetti e terminologia introdotti nei due articoli precedenti, è opportuno leggerli prima di passare a questo articolo.

Nell'articolo "Pianificazione della prima soluzione di Business Intelligence" ho illustrato i vantaggi correlati alla creazione di un data mart rispetto al recupero di dati direttamente da un database aziendale e fornito istruzioni per il download dei database di esempio necessari per eseguire la procedura indicata in questi articoli. Nell'articolo "Creazione di una base di dati per una soluzione di Business Intelligence" Derek Comingore ha quindi spiegato come utilizzare Integration Services per popolare un data mart con i dati del database aziendale. In questo articolo descriverò come creare un cubo basato su una progettazione di data mart analoga.

Perché sviluppare un cubo?

Nel mio primo articolo ho riepilogato i motivi da tenere presente in caso di spostamento dei dati dal database aziendale a una struttura definita data mart. Sebbene l'esecuzione di query a un data mart comporti senza dubbio alcuni vantaggi e sia probabilmente sufficiente per alcuni scenari, è possibile usufruire di ulteriori opportunità grazie al repackaging dei dati in una struttura definita cubo. Il data mart rappresenta in effetti una fermata intermedia nel percorso dei dati verso la destinazione finale nel cubo e pertanto è importante nell'ambito della soluzione complessiva.

Un ulteriore vantaggio relativo alla creazione di un cubo per ospitare i dati è rappresentato dalla possibilità di centralizzare le regole di business che non è possibile archiviare agevolmente in un data mart relazionale. La struttura del cubo agevola inoltre la scrittura di query per confrontare i dati anno per anno o creare valori cumulativi, ad esempio le vendite per l'anno corrente. 

È anche possibile gestire in modo trasparente dati aggregati nel cubo. Per migliorare le prestazioni delle query in un data mart relazionale contenente numerosi dati, gli amministratori di database creano spesso tabelle di riepilogo per preparare i dati per le query che non richiedono dettagli a livello di transazione. SSAS crea l'equivalente logico delle tabelle di riepilogo (denominate aggregazioni) mantenendole aggiornate.

In questo documento proseguirò a descrivere gli scenari introdotti nel primo articolo. Questi scenari definiscono gli obiettivi di analisi di base per la soluzione di Business Solution creata in questa serie. La soluzione deve essere in grado di mostrare il canale di vendita più proficuo per Adventure Works, Vendite Internet o Vendite rivenditore, nonché segnalare se le tendenze delle vendite indicano una crescita o una diminuzione della domanda per determinati prodotti. I dati sorgenti delle soluzioni di Business Solution sono rappresentati dal database AdventureWorksDW2008 database, che applica la modellazione dimensionale e i principi ETL descritti nell'articolo di Derek.

È possibile scaricare i database di esempio utilizzati per creare la soluzione per Adventure Works da CodePlex all'indirizzo msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407. Con un data mart disponibile come origine, è possibile compilare un database Analysis Services 2008.

Preparazione del database di Analysis Services

La prima fase consiste nel creare un progetto in Business Intelligence Development Studio (BIDS): Avviare BIDS dal gruppo di programmi di Microsoft SQL Server 2008, fare clic su File | Nuovo | Progetto. Nella finestra di dialogo Nuovo progetto scegliere Progetto di Analysis Services. Nella casella di testo Nome digitare ssas_TECHNET_AW2008 e, opzionalmente, modificare il percorso del progetto. Per creare il progetto, fare clic su OK.

Aggiungere ora un'origine dati per definire la stringa di connessione del data mart. Fare clic con il pulsante destro del mouse sulla cartella Origini dati in Esplora soluzioni e scegliere Nuova origine dati. Se non è stata disabilitata, nella pagina di benvenuto della Creazione guidata origine dati fare clic su Avanti. Nella pagina Selezione metodo di definizione connessione fare clic su Nuovo per configurare una nuova connessione. In Gestione connessione il valore predefinito è SQL Server Native Client, corretto per questo progetto, sebbene sia possibile utilizzare anche un provider OLE DB o .NET per accedere ad altri tipi di dati.

Per definire la connessione, digitare il nome del server nell'apposita casella di testo o selezionarlo dall'elenco a discesa, quindi scegliere AdventureWorksDW2008 nell'elenco a discesa dei database e fare clic su OK. A questo punto, scegliere Avanti nella Configurazione guidata origine dati. Nella pagina Impostazioni di rappresentazione fare clic sull'opzione Usa account del servizio. L'account del servizio consente di leggere i dati dall'origine in fase di caricamento dei dati nel database SSAS. A tale scopo deve disporre di diritti di lettura. Per completare la procedura guidata, fare clic su Avanti, quindi su Fine.

Creazione di una vista di origine dati

La seconda fase prevede la creazione di una vista origine dati come astrazione delle tabelle (o viste) dall'origine dati che si desidera utilizzare per definire dimensioni e cubi. È possibile apportare modifiche alla vista senza modificare l'origine dati sottostante. Questa opzione risulta particolarmente utile se si dispone di soli diritti di lettura sul data mart e non è possibile apportare modifiche all'origine. Fare clic con il pulsante destro del mouse sulla cartella Viste origine dati in Esplora soluzioni e scegliere Nuova vista origine dati.

Se necessario, fare clic su Avanti nella pagina di benvenuto. Nella pagina Selezionare un'origine dati scegliere l'origine appena aggiunta al progetto e fare clic su Avanti. Aggiungere oggetti alla vista facendo doppio clic su ogni tabella o vista necessaria. Per creare una vista origine dati che consenta di rispondere alle domande di Business Intelligence poste all'inizio dell'articolo, aggiungere le tabelle seguenti alla vista: DimDate, DimProduct, DimProductCategory, DimProductSubcategory, FactInternetSales e FactResellerSales. In fase di apprendimento dell'utilizzo di SSAS è opportuno iniziare con una vista semplice come questa. È sempre possibile aggiungere più tabelle in un secondo momento se si necessita di rispondere ad altre domande nella soluzione di Business Intelligence. Una volta aggiunte le tabelle, fare clic su Avanti nella Creazione guidata vista origine dati, quindi su Fine.

È consigliabile semplificare i nomi delle tabelle selezionandoli nel riquadro Tabelle della finestra di progettazione della vista e rimuovendo i prefissi Dim e Fact dalla proprietà FriendlyName di ogni tabella. Le procedure guidate utilizzate per creare dimensioni e cubi impiegheranno quindi i valori della proprietà FriendlyName per assegnare nomi agli oggetti. La vista origine dati completa è indicata nella Figura 1.

Figure 1: Data Source View

Figura 1: Vista origine dati

Oltre a modificare le proprietà di una tabella nella vista origine dati, è possibile definire chiavi primarie o relazioni logiche tra tabelle se non sono già state definite nell'origine fisica. SSAS non sarà in grado di visualizzare i dati in modo corretto senza queste definizioni a livello fisico nel livello dei dati e a livello logico nella vista. È inoltre possibile aggiungere un calcolo denominato, analogo all'aggiunta di una colonna derivata a una vista, o sostituire l'oggetto tabella con una query denominata, analoga alla creazione di una vista.

Precedentemente alla fase di compilazione della dimensione della data in SSAS, è necessario aggiungere due calcoli denominati alla tabella Date (Trimestre e Mese) per concatenare la colonna dell'anno con le colonne del trimestre e del mese. In caso contrario i dati non verranno riportati in modo corretto per mese, trimestre e anno se si desidera visualizzarli in formato di riepilogo. Per aggiungere il calcolo denominato per il trimestre, fare clic con il pulsante destro del mouse sulla tabella Date nella finestra di progettazione o nel riquadro Tabelle, quindi scegliere Nuovo calcolo denominato. Nella casella di testo Nome colonna digitare Trimestre. Nella casella di testo Espressione digitare l'espressione seguente.

'Qtr ' + convert(char(1), CalendarQuarter) + ' ' + convert(char(4), CalendarYear)

Fare clic su OK e ripetere questi passaggi per aggiungere il calcolo denominato per il mese utilizzando l'espressione seguente:

left(EnglishMonthName, 3) + ' ' + convert(char(4), CalendarYear)

La tabella Date nella finestra di progettazione (illustrata nella Figura 2) contiene i calcoli denominati con l'icona di una calcolatrice per distinguerli dalle colonne fisicamente presenti nella tabella. È possibile osservare l'effetto dell'aggiunta dei calcoli denominati facendo clic con il pulsante destro del mouse sulla tabella e scegliendo Esplora dati. Verrà visualizzata una nuova finestra in BIDS contenente i dati della tabella di origine.

Scorrendo completamente a destra è possibile visualizzare i valori dei calcoli denominati. Utilizzare sempre il comando Esplora dati per confermare che i calcoli denominati vengano visualizzati nel modo desiderato prima di procedere con la creazione delle dimensioni.

Definizione delle dimensioni in Analysis Services

Dopo aver aggiunto tabelle di dimensioni alla vista origine dati, è possibile passare alla creazione di dimensioni nel database SSAS. Ricordare che una dimensione consente di archiviare informazioni su entità business, ad esempio persone, luoghi e cose. Per poter rispondere alle domande di Business Intelligence poste all'inizio dell'articolo, è necessario creare dimensioni per data e prodotto.
Per aggiungere una dimensione al progetto, avviare la Creazione guidata dimensione facendo clic con il pulsante destro del mouse sulla cartella Dimensioni in Esplora soluzioni e scegliere Nuova dimensione. Nella pagina Selezione metodo di creazione mantenere la selezione predefinita per utilizzare una tabella esistente, poiché la vista origine dati include la tabella DimDate. Nei casi in cui è possibile compilare un database semplice basato su una tabella transazionale di piccole dimensioni contenente dati, è possibile evitare di compilare un data mart e utilizzare invece una delle altre opzioni di questa pagina per generare una tabella dei tempi nell'origine dati o nel server.

Figure 2 Date Table with Named Calculations

Figura 2 Tabella Date con calcoli denominati

In qualunque caso occorre fornire una data di inizio e una data di fine per i dati della tabella transazionale. SSAS è in grado di creare e popolare una tabella fisica nell'origine dati utilizzata per popolare la dimensione gestita nel database SSAS oppure di gestire semplicemente la dimensione in modo esclusivo nel database SSAS.

È possibile scegliere di generare la tabella fisica qualora fosse necessario supportare query relazionali all'origine dati. Fare clic su Avanti per continuare.

Nella pagina Impostazione informazioni origine selezionare Data nell'elenco a discesa Tabella principale. La colonna chiave è DateKey e deve identificare in modo univoco ogni record della tabella per consentire a SSAS di aggregare o raggruppare in modo corretto i dati in fase di restituzione dei risultati delle query. Selezionare quindi FullDateAlternateKey nell'elenco di riepilogo a discesa Nome colonna. SSAS utilizza la colonna del nome come etichetta da mostrare all'utente, anziché visualizzare la colonna chiave.

Scegliere Avanti.

Nella pagina Selezione attributi dimensione scegliere gli attributi da includere nella dimensione, utilizzati per definire gerarchie o ulteriori etichette di raggruppamento.

L'aggiunta di tutti gli attributi della tabella di dimensioni è legata ai tipi di domande che si desidera supportare nella soluzione di Business Intelligence. Aggiungere solo gli attributi necessari per garantire il funzionamento ottimale di SSAS, evitando così di consumare spazio di archiviazione non necessario e confondere gli utenti con troppe opzioni. Per questa dimensione selezionare Anno di calendario, Trimestre e Mese. Fare clic su Avanti e quindi su Fine.

Per garantire la possibilità di identificare in modo univoco ciascun attributo, aggiornare la proprietà KeyColumn. Impostando questa proprietà per le colonne chiave, il mese verrà ordinato correttamente in sequenza numerica anziché in ordine alfabetico per nome del mese (ordinamento predefinito).

Per aggiornare la proprietà KeyColumn, selezionare Mese nel riquadro Attributi a sinistra. Nella finestra Proprietà fare clic sulla colonna KeyColumns e quindi sul pulsante con i puntini di sospensione. Nella finestra di dialogo Colonne chiave fare clic sulla freccia sinistra per cancellare l'assegnazione corrente, quindi fare doppio clic su CalendarYear e MonthNumberOfYear. Assegnare ora un'etichetta all'attributo facendo clic sul pulsante con i puntini di sospensione nella casella della proprietà NameColumns. Scegliere EnglishMonthName e fare clic su OK.

Ripetere la procedura per impostare la proprietà KeyColumns dell'attributo Trimestre su CalendarYear e CalendarQuarter e la proprietà NameColumns su Quarter.
La dimensione verrà quindi visualizzata in Esplora soluzioni come Date.dim e la finestra di progettazione della dimensione (indicata nella Figura 3) conterrà lo spazio di lavoro principale in BIDS.

Date Dimension

Figura 3 Dimensione Data mostrata nella finestra di progettazione

È possibile visualizzare la dimensione con i relativi attributi associati, incluso l'attributo chiave, nel riquadro Attributi a sinistra. Se in un secondo momento si deciderà di aggiungere altri attributi, è possibile trascinarli uno per volta dal riquadro Vista origine dati al riquadro Attributi. La Creazione guidata dimensione viene utilizzata solo in fase di creazione di una nuova dimensione, ma è possibile apportare qualsiasi modifica in un secondo momento nella finestra di progettazione della dimensione.

Utilizzare ora la Creazione guidata dimensione per creare la dimensione Prodotto, utilizzando Product come tabella principale ed EnglishProductName come colonna dei nomi. Poiché questa dimensione è uno schema snowflake, la procedura guidata include una pagina aggiuntiva per confermare che si desidera includere le relative tabelle, ProductSubcategory e ProductCategory.

Aggiungere quindi gli attributi Colore e Dimensione alla dimensione. La procedura guidata seleziona automaticamente le colonne chiave per le tabelle snowflake, Product Subcategory Key e Product Category Key. È necessario aggiungervi le colonne dei nomi corrispondenti per questi attributi, ma è in primo luogo necessario completare la procedura per poter modificare le proprietà dell'attributo. 

Una volta visualizzata la finestra di progettazione della dimensione, selezionare Product Category Key nel riquadro Attributi. Nelle proprietà individuare la proprietà Name e modificare il nome in Categoria. Scorrere verso il basso la finestra delle proprietà per individuare la proprietà NameColumn.

Fare clic sulla casella di testo della proprietà per visualizzare il pulsante con i puntini di sospensione, premere il pulsante, selezionare EnglishProductCategoryName e fare clic su OK. Ripetere ora la procedura per rinominare Product Subcategory Key in Subcategory e per specificare EnglishProductSubcategoryName come colonna del nome. Rinominare infine l'attributo Chiave prodotto come Prodotto.

Aggiunta di gerarchie

Osservare la linea ondulata blu al di sotto del nome della dimensione, Prodotto, nel riquadro Attributi. Passando il mouse su questa riga, viene visualizzato un messaggio di avviso: "Creare gerarchie in dimensioni figlio non padre". Si tratta di un esempio di avviso di procedure consigliate sviluppato in SSAS 2008 per compilare un database SSAS in modo corretto. Tornare alla finestra di progettazione della dimensione Data, facendo clic sull'apposita scheda nello spazio di lavoro del documento oppure doppio clic su Date.dim in Esplora soluzioni, per visualizzare lo stesso messaggio.

L'aggiunta di una gerarchia a una dimensione viene considerata una procedura ottimale per vari motivi, in particolare a fini di praticità e ottimizzazione. Nello specifico, una gerarchia fornisce un percorso di navigazione che gli utenti dovranno seguire dai dati di riepilogo ai dati dettagliati. Consente inoltre di ottimizzare le prestazioni delle query, permettendo l'elaborazione e l'archiviazione di aggregazioni da parte di SSAS in precedenza rispetto alle query degli utenti.

Se ad esempio l'utente desidera visualizzare le vendite del rivenditore per anno e una gerarchia nella dimensione Data definisce il percorso di rollup dall'attributo chiave (Chiave data) all'attributo Anno di calendario, è possibile calcolare i dati di vendita in fase di elaborazione e quindi inserire i risultati in un'archiviazione permanente. Questa archiviazione di aggregazioni elimina la necessità di elaborare le vendite di ogni anno in fase di query e rappresenta la differenza chiave tra il recupero di dati da un data mart relazionale e da un database multidimensionale come SSAS.

Per aggiungere una gerarchia alla dimensione Data, trascinare l'attributo Anno di calendario dal riquadro Attributi al riquadro Gerarchia nella finestra di progettazione della dimensione. Dopo aver aggiunto il primo attributo, verrà visualizzato un oggetto gerarchia con un nuovo livello vuoto al di sotto dell'attributo appena aggiunto. Aggiungere gli attributi Trimestre e Mese alla gerarchia trascinando ognuno di essi nello spazio del livello vuoto. Rinominare quindi la gerarchia facendo clic con il pulsante destro del mouse su Gerarchia, scegliendo Rinomina e digitando Anno.

Sebbene sia stata aggiunta una gerarchia, verrà comunque visualizzato un avviso per la dimensione Data. Passare il mouse sulla linea per visualizzare un nuovo avviso. "Evitare gerarchie di attributi visibili per attributi utilizzati come livelli in gerarchie definite dall'utente". Questo messaggio suggerisce di evitare di visualizzare un attributo se è stato incluso in una gerarchia. In altre parole, un utente dovrebbe visualizzare l'attributo solo esplorando la gerarchia.

Per mia esperienza è opportuno prendere questa decisione insieme agli utenti. Se si decide di tenere conto di questo avviso, selezionare Trimestre nel riquadro Attributi e quindi modificare il valore di AttributeHierarchyVisible in False nella finestra Proprietà.

Relazioni tra attributi

Viene visualizzato un altro avviso nella gerarchia stessa. In questo caso il messaggio indica che potrebbe verificarsi un problema nelle prestazioni, in quanto tra uno o più livelli della gerarchia non sono presenti relazioni tra attributi. Le relazioni tra attributi vengono utilizzate in SSAS per ottimizzare le prestazioni delle query e la progettazione dell'aggregazione, ridurre la quantità di archiviazione necessaria per una dimensione e velocizzare i tempi di elaborazione del database.

Fare clic sulla scheda Relazioni tra attributi nella finestra di progettazione della dimensione. Questa scheda è disponibile solo se si utilizza Analysis Services 2008. Per impostazione predefinita tutti gli attributi fanno riferimento direttamente all'attributo chiave, Chiave data. Per ottimizzare la progettazione riassegnando relazioni, trascinare l'oggetto Mese sull'oggetto Trimestre, quindi trascinare quest'ultimo sull'oggetto Anno. La relazione nella finestra di progettazione rappresenta ora in modo corretto la relazione molti-a-uno tra ogni livello da sinistra a destra, come indicato nella Figura 4.

Attribute Relationships

Figura 4 Relazioni tra attributi

Aggiungere ora una gerarchia alla dimensione Prodotto denominata Categorie contenente Categoria, Sottocategoria e Prodotto dall'alto in basso. Dopo aver creato la gerarchia non sarà necessario correggere le relazioni tra attributi tra i livelli, poiché le relazioni tra chiavi esterne tra le tabelle sono già definite nella vista origine dati. È tuttavia possibile impostare il valore della proprietà AttributeHierarchyVisible su False.

Il progetto contiene ora due dimensioni con relazioni tra attributi e gerarchie correttamente definiti. Acquisendo sempre più familiarità con la progettazione della dimensione, gli utenti scopriranno diverse proprietà disponibili per ottimizzare le prestazioni e controllare il comportamento specifico nell'interfaccia utente.

È inoltre possibile disporre di molte altre dimensioni in soluzioni di Business Intelligence più complesse. A questo punto, tuttavia, sono state acquisite le nozioni di base delle dimensioni e si dispone degli elementi necessari per continuare a sviluppare una soluzione utilizzabile creando un cubo.

Creazione di un cubo

In modo analogo alla Creazione guidata dimensione, che consente di avviare il processo di definizione delle dimensioni, la Creazione guidata cubo consente di avviare il processo di creazione di un cubo. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Cubi, scegliere Nuovo cubo e quindi Avanti nella pagina di benvenuto, se applicabile. Nella pagina Selezione metodo di creazione mantenere l'opzione predefinita. Utilizzare le altre due opzioni nel caso in cui si desideri creare una progettazione manualmente o con un modello e fare in modo che SSAS generi tabelle nell'origine dati in base a tale progettazione, che sarà necessario popolare con dati mediante Integration Services prima di poter esplorare il cubo. Scegliere Avanti.

Nella pagina Selezione tabelle del gruppo di misure fare clic su Vendite Internet e Vendite rivenditore e quindi su Avanti. Le tabelle del gruppo misure corrispondo alle tabelle dei fatti. Nella procedura guidata verranno quindi visualizzate tutte le colonne numeriche rilevate nelle tabelle del gruppo misure selezionate. Coerentemente all'approccio utilizzato finora, cancellare tutte le misure deselezionando la casella di controllo Misura nella parte superiore della pagina, quindi selezionare le misure seguenti in ogni gruppo (Vendite Internet e Vendite rivenditore): Quantitativo ordine, Costo totale prodotto e Importo vendite.

In questa pagina è inoltre possibile rinominare le misure. È sufficiente fare clic con il pulsante destro del mouse sul nome della misura e digitare il nuovo nome, che deve essere univoco. Il nome della misura deve essere breve, ma non al punto da essere criptico. Rinominare le misure nel gruppo Vendite Internet come indicato di seguito: Quantitativo ordine Internet, Costo Internet e Vendite Internet. In modo analogo, rinominare le misure Vendite rivenditore in Quantitativo ordine rivenditore, Costo rivenditore e Vendite rivenditore. Scegliere Avanti.

Nella pagina Selezione dimensioni esistenti vengono visualizzate le dimensioni già create. Scegliere Avanti. Se ad alcune tabelle nella vista origine dati non si fa ancora riferimento come tabelle del gruppo misure o da parte di una dimensione esistente, verrà visualizzata la pagina Selezione dimensioni esistenti per consentire di aggiungere in modo rapido qualsiasi altra dimensione necessaria. In questo caso deselezionare Vendite Internet e Vendite rivenditore, in quanto queste tabelle create come dimensioni non saranno necessarie. Sebbene si tratti tecnicamente di tabelle del gruppo misure, la presenza di numeri di ordini di vendita nelle tabelle consentirebbe di creare dimensioni per supportare la creazione di report o analisi delle vendite per numero di ordine.

Fare clic su Avanti, rinominare il cubo come Vendite e scegliere Fine. Complimenti!

È stato creato un cubo semplice! Nella finestra di progettazione del cubo vengono visualizzati i gruppi di misure e le dimensioni aggiunti al cubo nei riquadri a sinistra e la vista origine dati a destra, come indicato nella Figura 5.

Cube Designer Showing Measure Groups and Dimensions

Figure 5 Finestra di progettazione del cubo contenente gruppi di misure e dimensioni

Il primo passaggio successivo alla creazione di un cubo consiste nel configurare la proprietà FormatString di ogni misura, per agevolare la visualizzazione dei valori nel visualizzatore cubi. Il modo più semplice è rappresentato dalla visualizzazione delle misure in una griglia. Nella barra degli strumenti della finestra di progettazione del cubo fare clic sul quinto pulsante da sinistra per passare dalla visualizzazione albero alla visualizzazione griglia e viceversa. Nella visualizzazione griglia è possibile utilizzare il tasto CTRL per selezionare più misure contemporaneamente. Selezionare in primo luogo Quantitativo ordine Internet e Quantitativo ordine rivenditore. Nell'elenco a discesa Stringa formato della finestra Proprietà scegliere Standard. Selezionare quindi tutte le misure rimanenti per impostare la proprietà FormatString su Currency.

Aggiunta di calcoli

Un'efficace funzionalità di SSAS consiste nella capacità di aggiungere calcoli mediante il linguaggio Espressione MDX. Se si è in grado di scrivere formule in Excel, è possibile creare calcoli nel cubo mediante espressioni MDX semplici. Per espressioni più complesse sarà necessario conoscere MDX in modo approfondito con una serie di nozioni ed esercitazioni pratiche.

Tenere presente che uno degli obiettivi di progettazione di questa soluzione è rappresentato dal calcolo della redditività per canale di vendita. Il cubo include ora le misure necessarie per calcolare la redditività: Costo Internet, Vendite Internet, Costo rivenditore e Vendite rivenditore. La differenza tra vendite e costi è rappresentata dal margine lordo, ma il calcolo fornisce dollari assoluti, inutili per il confronto tra canali. Oltre al margine lordo è necessario calcolare la relativa percentuale dividendo il margine lordo per l'importo delle vendite.

Nella finestra di progettazione del cubo fare clic sulla scheda Calcoli, la terza da sinistra. Premere il pulsante Nuovo membro calcolato nella barra degli strumenti, il quinto da sinistra. Nella casella di testo Nome digitare [Margine lordo Internet].

Le parentesi sono obbligatorie se il nome include spazi. Nella casella di testo Espressione digitare [Vendite Internet] - [Costo Internet] e quindi scegliere "Currency" nell'elenco a discesa Stringa formato. Ripetere ora questi passaggi per aggiungere i calcoli indicati nella Figura 6.

Nome Espressione Stringa formato
[Margine lordo rivenditore] [Vendite rivenditore] - [Costo rivenditore] "Currency"
[Percentuale margine lordo Internet] [Margine lordo Internet] / [Vendite Internet] "Percent"
[Percentuale margine lordo rivenditore] [Margine lordo rivenditore] / [Vendite rivenditore] "Percent"

Figura 6 Aggiunta di calcoli al cubo

Distribuzione di un database di Analysis Services da BIDS

Fino a questo momento, sebbene abbiamo creato gli oggetti necessari per creare un database SSAS nel server, il database ancora non esiste. Le attività di progettazione eseguite in BIDS creano file XML che è necessario distribuire al server.

Una volta distribuiti i file, è possibile elaborare il database, che esegue i comandi necessari per compilare le strutture di archiviazione definite dai file XML e popolare tali strutture eseguendo query all'origine dati specificata.

In BIDS tutte queste attività vengono avviate facendo clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e quindi scegliendo Distribuisci. Verrà visualizzata la finestra Stato distribuzione, contenente ogni passaggio eseguito e l'esito positivo o negativo.

Dopo aver distribuito un progetto, è comunque possibile apportare modifiche nelle finestre di progettazione. È sufficiente distribuire nuovamente il progetto come descritto in precedenza per spostare le modifiche al server e avviare l'elaborazione. Se viene indicato che il database verrà sovrascritto, fare clic su Sì se si è certi di essere l'unica persona ad apportare modifiche al database.

A volte la modifica apportata non attiva il comando per elaborare il database dopo la distribuzione. In questo caso è sufficiente fare clic con il pulsante destro del mouse sulla dimensione o sul cubo modificato, quindi fare clic su Elabora ed Esegui. Se si elabora una dimensione mediante l'opzione di elaborazione completa (necessaria se si apporta una modifica strutturale di un certo rilievo alla dimensione), potrebbe essere necessario elaborare anche il cubo.

Esplorazione del cubo in BIDS

A ogni stadio di sviluppo, se la soluzione è stata distribuita ed elaborata, è possibile controllare l'avanzamento dal punto di vista dell'utente. Nella finestra di progettazione del cubo fare clic sulla scheda di esplorazione. Nel riquadro sinistro sono visualizzati gli oggetti del database SSAS in un albero di metadati (illustrato nella Figura 7). Il nodo superiore dell'albero è il cubo. Espandere il nodo Misure e le relative cartelle per visualizzare tutte le misure disponibili, quindi espandere i nodi Data ordine e Prodotto per visualizzare gli attributi in queste dimensioni.

Sales cube

Figura 7 Albero di metadati del cubo Vendite

È lecito chiedersi per quale motivo il cubo contenga Scadenza, Data ordine e Data spedizione se è stata creata solo una dimensione Data. Queste dimensioni del cubo vengono definite dimensioni con ruoli multipli, poiché rappresentano diverse versioni logiche della stessa dimensione.

Vengono automaticamente visualizzate nel cubo quando si include la dimensione Data, poiché la tabella dei fatti contiene tre colonne chiave esterne diverse che fanno tutte riferimento all'unica tabella su cui si basa la dimensione Data per tracciare l'ordine, la spedizione e le scadenze in modo separato. Se questi date con ruoli multipli non sono utili per l'analisi, è possibile eliminarle nella pagina Struttura cubo della finestra di progettazione.

Per visualizzare i dati del cubo, trascinare oggetti dall'albero dei metadati alla griglia al centro della finestra di progettazione, iniziando da Vendite Internet, che verrà spostato nell'area etichettata Rilasciare qui i campi Totali o Dettaglio.

Ripetere quindi il processo per aggiungere Percentuale margine lordo Internet, Vendite rivenditore e Percentuale margine lordo rivenditore alla griglia. Ora che i risultati di questa semplice query sono visibili nel visualizzatore cubi (come indicato nella Figura 8), è possibile notare che le vendite Internet sono decisamente più redditizie delle vendite rivenditore.

Query result

Figura 8 Risultati delle query nel visualizzatore cubi

È possibile continuare a esplorare questi risultati trascinando attributi nelle sezioni della griglia per righe, colonne o filtri, definiti collettivamente assi, o trascinando attributi e misure al di fuori della griglia. Il processo di aggiunta di oggetti agli assi per ridefinire la query è denominato slice-and-dice dagli utenti di Business Solutions e costituisce un metodo rapido di eseguire query ai dati senza scrivere codice. Ad esempio, per dividere in sezioni (slice) in base all'anno, trascinare Data ordine.anno nella sezione etichettata Rilasciare qui i campi riga.

Poiché Data ordine.anno è una gerarchia (come indicato dall'icona a forma di piramide), è possibile eseguire il drill-down per dividere in sezioni in base al trimestre espandendo uno o più anni. In modo analogo, per frammentare (dice) in base alla categoria, trascinare Categorie nell'asse delle colonne al di sopra delle misure.

Dopo aver posizionato oggetti in righe o colonne, è possibile filtrare l'elenco di elementi facendo clic sulla freccia nella didascalia. Per rimuovere Componenti dalla griglia, fare clic sulla freccia nella didascalia Categoria, deselezionare la casella di controllo Componenti e fare clic su OK. Successivamente, per semplificare la vista, trascinare Vendite Internet e Vendite rivenditore al di fuori della griglia. È ora possibile confrontare senza difficoltà la redditività dei canali Internet e Rivenditore per anno e trimestre e per categoria di prodotto, come illustrato nella Figura 9.

Profitability

Figura 9 Redditività dei canali di vendita per anno e trimestre e per categoria

Condivisione dei cubi con utenti

Per impostazione predefinita, il cubo è accessibile solo dall'amministratore del server. Tuttavia, una volta distribuito il cubo in Analysis Server, è possibile impostare autorizzazioni per concedere agli utenti l'accesso e consentire loro di utilizzare gli strumenti preferiti per esplorare il cubo. Microsoft Excel 2007 è una scelta molto diffusa per un'esplorazione interattiva, ma è possibile utilizzare anche Reporting Services per distribuire report in base ai dati del cubo, come spiegherò in uno dei miei prossimi articoli.

Applicazione delle nuove competenze

Dopo aver creato un database di piccole dimensioni con i dati AdventureWorks di esempio, è opportuno applicare quanto appreso ai dati personali, creando un cubo semplice. Con una progettazione semplice e un set di dati di dimensioni relativamente ridotte (contenente ad esempio meno di qualche milione di righe), è possibile creare un database senza dover creare e gestire un data mart. È sufficiente configurare una vista origine dati per eseguire query all'origine mediante query denominate che strutturano i dati nel modo più simile possibile a uno schema star. Se l'origine dati dispone di nuovi dati, è sufficiente eseguire un processo completo del database SSAS per mantenerlo aggiornato con l'origine dati.

Se è necessario inserire più dati in un cubo, è opportuno approfondire il discorso SSAS nella documentazione online e in altre risorse, poiché in questo articolo vengono illustrati solo i punti di base necessari per creare un cubo semplice. All'inizio di questo articolo ho ad esempio solo accennato al fatto che un vantaggio di SSAS è rappresentato dalla gestione delle aggregazioni. Spiegare nello specifico questo concetto non rientra nell'ambito dell'articolo.

Ulteriori informazioni su aggregazioni e altri argomenti avanzati sono contenuti nel libro "Microsoft SQL Server 2008 Analysis Services Step by Step" (Microsoft Press, 2009), recentemente pubblicato da un mio amico, Scott Cameron, con cui ho lavorato fin dagli inizi della mia carriera nel settore di Business Intelligence, molti anni fa. Dopo aver creato il primo cubo, è consigliabile continuare a esercitarsi e approfondire la questione per poter sviluppare cubi più complessi e sfruttare al meglio la piattaforma di Business Intelligence di Microsoft.

Stacia Misner*, docente, autrice e consulente di Business Intelligence, nonché fondatrice e dirigente di Data Inspirations, lavora da 25 anni nel settore dell'IT, nove dei quali dedicati alle Business Solution di Microsoft. Misner ha pubblicato diversi scritti su Business Solution e SQL Server. L'ultima opera, "Microsoft SQL Server 2008 Reporting Services Step by Step" (Microsoft Press, 2009), è stata pubblicata agli inizi di quest'anno. È possibile contattarla all'indirizzo smisner@datainspirations.com.*

 

Ulteriori risorse

Sviluppo di Analysis Services (documentazione online)
msdn.microsoft.com/library/bb500183.aspx

Sicurezza di Analysis Services (documentazione online)
msdn.microsoft.com/library/ms175386.aspx

Video su Analysis Services 2008 (documentazione online)
msdn.microsoft.com/library/dd299422.aspx