Lezione 4-7: Definizione delle proprietà di elaborazione dei membri sconosciuti e null
Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Quando SQL Server Analysis Services elabora una dimensione, tutti i valori distinti delle colonne sottostanti nelle tabelle o viste nella vista origine dati popolano gli attributi nella dimensione. Se SQL Server Analysis Services rileva un valore Null durante l'elaborazione, per impostazione predefinita questo valore null viene convertito in zero per le colonne numeriche o in una stringa vuota per le colonne stringa. È possibile modificare le impostazioni predefinite oppure convertire i valori Null nell'eventuale processo di estrazione, trasformazione e caricamento del data warehouse relazionale sottostante. È anche possibile avere SQL Server Analysis Services convertire il valore Null in un valore designato configurando tre proprietà: le proprietà UnknownMember e UnknownMemberName per la dimensione e la proprietà NullProcessing per l'attributo chiave della dimensione.
La Creazione guidata dimensione e la Creazione guidata cubo consentono di abilitare tali proprietà in modo appropriato a seconda che l'attributo chiave di una dimensione ammetta valori Null oppure che l'attributo radice di una dimensione con schema snowflake sia basato su una colonna che ammette valori Null. In questi casi la proprietà NullProcessing dell'attributo chiave viene impostata su UnknownMember e la proprietà UnknownMember su Visible.
Quando si compilano dimensioni con schema snowflake in modo incrementale, come per la dimensione Product di questa esercitazione, oppure se si definiscono le dimensioni con Progettazione dimensioni e quindi si incorporano le dimensioni esistenti in un cubo, potrebbe tuttavia essere necessario impostare le proprietà UnknownMember e NullProcessing manualmente.
Nelle attività di questo argomento si aggiungeranno gli attributi della categoria di prodotto e della sottocategoria del prodotto alla dimensione Product dalle tabelle innevate che verranno aggiunte alla vista origine dati Adventure Works DW. Verrà quindi abilitata la proprietà UnknownMember della dimensione Product, verrà specificato Assembly Components come valore per la proprietà UnknownMemberName , verrà stabilita la correlazione tra gli attributi Subcategory e Category e l'attributo del nome del prodotto e quindi si definirà la gestione personalizzata degli errori per l'attributo chiave membro che collega le tabelle con schema snowflake.
Nota
Se sono stati aggiunti gli attributi Subcategory e Category quando è stato originariamente definito il cubo SQL Server Analysis Services Tutorial usando la Creazione guidata cubo, questi passaggi sarebbero stati eseguiti automaticamente.
Esame delle proprietà ErrorHandling e UnknownMember nella dimensione Product
Passare a Progettazione dimensioni per la dimensione Product , fare clic sulla scheda Struttura dimensione , quindi selezionare Product nel riquadro Attributi .
In questo modo è possibile visualizzare e modificare le proprietà della dimensione stessa.
Nella finestra Proprietà controllare le proprietà UnknownMember e UnknownMemberName .
Si noti che la proprietà UnknownMember non è abilitata perché il relativo valore è impostato su None anziché Visible o Hiddene che non è specificato alcun nome per la proprietà UnknownMemberName .
Nella finestra Proprietà selezionare (personalizzata) nella cella della proprietà ErrorConfiguration , quindi espandere la raccolta delle proprietà ErrorConfiguration .
Se si imposta la proprietà ErrorConfiguration su (personalizzata) è possibile visualizzare le impostazioni di configurazione predefinite degli errori. Nessun'altra impostazione viene modificata.
Esaminare le proprietà di configurazione Key e NullKeyError, ma non apportare modifiche.
Si noti che per impostazione predefinita quando chiavi Null vengono convertite nel valore di UnknownMember, l'errore di elaborazione associato alla conversione stessa viene ignorato.
Nella figura seguente vengono illustrate le impostazioni delle proprietà per la raccolta di proprietà ErrorConfiguration .
Fare clic sulla scheda Esplorazione , verificare che Product Model Lines sia selezionato nell'elenco Gerarchia e quindi espandere All Products.
Si notino i cinque membri del livello Product Line.
Espandere Componentse quindi espandere il membro senza etichetta del livello Model Name .
Il livello contiene i componenti di assembly che vengono usati nella compilazione di altri componenti, a partire dal prodotto Adjustable Race , come illustrato nella figura seguente.
Definizione di attributi provenienti da tabelle con schema snowflake e di una gerarchia definita dall'utente Product Category
Aprire vista origine dati Designer per la vista origine dati Adventure Works DW, selezionare Reseller Sales nel riquadro Libreria diagrammi e quindi fare clic su Aggiungi/Rimuovi oggetti dal menu Vista origine dati di SQL Server Data Tools.
Viene visualizzata la finestra di dialogo Aggiungi/Rimuovi tabelle .
Nell'elenco Oggetti inclusi selezionare DimProduct (dbo), quindi fare clic su Aggiungi tabelle correlate.
Verranno aggiunti sia DimProductSubcategory (dbo) che FactProductInventory (dbo) . Rimuovere FactProductInventory (dbo) in modo che solo la tabella DimProductSubcategory (dbo) venga aggiunta all'elenco Oggetti inclusi .
Con la tabella DimProductSubcategory (dbo) selezionata per impostazione predefinita come ultima tabella aggiunta, fare di nuovo clic su Aggiungi tabelle correlate .
La tabella DimProductCategory (dbo) viene aggiunta all'elenco Oggetti inclusi .
Fare clic su OK.
Scegliere Layout automatico dal menu Formato di SQL Server Data Tools e quindi fare clic su Diagramma.
Si noti che la tabella DimProductSubcategory (dbo) e la tabella DimProductCategory (dbo) sono collegate tra loro e alla tabella ResellerSales attraverso la tabella Product .
Passare a Progettazione dimensioni per la dimensione Product e fare clic sulla scheda Struttura dimensione .
Fare clic in un punto qualsiasi del riquadro Vista origine dati e quindi fare clic su Mostra tutte le tabelle.
Nel riquadro Vista origine dati individuare la tabella DimProductCategory , fare con il pulsante destro del mouse su ProductCategoryKey nella tabella stessa e quindi fare clic su Nuovo attributo da colonna.
Nel riquadro Attributi modificare il nome di questo nuovo attributo in Category.
Nella Finestra Proprietà fare clic nel campo della proprietà NameColumn e quindi sul pulsante Sfoglia (...) per aprire la finestra di dialogo Colonna nome.
Selezionare EnglishProductCategoryName nell'elenco Colonna di origine , quindi fare clic su OK.
Nel riquadro Vista origine dati individuare la tabella DimProductSubcategory , fare clic con il pulsante destro del mouse su ProductSubcategoryKey nella tabella stessa e quindi fare clic su Nuovo attributo da colonna.
Nel riquadro Attributi modificare il nome di questo nuovo attributo in Subcategory.
Nella Finestra Proprietà fare clic nel campo della proprietà NameColumn e quindi fare clic sul pulsante Sfoglia (...) per aprire la finestra di dialogo Colonna nome.
Selezionare EnglishProductSubcategoryName nell'elenco Colonna di origine , quindi fare clic su OK.
Creare una nuova gerarchia definita dall'utente denominata Product Categories con i seguenti livelli, nell'ordine dall'alto verso il basso: Category, Subcategorye Product Name.
Specificare All Products come valore per la proprietà AllMemberName della gerarchia definita dall'utente Product Categories.
Esplorazione delle gerarchie definite dall'utente nella dimensione Product
Nella barra degli strumenti della scheda Struttura dimensione di Progettazione dimensioni per la dimensione Product fare clic su Elabora.
Fare clic su Sì per compilare il progetto e distribuirlo e quindi fare clic su Esegui per elaborare la dimensione Product .
Al termine dell'elaborazione, espandere Elaborazione di Dimensione 'Product' completata nella finestra di dialogo Stato elaborazione , espandere Elaborazione di Attributo dimensione 'Product Name' completata, quindi espandere Query SQL 1.
Fare clic sulla query SELECT DISTINCT, quindi su Visualizza dettagli.
Si noti che alla clausola SELECT DISTINCT è stata aggiunta una clausola WHERE che rimuove i prodotti privi di valore nella colonna ProductSubcategoryKey, come illustrato nella figura seguente.
Fare clic su Chiudi tre volte per chiudere tutte le finestre di dialogo di elaborazione.
Fare clic sulla scheda Esplorazione in Progettazione dimensioni per la dimensione Product e quindi fare clic su Riconnetti.
Verificare che Product Model Lines sia visualizzato nell'elenco Gerarchia , espandere All Products, quindi espandere Components.
Selezionare Product Categories nell'elenco Gerarchia , espandere All Products, quindi espandere Components.
Si noti che non viene visualizzato nessun componente dell'assembly.
Per modificare il comportamento citato nell'attività precedente, si abiliterà la proprietà UnknownMember della dimensione Product, si imposterà il valore della proprietà UnknownMemberName , si imposterà la proprietà NullProcessing per gli attributi Subcategory e Model Name su UnknownMember, si definirà l'attributo Category come attributo correlato di Subcategory e quindi si definirà l'attributo Product Line come attributo correlato di Model Name . Questi passaggi causeranno SQL Server Analysis Services l'uso del valore del nome membro sconosciuto per ogni prodotto che non ha un valore per la colonna SubcategoryKey, come illustrato nell'attività seguente.
Abilitazione della proprietà UnknownMember, definizione delle relazioni tra attributi e specifica di proprietà di elaborazione personalizzata per i valori Null
Fare clic sulla scheda Struttura dimensione in Progettazione dimensioni per la dimensione Product , quindi selezionare Product nel riquadro Attributi .
Nella finestra Proprietà modificare la proprietà UnknownMember in Visible, quindi modificare il valore della proprietà UnknownMemberName in Assembly Components.
Modificando la proprietà UnknownMember in Visible o Hidden viene abilitata la proprietà UnknownMember per la dimensione.
Fare clic sulla scheda Relazioni tra attributi .
Nel diagramma fare clic con il pulsante destro del mouse sull'attributo Subcategory , quindi scegliere Nuova relazione tra attributi.
Nella finestra di dialogo Crea relazione tra attributi l'opzione Attributo di origine è impostata su Subcategory. Impostare Attributo correlato su Category. Lasciare il tipo di relazione impostato su Flessibile.
Fare clic su OK.
Nel riquadro Attributi selezionare Subcategory.
Nella finestra Proprietà espandere la proprietà KeyColumns , quindi la proprietà DimProductSubcategory.ProductSubcategoryKey (Integer) .
Impostare la proprietà NullProcessing su UnknownMember.
Nel riquadro Attributi selezionare Model Name.
Nella finestra Proprietà espandere la proprietà KeyColumns , quindi la proprietà Product.ModelName (WChar) .
Impostare la proprietà NullProcessing su UnknownMember.
A causa di queste modifiche, quando SQL Server Analysis Services rileva un valore Null per l'attributo Subcategory o l'attributo Model Name durante l'elaborazione, il valore del membro sconosciuto verrà sostituito come valore della chiave e le gerarchie definite dall'utente verranno costruite correttamente.
Nuova esplorazione della dimensione Product
Scegliere Distribuisci Analysis Services Tutorial dal menu Compila.
Al termine della distribuzione fare clic sulla scheda Esplorazione in Progettazione dimensioni per la dimensione Product e quindi fare clic su Riconnetti.
Verificare che Product Categories sia selezionato nell'elenco Gerarchia e quindi espandere All Products.
Si noti che Assembly Components appare come nuovo membro del livello Category.
Espandere il membro Assembly Components del livello Category e quindi espandere il membro Assembly Components del livello Subcategory .
Si noti che tutti i componenti di assembly vengono ora visualizzati nel livello Product Name , come illustrato nella figura seguente.
il
Lezione successiva
Lezione 5: Definizione delle relazioni tra dimensioni e gruppi di misure