Definizione della granularità della dimensione in un gruppo di misure
È possibile dimensionare le tabelle dei fatti a diversi livelli di dettaglio o granularità a seconda degli scopi. È ad esempio possibile registrare per ogni giorno i dati relativi alle vendite per rivenditore o le vendite effettuate tramite Internet, mentre le informazioni sulle quote di vendita esistono solo per il mese o il trimestre. In questi casi è possibile che la dimensione temporale abbia un livello di dettaglio diverso per ognuna di queste diverse tabelle dei fatti. Sebbene sia possibile definire una nuova dimensione del database come dimensione temporale con tale diverso livello di dettaglio, in Microsoft SQL Server 2005 Analysis Services (SSAS) è disponibile un modo più semplice.
Per impostazione predefinita in SQL Server 2005 Analysis Services, quando si utilizza una dimensione in un gruppo di misure, il livello di dettaglio dei dati della dimensione è basato sull'attributo chiave della dimensione stessa. Ad esempio, quando una dimensione temporale è inclusa in un gruppo di misure e il livello di dettaglio predefinito della dimensione temporale è giornaliero, il livello di dettaglio predefinito della dimensione nel gruppo di misure è anch'esso giornaliero. In molti casi ciò risulta appropriato, ad esempio per i gruppi di misure Internet Sales e Reseller Sales di questa esercitazione. Quando tuttavia una dimensione di questo tipo è inclusa in altri tipi di gruppi di misure, quali gruppi di misure relative a budget o quote di vendita, risulta generalmente più appropriato un livello di dettaglio mensile o trimestrale.
Per specificare un livello di dettaglio per la dimensione del cubo diverso da quello predefinito si modifica l'attributo di granularità per la dimensione del cubo come fosse utilizzata in un particolare gruppo di misure nella scheda Utilizzo dimensione di Progettazione cubi. Quando il livello di dettaglio di una dimensione in un gruppo di misure specifico viene modificato in un attributo diverso dall'attributo chiave della dimensione, è necessario garantire che tutti gli altri attributi del gruppo di misure siano direttamente o indirettamente correlati al nuovo attributo di granularità. A tale scopo, specificare le relazioni tra tutti gli altri attributi e l'attributo specificato come l'attributo di granularità del gruppo di misure. In questo caso si definiscono ulteriori relazioni tra attributi anziché spostare quelle esistenti. L'attributo specificato come attributo di granularità diventa l'attributo chiave all'interno del gruppo di misure per gli attributi rimanenti nella dimensione. Se le relazioni tra gli attributi non vengono specificate in modo appropriato, Analysis Services non sarà in grado di aggregare correttamente i valori, come mostrato nelle attività di questo argomento.
Per ulteriori informazioni, vedere Relazioni tra dimensioni e Definizione di una relazione di tipo Regolare e delle relative proprietà.
Nelle attività di questo argomento verrà aggiunto un gruppo di misure Sales Quotas e la granularità della dimensione Time in questo gruppo di misure verrà definita a livello mensile. Verranno quindi definite le relazioni tra l'attributo mese e gli altri attributi della dimensione per garantire che Analysis Services sia in grado di aggregare correttamente i valori.
Aggiunta di tabelle e definizione del gruppo di misure Sales Quotas
Per aggiungere tabelle e definire il gruppo di misure Sales Quotas
Passare alla Progettazione vista origine dati per la vista origine dati Adventure Works DW.
Fare clic con il pulsante destro del mouse su un punto qualsiasi del riquadro Libreria diagrammi, scegliere Nuovo diagramma e quindi specificare Sales Quotas come nome del nuovo diagramma. Per ulteriori informazioni, vedere Utilizzo di diagrammi in una vista origine dati (Analysis Services).
Trascinare le tabelle Employee, Sales Territory e Time dal riquadro Tabelle al riquadro Diagramma.
Aggiungere la tabella FactSalesQuota al riquadro Diagramma facendo clic con il pulsante destro del mouse su un punto qualsiasi del riquadro Diagramma e scegliendo Aggiungi/Rimuovi tabelle.
Si noti che la tabella SalesTerritory è collegata alla tabella FactSalesQuota tramite la tabella Employee.
Esaminare le colonne nella tabella FactSalesQuota e quindi esplorarne i dati.
Si noti che il livello di dettaglio dei dati contenuti nella tabella è il trimestre di calendario, che rappresenta il livello di dettaglio più basso nella tabella FactSalesQuota.
In Progettazione vista origine dati modificare la proprietà FriendlyName della tabella FactSalesQuota in SalesQuotas.
Passare alla Progettazione cubi per il cubo Analysis Services Tutorial e quindi selezionare la scheda Struttura cubo.
Fare clic con il pulsante destro del mouse su un punto qualsiasi all'interno del riquadro Misure, scegliere Nuovo gruppo di misure, scegliere SalesQuotas nella finestra di dialogo Nuovo gruppo di misure e quindi fare clic su OK.
Il gruppo di misure Sales Quotas verrà visualizzato nel riquadro Misure. Si noti che nel riquadro Dimensioni è definita una nuova dimensione Time del cubo basata sulla dimensione Time del database. Viene definita una nuova dimensione temporale del cubo poiché Analysis Services non è in grado di stabilire quale dimensione temporale esistente del cubo correlare alla colonna TimeKey nella tabella dei fatti FactSalesQuota sottostante al gruppo di misure Sales Quotas. Questa modifica verrà eseguita più avanti in un'altra attività di questo argomento.
Espandere il gruppo di misure Sales Quotas.
Si noti che sono definite tre nuove misure.
Nel riquadro Misure selezionare Sales Amount Quota e quindi impostare il valore della proprietà FormatString su Currency nella finestra Proprietà.
Selezionare la misura Sales Quotas Count e quindi impostare il valore della proprietà FormatString su #,# nella finestra Proprietà.
Eliminare la misura Calendar Quarter dal gruppo di misure Sales Quotas.
Analysis Services ha individuato la colonna sottostante la misura Calendar Quarter come una colonna contenente misure. Questa colonna e la colonna CalendarYear, tuttavia, contengono i valori che saranno utilizzati più avanti in questo argomento per collegare il gruppo di misure Sales Quotas alla dimensione Time.
Nel riquadro Misure fare clic con il pulsante destro del mouse sul gruppo di misure Sales Quotas e quindi scegliere Nuova misura. Per ulteriori informazioni, vedere Definizione e configurazione di una misura.
Si visualizzerà la finestra di dialogo Nuova misura contenente le colonne di origine disponibili per una misura con un tipo di utilizzo di Somma.
Nella finestra di dialogo Nuova misura selezionare Distinct count nell'elenco Utilizzo, verificare che SalesQuotas sia selezionato nell'elenco Tabella di origine, selezionare EmployeeKey nell'elenco Colonna di origine e quindi fare clic su OK.
Si noti che la misura viene creata in un nuovo gruppo di misure denominato Sales Quotas 1. Le misure Distinct Count in Microsoft SQL Server 2005 vengono create nei gruppi di misure per ottimizzare le prestazioni di elaborazione.
Cambiare il valore della proprietà Name per la misura Employee Key Distinct Count in Sales Person Count e quindi impostare il valore della proprietà FormatString su #,#.
Visualizzazione delle misure nel gruppo di misure Sales Quota in base al valore temporale
Per visualizzare le misure nel gruppo di misure Sales Quota in base al valore temporale
Scegliere Distribuisci Analysis Services Tutorial dal menu Genera.
Al termine delle operazioni di distribuzione, selezionare la scheda Esplorazione in Progettazione cubi per il cubo Analysis Services Tutorial e quindi fare clic su Riconnetti.
Deselezionare tutte le gerarchie e le misure dal riquadro Dati e quindi eliminare il membro della dimensione dal riquadro Filtro.
Espandere il gruppo di misure Sales Quotas nel riquadro Metadati e quindi aggiungere la misura Sales Amount Quota all'area dei dati.
Aggiungere la gerarchia definita dall'utente Sales Territories della dimensione Sales Territory all'area colonna.
Si noti che la dimensione del cubo Sales Territory non è correlata, direttamente o indirettamente, alla tabella Fact Sales Quota come illustrato nella figura seguente.
Nell'attività successiva di questo argomento verrà definita una relazione della dimensione di riferimento tra la dimensione e la tabella dei fatti.
Nel riquadro Dati fare clic sulla freccia rivolta verso il basso accanto a Sales Territory Group e quindi deselezionare tutte le caselle di controllo ad eccezione di North America per modificare i membri della dimensione visualizzati in Sales Territory Group in North America.
Nel riquadro Metadati espandere Time e quindi Fiscal.
Aggiungere la gerarchia utente Time.Fiscal Time all'area riga, quindi fare clic sulla freccia rivolta verso il basso accanto a Fiscal Year nel riquadro Dati e deselezionare tutte le caselle di controllo ad eccezione di FY 2004 per visualizzare soltanto l'anno fiscale 2004.
Nel riquadro Dati espandere FY 2004, H1 FY 2004, Q1 FY 2004 e quindi July 2003.
Si noti che solo il membro July 2003 del livello Month viene visualizzato in luogo dei membri July, 2003, August, 2003 e September, 2003 del livello Month e che viene visualizzato solo il membro July 1, 2003 del livello Date invece di tutti i 31 giorni. Ciò si verifica perché il livello di dettaglio dei dati nella tabella dei fatti è impostato sul livello trimestrale e quello della dimensione Time sul livello giornaliero. Questa impostazione verrà modificata nell'attività successiva di questo argomento.
Si noti inoltre che il valore Sales Amount Quota per i livelli mese e giorno è lo stesso valore per il livello trimestre e cioè $13,733,000.00. Il livello dei dati più basso nel gruppo di misure Sales Quotas è infatti impostato sul livello trimestrale. Questa impostazione verrà modificata nella lezione 6.
Nella figura seguente vengono illustrati i valori per Sales Amount Quota.
Definizione delle proprietà di utilizzo delle dimensioni per il gruppo di misure Sales Quotas
Per definire le proprietà di utilizzo delle dimensioni per il gruppo di misure Sales Quotas
Aprire Progettazione dimensioni per la dimensione Employee e quindi aggiungere l'attributo SalesTerritoryKey basato sulla colonna SalesTerritoryKey nella tabella Employee come un attributo nascosto, non ottimizzato e non ordinato.
L'attributo è necessario per collegare la dimensione Sales Territory ai gruppi di misure Sales Quotas e Sales Quotas 1 come una dimensione di riferimento.
In Progettazione cubi per il cubo Analysis Services Tutorial fare clic sulla scheda Utilizzo dimensioni e quindi esaminare l'utilizzo delle dimensioni nei gruppi di misure Sales Quotas e Sales Quotas 1.
Si noti che le dimensioni del cubo Employee e Time sono collegate ai gruppi di misure Sales Quotas e Sales Quotas 1 tramite relazioni regolari. Si noti inoltre che la dimensione del cubo Sales Territory non è collegata a nessuno di questi gruppi di misure.
Definire una relazione di tipo Riferimento materializzata tra la dimensione Sales Territory e il gruppo di misure Sales Quotas, specificando Employee come dimensione intermedia, Sales Territory Region come attributo della dimensione di riferimento e SalesTerritoryKey come attributo della dimensione intermedia (la colonna chiave dell'attributo Sales Territory Region è la colonna SalesTerritoryKey).
Ripetere i passaggi precedenti per il gruppo di misure Sales Quotas 1.
Eliminare la dimensione Time del cubo.
Invece di avere quattro dimensioni temporali del cubo, si utilizzerà la dimensione Order Date del cubo nel gruppo di misure Sales Quotas come la data rispetto alla quale verranno dimensionate le quote di vendita. Questa dimensione del cubo verrà inoltre utilizzata come dimensione di data primaria del cubo.
Nell'elenco Dimensioni rinominare la dimensione Time (Order Date) del cubo in Time (Date).
Rinominando la dimensione Order Date del cubo in Date si evidenzia meglio agli utenti il ruolo della dimensione come dimensione primaria di data del cubo.
Fare clic sul pulsante con i puntini di sospensione (…) nella cella nel punto di intersezione tra il gruppo di misure Sales Quotas e la dimensione Time (Date).
Nella finestra di dialogo Definisci relazione selezionare Regolare nell'elenco Selezionare il tipo di relazione.
Nell'elenco Attributo di granularità selezionare Calendar Quarter.
Verrà visualizzato un avviso per notificare che, avendo selezionato un attributo non chiave come attributo di granularità, è necessario assicurarsi che tutti gli altri attributi siano direttamente o indirettamente correlati all'attributo di granularità specificandoli come proprietà del membro.
Nell'immagine seguente viene illustrata la finestra di dialogo Definisci relazione.
Nell'area Relazione della finestra di dialogo Definisci relazione collegare le colonne delle dimensioni CalendarYear e CalendarQuarter della tabella sottostante la dimensione Time (Date) del cubo alle colonne CalendarYear e CalendarQuarter della tabella sottostante il gruppo di misure Sales Quota e quindi fare clic su OK.
[!NOTA] Calendar Quarter è definito come attributo di granularità per la dimensione Time (Date) del cubo nel gruppo di misure Sales Quotas mentre l'attributo Date continua ad essere l'attributo di granularità per i gruppi di misure Internet Sales e Reseller Sales.
Ripetere i quattro passaggi precedenti per il gruppo di misure Sales Quotas 1.
Nella figura seguente viene illustrato Calendar Quarter definito come attributo di granularità della dimensione Time (Date) del cubo per entrambi i gruppi di misure Sales Quotas e Sales Quotas 1.
Definizione delle relazioni tra attributi tra l'attributo Calendar Quarter e gli altri attributi della dimensione nella dimensione Time
Per definire le relazioni tra attributi tra l'attributo Calendar Quarter e gli altri attributi della dimensione nella dimensione Time
Passare a Progettazione dimensioni per la dimensione Time e quindi fare clic su Struttura dimensione.
Nel riquadro Attributi espandere i seguenti attributi:
- Calendar Quarter
- Calendar Semester
- Fiscal Quarter
- Fiscal Semester
Si noti che sebbene Calendar Year sia collegato a Calendar Quarter tramite l'attributo Calendar Semester, gli attributi relativi al calendario fiscale sono collegati soltanto l'uno all'altro; non sono collegati all'attributo Calendar Quarter e quindi non verranno aggregati correttamente nel gruppo di misure Sales Quotas.
Trascinare l'attributo Fiscal Quarter sul tag <nuova relazione tra attributi> per l'attributo Calendar Quarter.
Si noti che verrà visualizzato un messaggio per indicare che la dimensione Time contiene una o più relazioni tra attributi ridondanti le quali potrebbero impedire l'aggregazione dei dati se un attributo non chiave viene utilizzato come attributo di granularità. Nell'avviso viene inoltre indicato che la relazione tra attributi Fiscal Quarter per l'attributo Month Name non è necessaria.
Eliminare la relazione tra l'attributo Fiscal Quarter e l'attributo Month Name.
L'avviso non sarà più visualizzato.
Visualizzazione delle misure nel gruppo di misure Sales Quota in base al valore temporale
Per visualizzare le misure nel gruppo di misure Sales Quota in base al valore temporale
Scegliere Distribuisci Analysis Services Tutorial dal menu Genera.
Al termine delle operazioni di distribuzione, fare clic sulla scheda Esplorazione in Progettazione cubi per il cubo Analysis Services Tutorial e quindi fare clic su Riconnetti.
Si noti che la misura Sales Amount Quota viene dimensionata correttamente mediante Sales Territory poiché la dimensione Sales Territory rappresenta ora la dimensione a cui viene fatto riferimento.
Aggiungere la gerarchia utente Date.FiscalTime all'area riga dalla dimensione Date del cubo, fare clic sulla freccia rivolta verso il basso accanto a Fiscal Year e deselezionare tutte le caselle di controllo ad eccezione di FY 2004 per visualizzare soltanto l'anno fiscale 2004.
Fare clic su OK.
Espandere FY 2004, H1 FY 2004 e quindi Q1 FY 2004.
Si noti che le misure nel gruppo di misure Sales Quotas sono dimensionate correttamente. Si noti inoltre che vengono visualizzati tutti i membri del livello trimestre fiscale ed ogni membro ha un valore pari al valore del livello trimestre. Ciò si verifica perché il livello di dettaglio nella tabella dei fatti è impostato sul livello trimestrale così come il livello di dettaglio della dimensione Time. Nella lezione 6 verranno illustrate le procedure per allocare gli importi trimestrali proporzionalmente ad ogni mese.
Nella figura seguente viene illustrata la Progettazione cubi per il cubo Analysis Services Tutorial con il gruppo di misure Sales Quota correttamente dimensionato.
[!NOTA] Un progetto completato fino alla lezione 5 è incluso con il download e l'installazione degli esempi aggiornati. Per ulteriori informazioni, vedere la sezione relativa a come ottenere esempi aggiornati in Installazione degli esempi.
Lezione successiva
Lezione 6: Definizione di calcoli
Vedere anche
Altre risorse
Relazioni tra dimensioni
Definizione di una relazione di tipo Regolare e delle relative proprietà