Definieren von unbekannten Elementen und Eigenschaften für das Verarbeiten von NULL-Werten

Wenn von Microsoft SQL Server 2005 Analysis Services (SSAS) eine Dimension verarbeitet wird, werden die Attribute in der Dimension durch alle unterschiedlichen Werte aus den zugrunde liegenden Spalten in den Tabellen oder Ansichten in der Datenquellensicht aufgefüllt. Wenn Analysis Services bei der Verarbeitung auf einen NULL-Wert stößt, wird dieser standardmäßig für numerische Spalten in einen Nullwert oder für Zeichenfolgenspalten in eine leere Zeichenfolge konvertiert und kein Fehler ausgelöst. Sie können diese Standardwerte ändern oder NULL-Werte in Ihrem Extrahierungs-, Transformations- und Ladeprozess (falls vorhanden) des zu Grunde liegenden relationalen Data Warehouse konvertieren. Sie können den NULL-Wert auch von Analysis Services in einen festgelegten Wert konvertieren lassen. Zu diesem Zweck konfigurieren Sie drei Eigenschaften: die UnknownMember- und die UnknownMemberName-Eigenschaften für die Dimension und die NullProcessing-Eigenschaft für das Schlüsselattribut 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 Sichtbar festgelegt.

ms170707.note(de-de,SQL.90).gifHinweis:
Der Standardwert für das unbekannte Element ist Unbekannt. Sie können einen anderen Wert angeben, indem Sie einen Wert für die UnknownMemberName-Eigenschaft festlegen.

Wenn Sie jedoch Schneeflockendimensionen inkrementell erstellen, wie es bei der Product-Dimension in diesem Lernprogramm 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 manuell festgelegt werden.

Wie Sie in der nächsten Aufgabe sehen, werden bei der Verarbeitung einer Schneeflockendimension durch Analysis Services die Attributelemente, deren Wert für die Spalte, durch die die Schneeflockentabellen miteinander verknüpft werden, NULL ist, durch Analysis Services entfernt, sofern Sie nicht die Einstellungen für bestimmte Eigenschaften ändern. Es kommt zu keinem Fehler, weil diese Art von Fehler von Analysis Services standardmäßig ignoriert wird. Standardmäßig ist die NullKeyCovertedToUnknown-Eigenschaft auf IgnoreError festgelegt. Von Analysis Services wird das Attributelement mit dem NULL-Wert entfernt, ähnlich wie eine innere Verknüpfung zwischen den beiden Schneeflockentabellen.

Sie können steuern, wie von Analysis Services die Verarbeitung in dieser Situation durchgeführt wird, indem Sie die folgenden Schritte ausführen:

  • Aktivieren Sie die UnknownMember-Eigenschaft für die Dimension.
  • Geben Sie einen Wert für die UnknownMemberName-Eigenschaft für die Dimension an.
  • Legen Sie Attributbeziehungen fest, die Dimensionsattribute angemessen verknüpfen.
  • Definieren Sie benutzerdefinierte Fehlerbehandlungen, die die Schneeflockentabellen miteinander verknüpfen.

In den Aufgaben in diesem Thema fügen Sie die Produktkategorie- und Produktunterkategorieattribute der Product-Dimension aus der Schneeflockentabelle hinzu, die Sie der Adventure Works DW-Datenquellensicht hinzufügen werden. Sie aktivieren dann die UnknownMember-Eigenschaft für die Product-Dimension, geben Assembly Components als Wert für die UnknownMemberName-Eigenschaft an, ordnen die Unterkategorie- und Kategorie-Attribute dem Produktnamensattribut zu und definieren dann eine benutzerdefinierte Fehlerbehandlung für das Elementschlüsselattribut, das die Schneeflockentabellen verknüpft.

ms170707.note(de-de,SQL.90).gifHinweis:
Wenn Sie die Unterkategorie- und Kategorieattribute bei der Definition des Analysis Services Tutorial-Cubes mithilfe des Cube-Assistenten hinzugefügt haben, wurden diese Schritte bereits automatisch ausgeführt.

Überprüfen der Fehlerbehandlung und der Eigenschaften unbekannter Elemente in der Product-Dimension

