Definieren von unbekannten Elementen und Eigenschaften für das Verarbeiten von NULL-Werten
Wenn Analysis Services eine Dimension verarbeitet, füllen alle unterschiedlichen Werte aus den zugrunde liegenden Spalten in den Tabellen oder Ansichten in der Datenquellensicht die Attribute in der Dimension auf. Wenn Analysis Services während der Verarbeitung auf einen NULL-Wert stößt, konvertiert es diesen NULL-Wert standardmäßig in eine Null für numerische Spalten oder in eine leere Zeichenfolge für Zeichenfolgenspalten. Sie können diese Standardeinstellungen ändern oder NULL-Werte in Ihrem Extrahierungs-, Transformations- und Ladeprozess (falls vorhanden) des zu Grunde liegenden relationalen Data Warehouse konvertieren. Darüber hinaus können Sie den NULL-Wert von Analysis Services in einen angegebenen Wert konvertieren, indem Sie drei Eigenschaften konfigurieren: die UnknownMember - und UnknownMemberName-Eigenschaft für die Dimension und die NullProcessing-Eigenschaft für das Schlüsselattribute der Dimension.
Der Dimensions-Assistent und der Cube-Assistent aktivieren diese Eigenschaften ordnungsgemäß, je nachdem, ob das Schlüsselattribut einer Dimension NULL-Werte zulässt oder ob das Stammattribut einer Schneeflockendimension auf einer Spalte basiert, die NULL-Werte zulässt. In diesen Fällen wird die NullProcessing -Eigenschaft des Schlüsselattributs auf UnknownMember und die UnknownMember -Eigenschaft auf Sichtbarfestgelegt.
Wenn Sie jedoch Schneeflockendimensionen inkrementell erstellen, wie es bei der Product-Dimension in diesem Tutorial der Fall ist, oder wenn Sie Dimensionen mithilfe des Dimensions-Designers erstellen und anschließend diese vorhandenen Dimensionen in einen Cube integrieren, müssen die Eigenschaften UnknownMember und NullProcessing unter Umständen manuell festgelegt werden.
In den Aufgaben in diesem Thema fügen Sie die Attribute der Produktkategorie und der Produktunterkategorie der Product-Dimension aus schneeflakierten Tabellen hinzu, die Sie der Adventure Works DW-Datenquellensicht hinzufügen. Anschließend aktivieren Sie die UnknownMember-Eigenschaft für die Product-Dimension, geben sie als Wert für die UnknownMemberName-Eigenschaft anAssembly Components
, verknüpfen die Subcategory
Attribute und Category
mit dem Product Name-Attribut und definieren dann die benutzerdefinierte Fehlerbehandlung für das Elementschlüssel-Attribut, das die snowflakierten Tabellen verknüpft.
Hinweis
Wenn Sie die Attribute Subcategory und Category hinzugefügt haben, als Sie den Analysis Services-Tutorial-Cube ursprünglich mithilfe des Cube-Assistenten definiert haben, wären diese Schritte automatisch für Sie ausgeführt worden.
Überprüfen der Fehlerbehandlung und der Eigenschaften unbekannter Elemente in der Product-Dimension
Wechseln Sie zum Dimensions-Designer für die Product -Dimension, klicken Sie auf die Registerkarte Dimensionsstruktur , und wählen Sie anschließend im Bereich Attribute den Eintrag Product aus.
Damit können die Eigenschaften der Dimension selbst angezeigt und geändert werden.
Überprüfen Sie im Eigenschaftenfenster den Wert für die Eigenschaften UnknownMember und UnknownMemberName .
Beachten Sie, dass die UnknownMember -Eigenschaft nicht aktiviert ist, weil ihr Wert auf Keine anstatt auf Sichtbar oder Ausgeblendetfestgelegt ist, und dass kein Name für die UnknownMemberName -Eigenschaft angegeben ist.
Wählen Sie im Fenster Eigenschaften (Benutzerdefiniert) in der Eigenschaftenzelle ErrorConfiguration aus, und erweitern Sie anschließend die ErrorConfiguration -Eigenschaftssammlung.
Durch Festlegen der ErrorConfiguration -Eigenschaft auf (Benutzerdefiniert) können Sie die Standardfehlerkonfigurationseinstellungen anzeigen. Es werden dadurch keine Einstellungen geändert.
Überprüfen Sie dann die Schlüssel- und NULL-Schlüsselkonfigurationseigenschaften. Ändern Sie diese aber nicht.
Beachten Sie, dass standardmäßig beim Konvertieren von NULL-Schlüsseln in das unbekannte Element der Verarbeitungsfehler im Zusammenhang mit dieser Konvertierung ignoriert wird.
Die folgende Abbildung zeigt die Eigenschaftseinstellungen für die Eigenschaftssammlung ErrorConfiguration .
Klicken Sie auf die Registerkarte Browser , überprüfen Sie, ob Produktmodelllinien in der Liste Hierarchie ausgewählt ist, und erweitern Sie
All Products
dann .Beachten Sie die fünf Elemente der Produktgruppe-Ebene.
Erweitern Sie Komponentenund anschließend das unbeschriftete Element der Modellname -Ebene.
Diese Ebene enthält die Assemblykomponenten, die beim Erstellen anderer Komponenten verwendet werden, beginnend mit dem Adjustable Race -Produkt, so wie im folgenden Bild gezeigt.
Definieren von Attributen von Schneeflockentabellen und einer benutzerdefinierten Produktkategoriehierarchie
Öffnen Sie die Datenquellensicht Designer für die Adventure Works DW-Datenquellensicht, wählen Sie im Bereich Diagrammorganisator die Option Reseller Sales aus, und klicken Sie dann im Menü Datenquellenansicht von SQL Server Data Tools (SSDT) auf Objekte hinzufügen/entfernen.
Das Dialogfeld Tabellen hinzufügen/entfernen wird geöffnet.
Wählen Sie in der Liste Eingeschlossene Objekte den Eintrag DimProduct (dbo)aus, und klicken Sie anschließend auf Verknüpfte Tabellen hinzufügen.
Sowohl DimProductSubcategory (dbo) als auch FactProductInventory (dbo) werden hinzugefügt. Entfernen Sie FactProductInventory (dbo) , damit der Liste Eingeschlossene Objekte nur die DimProductSubcategory (dbo) -Tabelle hinzugefügt wird.
Die DimProductSubcategory (dbo) -Tabelle wird standardmäßig als die zuletzt hinzugefügte Tabelle ausgewählt. Klicken Sie erneut auf Verknüpfte Tabellen hinzufügen .
Die DimProductCategory (dbo) -Tabelle wird der Liste Eingeschlossene Objekte hinzugefügt.
Klicken Sie auf OK.
Zeigen Sie im Menü Format von SQL Server Data Tools auf Automatisches Layout, und klicken Sie dann auf Diagramm.
Beachten Sie, dass die DimProductSubcategory (dbo) -Tabelle und die DimProductCategory (dbo) -Tabelle miteinander und auch mit der ResellerSales -Tabelle durch die Product -Tabelle verknüpft sind.
Wechseln Sie zum Dimensions-Designer für die Product -Dimension, und klicken Sie anschließend auf die Registerkarte Dimensionsstruktur .
Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im Bereich Datenquellensicht und anschließend auf Alle Tabellen anzeigen.
Suchen Sie im Bereich Datenquellensicht die DimProductCategory -Tabelle, klicken Sie mit der rechten Maustaste auf ProductCategoryKey in dieser Tabelle und anschließend auf Neues Attribut aus Spalte.
Ändern Sie im Bereich Attribute den Namen dieses neuen Attributs in
Category
.Klicken Sie im Eigenschaftenfenster auf das Eigenschaftenfeld NameColumn, und klicken Sie dann auf die Schaltfläche Durchsuchen (...), um das Dialogfeld Namensspalte zu öffnen.
Wählen Sie EnglishProductCategoryName in der Liste Quellspalte aus, und klicken Sie auf OK.
Suchen Sie im Bereich Datenquellensicht die DimProductSubcategory -Tabelle, klicken Sie mit der rechten Maustaste auf ProductSubcategoryKey in dieser Tabelle und anschließend auf Neues Attribut aus Spalte.
Ändern Sie im Bereich Attribute den Namen dieses neuen Attributs in
Subcategory
.Klicken Sie im Eigenschaftenfenster auf das Eigenschaftenfeld NameColumn, und klicken Sie dann auf die Schaltfläche Durchsuchen (...) , um das Dialogfeld Namensspalte zu öffnen.
Wählen Sie EnglishProductSubcategoryName in der Quellspalte -Liste aus, und klicken Sie auf OK.
Erstellen Sie eine neue benutzerdefinierte Hierarchie namens Produktkategorien mit den folgenden Ebenen, die von oben nach unten sortiert sind:
Category
,Subcategory
und Produktname.Geben Sie
All Products
als Wert für die AllMemberName-Eigenschaft der benutzerdefinierten Hierarchie "Produktkategorien" an.
Durchsuchen der benutzerdefinierten Hierarchien in der Product-Dimension
Klicken Sie auf der Symbolleiste der Registerkarte Dimensionsstruktur von Dimensions-Designer für die Product -Dimension auf Verarbeiten.
Klicken Sie auf Ja , um das Projekt zu erstellen und bereitzustellen und anschließend auf Ausführen , um die Product -Dimension zu verarbeiten.
Erweitern Sie nach erfolgreicher Verarbeitung im Dialogfeld Verarbeitungsstatus den Eintrag Die Verarbeitung von Dimension 'Product' wurde erfolgreich abgeschlossen , erweitern Sie Die Verarbeitung von Dimensionsattribut 'Product Name' wurde erfolgreich abgeschlossen, und erweitern Sie anschließend SQL-Abfragen 1.
Klicken Sie auf die SELECT DISTINCT-Abfrage und anschließend auf Details anzeigen.
Beachten Sie, dass eine WHERE-Klausel der SELECT DISTINCT-Klausel hinzugefügt wurde, durch die diejenigen Produkte entfernt werden, die keinen Wert in der ProductSubcategoryKey-Spalte aufweisen, wie im folgenden Bild zu sehen.
Klicken Sie dreimal auf Schließen um alle Verarbeitungsdialogfelder zu schließen.
Klicken Sie im Dimensions-Designer für die Product -Dimension auf die Registerkarte Browser und anschließend auf Verbindung wiederherstellen.
Vergewissern Sie sich, dass Produktmodelllinien in der Liste Hierarchie angezeigt werden, erweitern Sie
All Products
, und erweitern Sie dann Komponenten.Wählen Sie in der Liste Hierarchiedie Option Produktkategorien aus, erweitern Sie
All Products
, und erweitern Sie dann Komponenten.Beachten Sie, dass keine der Assemblykomponenten angezeigt wird.
Um das in der vorherigen Aufgabe erwähnte Verhalten zu ändern, aktivieren Sie die UnknownMember-Eigenschaft der Products-Dimension, legen einen Wert für die UnknownMemberName-Eigenschaft fest, legen die NullProcessing-Eigenschaft für die Subcategory
Attribute und Model Name auf UnknownMember fest, definieren das Category
Attribut als verwandtes Attribut des Subcategory
Attributs und definieren dann das Product Line-Attribut als verwandtes Attribut des Model Name-Attributs . Diese Schritte führen dazu, dass Analysis Services den unbekannten Membernamenwert für jedes Produkt verwendet, das keinen Wert für die Spalte SubcategoryKey aufweist, wie Sie in der folgenden Aufgabe sehen werden.
Aktivieren des unbekannten Elements, Definieren von Attributbeziehungen und Angeben von benutzerdefinierten Verarbeitungseigenschaften für NULL-Werte
Klicken Sie im Dimensions-Designer für die Product -Dimension auf die Registerkarte Dimensionsstruktur , und wählen Sie anschließend im Bereich Attribute den Eintrag Product aus.
Ändern Sie im Eigenschaftenfenster die UnknownMember-Eigenschaft in Visible, und ändern Sie dann den Wert für die UnknownMemberName-Eigenschaft in
Assembly Components
.Durch das Ändern der UnknownMember -Eigenschaft in Sichtbar oder Ausgeblendet wird die UnknownMember -Eigenschaft für die Dimension aktiviert.
Klicken Sie auf die Registerkarte Attributbeziehungen .
Klicken Sie im Diagramm mit der rechten Maustaste auf das
Subcategory
Attribut, und wählen Sie dann Neue Attributbeziehung aus.Im Dialogfeld Attributbeziehung erstellen ist
Subcategory
das Quellattribute . Legen Sie das zugehörige Attribut auf festCategory
. Lassen Sie den Beziehungstyp auf Flexibeleingestellt.Klicken Sie auf OK.
Wählen Sie im Bereich Attribute den Eintrag Subcategoryaus.
Erweitern Sie im Fenster Eigenschaften die KeyColumns -Eigenschaft und anschließend die DimProductSubcategory.ProductSubcategoryKey (Integer) -Eigenschaft.
Ändern Sie die NullProcessing -Eigenschaft in UnknownMember.
Wählen Sie im Bereich Attribute den Eintrag Model Nameaus.
Erweitern Sie im Fenster Eigenschaften die KeyColumns -Eigenschaft und anschließend die Product.ModelName (WChar) -Eigenschaft.
Ändern Sie die NullProcessing -Eigenschaft in UnknownMember.
Aufgrund dieser Änderungen wird der unbekannte Memberwert als Schlüsselwert ersetzt, wenn Analysis Services während der Verarbeitung auf einen NULL-Wert für das
Subcategory
Attribut oder das Attribut Modellname stößt, und die benutzerdefinierten Hierarchien werden ordnungsgemäß erstellt.
Erneutes Durchsuchen der Product-Dimension
Klicken Sie im Menü Erstellen auf Analysis Services Tutorial bereitstellen.
Klicken Sie nach erfolgreichem Abschluss der Bereitstellung im Dimensions-Designer für die Product -Dimension auf die Registerkarte Browser und anschließend auf Verbindung wiederherstellen.
Überprüfen Sie, ob Produktkategorien in der Liste Hierarchie ausgewählt ist, und erweitern Sie
All Products
dann .Beachten Sie, dass Assembly Components als neues Element auf der Category-Ebene angezeigt wird.
Erweitern Sie das
Assembly Components
Element derCategory
Ebene, und erweitern Sie dann dasAssembly Components
Element derSubcategory
Ebene.Beachten Sie, dass die Assemblykomponenten jetzt auf der Product Name -Ebene angezeigt werden, so wie in der folgenden Abbildung zu sehen ist.
Nächste Lektion
Lektion 5: Definieren von Beziehungen zwischen Dimensionen und Measuregruppen