So überprüfen Sie die Fehlerbehandlung und die Eigenschaften unbekannter Elemente in der Product-Dimension

  1. Wechseln Sie zum Dimensions-Designer für die Product-Dimension, klicken Sie auf die Registerkarte Dimensionsstruktur, und wählen Sie dann im Attribute-Bereich Product aus.

    Damit können die Eigenschaften der Dimension selbst angezeigt und geändert werden.

  2. Ü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 Ausgeblendet festgelegt ist, und dass kein Name für die UnknownMemberName-Eigenschaft angegeben ist.

  3. Wählen Sie im Eigenschaftenfenster (Benutzerdefiniert) in der ErrorConfiguration-Eigenschaftenzelle aus, und erweitern Sie dann die ErrorConfiguration-Eigenschaftsauflistung.

    Durch Festlegen der ErrorConfiguration-Eigenschaft auf (Benutzerdefiniert) können Sie die Standardfehlerkonfigurationseinstellungen anzeigen – es werden dadurch keine Einstellungen geändert.

  4. Ü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.

    Das folgende Bild zeigt die Eigenschaftseinstellungen für die ErrorConfiguration-Eigenschaftsauflistung.

    ErrorConfiguration-Eigenschaftenauflistung

  5. Klicken Sie auf die Registerkarte Browser, überprüfen Sie, ob Produktmodellgruppen in der Hierarchie-Liste ausgewählt ist, und erweitern Sie dann All Products.

    Beachten Sie die fünf Elemente der Produktgruppe-Ebene.

  6. Erweitern Sie Komponenten, und erweitern Sie dann 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.

    Zum Erstellen weiterer Komponenten verwendete Assemblykomponenten

Definieren von Attributen von Schneeflockentabellen und einer benutzerdefinierten Produktkategoriehierarchie

So definieren Sie Attribute von Schneeflockentabellen und einer benutzerdefinierten Produktkategoriehierarchie

  1. Öffnen Sie den Datenquellensicht-Designer für die Adventure Works DW-Datenquellensicht, wählen Sie Reseller Sales im Diagrammplaner-Bereich aus, und klicken Sie dann im Menü Datenquellensicht von Business Intelligence Development Studio auf Tabellen hinzufügen/entfernen.

    Das Dialogfeld Tabellen hinzufügen/entfernen wird geöffnet.

  2. Wählen Sie in der Liste Eingeschlossene Objektedbo.DimProduct aus, und klicken Sie dann auf Verknüpfte Tabellen hinzufügen.

    Die dbo.DimProductSubcategory-Tabelle wird der Liste Eingeschlossene Objekte hinzugefügt.

  3. Die dbo.DimProductSubcategory-Tabelle wird standardmäßig als die zuletzt hinzugefügte Tabelle ausgewählt. Klicken Sie erneut auf Verknüpfte Tabellen hinzufügen.

    Die dbo.DimProductCategory-Tabelle wird der Liste Eingeschlossene Objekte hinzugefügt.

  4. Klicken Sie auf OK.

  5. Zeigen Sie im Menü Format von BI Development Studio auf Automatisches Layout, und klicken Sie dann auf Diagramm.

    Beachten Sie, dass die dbo.DimProductSubcategory- und die dbo.DimProductCategory-Tabelle miteinander und auch mit der ResellerSales-Tabelle durch die Product-Tabelle verknüpft sind, so wie im folgenden Bild zu sehen.

    Diagramm mit Verknüpfungen zwischen Tabellen

  6. Wechseln Sie zum Dimensions-Designer für die Product-Dimension, und klicken Sie dann auf die Registerkarte Dimensionsstruktur.

  7. Klicken Sie mit der rechten Maustaste an eine beliebige Stelle im Datenquellensicht-Bereich, und klicken Sie dann auf Alle Tabellen anzeigen.

  8. Suchen Sie im Datenquellensicht-Bereich die DimProductCategory-Tabelle, klicken Sie mit der rechten Maustaste auf ProductCategoryKey in dieser Tabelle, und klicken Sie dann auf Neues Attribut aus Spalte.

  9. Ändern Sie im Attribute-Bereich den Namen dieses neuen Attributs in Category.

  10. Klicken Sie im Eigenschaftenfenster auf die NameColumn-Eigenschaftszelle, wählen Sie (Neu) aus, geben Sie dann DimProductCategory im Feld Quelltabelle und EnglishProductCategoryName im Feld Quellspalte im Dialogfeld Objektbindung an, und klicken Sie anschließend auf OK.

  11. Suchen Sie im Datenquellensicht-Bereich die DimProductSubcategory-Tabelle, klicken Sie mit der rechten Maustaste auf ProductSubcategoryKey in dieser Tabelle, und klicken Sie dann auf Neues Attribut aus Spalte.

  12. Ändern Sie im Attribute-Bereich den Namen dieses neuen Attributs in Subcategory.

  13. Klicken Sie im Eigenschaftenfenster auf die NameColumn-Eigenschaftszelle, wählen Sie (Neu) aus, geben Sie dann DimProductSubcategory im Feld Quelltabelle und EnglishProductSubcategoryName im Feld Quellspalte im Dialogfeld Objektbindung an, und klicken Sie anschließend auf OK.

  14. Erstellen Sie eine neue benutzerdefinierte Hierarchie mit dem Namen Product Categories mit den folgenden Ebenen (von oben nach unten): Category, Subcategory und Product Name.

  15. Geben Sie All Products als Wert für die AllMemberName-Eigenschaft der benutzerdefinierten Product Categories-Hierarchie an.

Durchsuchen der benutzerdefinierten Hierarchien in der Product-Dimension

So durchsuchen Sie die benutzerdefinierten Hierarchien in der Product-Dimension

  1. Klicken Sie auf der Symbolleiste der Registerkarte Dimensionsstruktur von Dimensions-Designer für die Product-Dimension auf Verarbeiten.

  2. Klicken Sie auf Ja, um das Projekt zu erstellen und bereitzustellen, und klicken Sie dann auf Ausführen, um die Product-Dimension zu verarbeiten.

  3. 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 dann SQL-Abfragen 1.

  4. Klicken Sie auf die SELECT DISTINCT-Abfrage, und klicken Sie dann 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.

    SELECT DISTINCT-Klausel mit WHERE-Klausel

  5. Klicken Sie dreimal auf Schließen, um alle Verarbeitungsdialogfelder zu schließen.

  6. Klicken Sie im Dimensions-Designer für die Product-Dimension auf die Registerkarte Browser, und klicken Sie dann auf Verbindung wiederherstellen.

  7. Überprüfen Sie, ob Produktmodellgruppen in der Hierarchie-Liste angezeigt wird. Erweitern Sie All Products, und erweitern Sie dann Components.

    Beachten Sie, dass die gesamte Liste der Assemblykomponenten aufgrund der WHERE-Klausel in der SELECT DISTINCT-Anweisung fehlt, so wie im folgenden Bild zu sehen.

    Hierarchieliste mit fehlenden Komponenten

  8. Wählen Sie in der Hierarchie-Liste Produktkategorien aus, erweitern Sie All Products, und erweitern Sie dann Components.

    Beachten Sie, dass keine der Assemblykomponenten angezeigt wird.

Um das in der vorherigen Aufgabe angegebene 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- und Model Name-Attribute auf UnknownMember fest, definieren das Category-Attribut als zugehöriges Attribut des Subcategory-Attributs und definieren dann das Product Line-Attribut als zugehöriges Attribut des Model Name-Attributs. Durch diese Schritte verwendet Analysis Services den Namenswert des unbekannten Elements für jedes Produkt, das keinen Wert für die SubcategoryKey-Spalte aufweist. Dies wird in der folgenden Aufgabe gezeigt.

Aktivieren des unbekannten Elements, Definieren von Attributbeziehungen und Angeben von benutzerdefinierten Verarbeitungseigenschaften für NULL-Werte

So aktivieren Sie das unbekannte Element, definieren Attributbeziehungen und geben benutzerdefinierte Verarbeitungseigenschaften für NULL-Werte an

  1. Klicken Sie im Dimensions-Designer auf die Registerkarte Dimensionsstruktur für die Product-Dimension.

  2. Ändern Sie im Eigenschaftenfenster die UnknownMember-Eigenschaft für die Product-Dimension in Sichtbar, und ändern Sie dann den Wert für die UnknownMemberName-Eigenschaft für diese Dimension in Assembly Components.

    Durch das Ändern der UnknownMember-Eigenschaft in Sichtbar oder Ausgeblendet wird die UnknownMember-Eigenschaft für die Dimension aktiviert.

  3. Erweitern Sie im Attribute-Bereich die folgenden Attribute:

    • Product Name
    • Subcategory
    • Model Name

    Beachten Sie, dass Product Line mit dem Model Name-Attribut und dadurch indirekt mit dem Product Name-Schlüsselattribut verknüpft ist. Beachten Sie, dass keine Attributbeziehungen für das Subcategory-Attribut definiert worden sind und dass das Category-Attribut mit dem Product Name-Attribut direkt durch das Schlüsselattribut verknüpft ist.

  4. Ziehen Sie die Category-Attributbeziehung vom Product Name-Attribut zum Subcategory-Attribut.

    Das Category-Attribut ist jetzt mit den Zeilen in der Faktentabelle durch das Subcategory-Attribut verknüpft, das wiederum mit den Zeilen in der Faktentabelle durch das Product Name-Attribut verknüpft ist.

  5. Wählen Sie im Attribute-Bereich Subcategory aus, und klicken Sie dann im Eigenschaftenfenster in der KeyColumns-Eigenschaftszelle auf die Schaltfläche mit den drei Punkten.

  6. Ändern Sie im Dialogfeld DataItem-Auflistungs-Editor die NullProcessing-Eigenschaft in UnknownMember, so wie im folgenden Bild zu sehen.

    DataItem-Auflistungs-Editor (Dialogfeld)

  7. Klicken Sie auf OK.

  8. Wählen Sie im Attribute-Bereich Model Name aus, und klicken Sie dann im Eigenschaftenfenster in der KeyColumns-Eigenschaftszelle auf die Schaltfläche mit den drei Punkten.

  9. Ändern Sie im Dialogfeld DataItem-Auflistungs-Editor die NullProcessing-Eigenschaft in UnknownMember, und klicken Sie dann auf OK.

    Aufgrund dieser Änderungen werden, wenn während der Verarbeitung in Analysis Services ein NULL-Wert für das Subcategory-Attribut oder das Model Name-Attribut festgestellt wird, das unbekannte Element als Schlüsselwert ersetzt und die benutzerdefinierten Hierarchien ordnungsgemäß erstellt.

Erneutes Durchsuchen der Product-Dimension

So durchsuchen Sie die Product-Dimension

  1. Klicken Sie im Menü Erstellen auf Analysis Services Tutorial bereitstellen.

  2. Klicken Sie nach dem erfolgreichen Abschluss der Bereitstellung auf die Registerkarte Browser im Dimensions-Designer für die Product-Dimension, und klicken Sie dann auf Verbindung wiederherstellen.

  3. Überprüfen Sie, ob Product Categories in der Hierarchie-Liste ausgewählt ist, und erweitern Sie dann All Products.

    Beachten Sie, dass Assembly Components als neues Element auf der Category-Ebene angezeigt wird.

  4. Erweitern Sie das Assembly Components-Element der Category-Ebene, und erweitern Sie dann das Assembly Components-Element der Subcategory-Ebene.

    Beachten Sie, dass die Assemblykomponenten jetzt auf der Product Name-Ebene angezeigt werden, so wie im folgenden Bild zu sehen.

    Product Name-Ebene mit Assemblykomponenten

  5. Wählen Sie Produktmodellgruppen in der Hierarchie-Liste aus, erweitern Sie All Products, erweitern Sie das Assembly Components-Element auf der Product Line-Ebene, und erweitern Sie dann das Assembly Components-Element der Model Name-Ebene.

    Beachten Sie, dass alle Assemblykomponenten jetzt auf der Product Name-Ebene angezeigt werden.

ms170707.note(de-de,SQL.90).gifHinweis:
Durch Downloaden und Installieren der aktualisierten Beispiele ist in Lektion 4 ein abgeschlossenes Projekt verfügbar. Weitere Informationen finden Sie unter "Zugreifen auf aktualisierte Beispiele" in Installieren von Beispielen.

Nächste Lektion

Lektion 5: Definieren von Beziehungen zwischen Dimensionen und Measuregruppen