Sortieren von Attributelementen basierend auf einem sekundären Attribut
In Lektion 3 haben Sie das Sortieren von Attributelementen basierend auf ihrem Namen oder ihrem Schlüsselwert kennen gelernt. Sie haben auch die Verwendung eines zusammengesetzten Elementschlüssels in Bezug auf Attributelemente und Sortierreihenfolge kennen gelernt. Weitere Informationen finden Sie unter Ändern der Time-Dimension. Es kann allerdings vorkommen, dass Sie Attributelemente basierend auf einem sekundären Attribut sortieren müssen, um die gewünschte Sortierreihenfolge zu erhalten, beispielsweise wenn weder der Name des Attributs noch der Schlüssel des Attributs die von Ihnen gewünschte Sortierreihenfolge ermöglicht. Sie müssen ein sekundäres Attribut verwenden, das mit dem Attribut verknüpft ist, um ein Attribut nach einem sekundären Attributnamen oder Schlüssel zu sortieren.
Attributbeziehungen definieren die Beziehungen oder Abhängigkeiten zwischen Attributen. In einer Dimension, die auf einer einzelnen relationalen Tabelle basiert, sind typischerweise alle Attribute durch das Schlüsselattribut miteinander verknüpft. Der Grund hierfür ist, dass alle Attribute für eine Dimension Informationen zu den Elementen bereitstellen, die über das Schlüsselattribut der Dimension mit den Fakten in der Faktentabelle für jede verbundene Measuregruppe verknüpft sind. In einer Dimension, die auf mehreren Tabellen basiert, sind Elemente typischerweise basierend auf dem Verknüpfungsschlüssel zwischen den Tabellen verknüpft.
Benutzer interessieren sich allerdings möglicherweise für zusätzliche Informationen zu Elementen auf einer bestimmten Ebene in einer Hierarchie. Mithilfe des Dimensions-Designers können Sie zusätzliche Beziehungen zwischen Attributen definieren oder die Standardbeziehungen ändern, um die Leistung zu verbessern. Die wesentliche Einschränkung beim Erstellen einer Attributbeziehung liegt darin, sicherzustellen, dass das Attribut, auf das verwiesen wird, nicht mehr als einen Wert für jeweils ein Element in dem Attribut aufweist, mit dem es verknüpft ist. Wenn Sie eine Beziehung zwischen zwei Attributen definieren, können Sie die Beziehung fest oder flexibel definieren, basierend darauf, ob sich die Beziehungen zwischen Elementen mit der Zeit ändern. Ein Angestellter kann beispielsweise in eine andere Verkaufsregion ziehen, aber eine Stadt zieht nicht in ein anderes Land bzw. in eine andere Region. Wenn eine Beziehung als fest definiert ist, werden Attributaggregationen nicht jedes Mal neu berechnet, wenn die Dimension inkrementell verarbeitet wird. Allerdings muss die Dimension vollständig verarbeitet werden, wenn sich die Beziehung zwischen Elementen ändert. Weitere Informationen finden Sie unter Attributbeziehungen, Definieren und Konfigurieren einer Attributbeziehung, Konfigurieren von Attributbeziehungseigenschaften und Angeben von Attributbeziehungen zwischen Attributen in einer benutzerdefinierten Hierarchie.
In den Aufgaben in diesem Thema definieren Sie ein neues Attribut in der Time-Dimension basierend auf einer vorhandenen Spalte in der zugrunde liegenden Dimensionstabelle. Sie verwenden dieses neue Attribut zum chronologischen statt alphabetischen Sortieren von Kalendermonatselementen. Sie definieren auch ein neues Attribut in der Customer-Dimension basierend auf der benannten Berechnung, die Sie zum Sortieren der Commute Distance-Attributelemente verwenden werden. In den Aufgaben des nächsten Themas lernen Sie, Attributbeziehungen zum Verbessern der Abfrageleistung zu verwenden.
Definieren einer Attributbeziehung und Sortierreihenfolge in der Time-Dimension
So definieren Sie eine Attributbeziehung und Sortierreihenfolge in der Time-Dimension
Öffnen Sie den Dimensions-Designer für die Time-Dimension, und überprüfen Sie dann die OrderBy-Eigenschaft für das Month Name-Attribut im Eigenschaftenfenster.
Beachten Sie, dass die Month Name-Attributelemente nach ihren Schlüsselwerten sortiert sind.
Wechseln Sie zur Registerkarte Browser, überprüfen Sie, ob Calendar Time in der Hierarchie-Liste ausgewählt ist, und erweitern Sie dann die Ebenen in der benutzerdefinierten Hierarchie, um die Sortierreihenfolge für die Kalendermonate zu überprüfen.
Beachten Sie, dass die Elemente der Attributhierarchie nach den ASCII-Werten ihrer Elementschlüssel sortiert sind, also Monat und Jahr. In diesem Fall werden Kalendermonate durch das Sortieren nach Attributname oder Schlüssel nicht chronologisch sortiert. Sortieren Sie die Elemente der Attributhierarchie basierend auf einem neuen Attribut, dem MonthNumberOfYear-Attribut, um dieses Problem zu lösen. Sie erstellen dieses Attribut basierend auf einer Spalte, die in der DimTime-Dimensionstabelle vorhanden ist.
Wechseln Sie zur Registerkarte Dimensionsstruktur für die Time-Dimension, klicken Sie mit der rechten Maustaste auf MonthNumberOfYear im Bereich Datenquellensicht, und klicken Sie dann auf Neues Attribut aus Spalte.
Wählen Sie im Bereich AttributeMonth Number Of Year aus, und legen Sie dann die AttributeHierarchyEnabled-Eigenschaft auf False im Eigenschaftenfenster fest, legen Sie die AttributeHierarchyOptimizedState-Eigenschaft auf NotOptimized fest, und legen Sie die AttributeHierarchyOrdered-Eigenschaft auf False fest.
Durch diese Einstellungen wird das Attribut für Benutzer ausgeblendet und Verarbeitungszeit gespart. Diese Einstellungen sollten deswegen so festgelegt werden, weil dieses neue Attribut nur für die Sortierung der Elemente eines anderen Attributs verwendet werden.
Hinweis: |
---|
Diese Aufgabe wird durch alphabetisches Sortieren der Eigenschaften im Eigenschaftenfenster vereinfacht, da diese drei Eigenschaften nebeneinander sortiert werden. |
- Erweitern Sie Date im Bereich Attribute.
Beachten Sie, dass alle Attribute in der Time-Dimension direkt mit dem Date-Attribut verknüpft sind, bei dem es sich um den Elementschlüssel handelt, der die Dimensionselemente mit den Fakten in den verbundenen Measuregruppen verknüpft. - Erweitern Sie Month Name.
Beachten Sie, dass zwischen den Attributen Month Name und Month Number Of Year keine Beziehung definiert ist. - Ziehen Sie das Month Number Of Year-Attribut zum <new attribute relationship>-Tag unter dem Month Name-Attribut.
Sie hätten zwar auch eine zusätzliche Beziehung definieren können, aber das Verschieben der vorhandenen Beziehung bewirkt eine effizientere Verarbeitungsleistung und eine geringere Redundanz. Sie haben jetzt eine Beziehung zwischen den Attributen Month Number Of Year und Month Name definiert. Beachten Sie im Eigenschaftenfenster, dass der Standardwert für die RelationshipType-Eigenschaft für die Month Number Of Year-Attributbeziehung Flexible ist. - Ändern Sie im Eigenschaftenfenster den Wert der RelationshipType-Eigenschaft auf Rigid.
Die Beziehungen zwischen den Elementen des Month Name- und des Month Number Of Year-Attributs ändern sich nicht mit der Zeit. Daher löscht Analysis Services während der inkrementellen Verarbeitung keine Aggregationen für diese Beziehung. Wenn eine Änderung vorgenommen wird, kommt es während der inkrementellen Verarbeitung zu einem Verarbeitungsfehler, und Sie müssen eine vollständige Verarbeitung der Dimension ausführen. Sie können nun die Sortierreihenfolge für die Elemente von Month Name festlegen.
Das folgende Bild zeigt die RelationshipType-Eigenschaft, die auf Rigid für die Month Number Of Year-Attributbeziehung des Month Name-Attributs festgelegt ist.
- Wählen Sie im Bereich AttributeMonth Name aus, und ändern Sie dann den Wert der OrderBy-Eigenschaft im Eigenschaftenfenster zu AttributeKey, und ändern Sie den Wert der OrderByAttribute-Eigenschaft zu Month Number Of Year.
Das folgende Bild zeigt diese Eigenschaftsänderungen im Eigenschaftenfenster.
- Klicken Sie im Menü Erstellen auf Analysis Services Tutorial bereitstellen.
- Wechseln Sie nach dem erfolgreichen Abschluss der Bereitstellung zur Registerkarte Browser für die Time-Dimension, klicken Sie auf Verbindung wiederherstellen, und durchsuchen Sie dann die Benutzerhierarchien Calendar Time und Fiscal Time, um zu überprüfen, ob die Monate jetzt in chronologischer Reihenfolge sortiert sind.
Beachten Sie, dass die Monate jetzt in chronologischer Ordnung sortiert sind, wie im folgenden Bild zu sehen.
Definieren von Attributbeziehungen und der Sortierreihenfolge in der Customer-Dimension
So definieren Sie die Attributbeziehungen und die Sortierreihenfolge in der Customer-Dimension
Wechseln Sie zur Registerkarte Dimensionsstruktur im Dimensions-Designer für die Customer-Dimension.
Wählen Sie im Bereich Attribute das Commute Distance-Attribut aus, und überprüfen Sie dann die OrderBy-Eigenschaft im Eigenschaftenfenster.
Wechseln Sie zur Registerkarte Browser, und durchsuchen Sie dann die Elemente der Commute Distance-Attributhierarchie.
Beachten Sie, dass die Elemente dieser Attributhierarchie nach den ASCII-Werten des Elementschlüssels sortiert sind. In diesem Fall werden die Pendlerentfernungen durch das Sortieren nach Attributname oder Schlüssel nicht von der geringsten zur höchsten Entfernung sortiert. In dieser Aufgabe sortieren Sie die Elemente der Attributhierarchie basierend auf der benannten Berechnung CommuteDistanceSort, die die entsprechende Sortiernummer jedem eindeutigen Wert in der Spalte zuschreibt. Diese benannte Berechnung wurde bereits zur Customer-Tabelle in der Adventure Works DW-Datenquellensicht hinzugefügt, um Zeit zu sparen. Sie können zu dieser Datenquellensicht wechseln, um das SQL-Skript anzuzeigen, das in dieser benannten Berechnung verwendet wird. Weitere Informationen finden Sie unter Definieren von benannten Berechnungen in einer Datenquellensicht (Analysis Services).
Das folgende Bild zeigt die Elemente der Commute Distance-Attributhierarchie sortiert nach den ASCII-Werten des Elementschlüssels.
Wechseln Sie zur Registerkarte Dimensionsstruktur im Dimensions-Designer für die Customer-Dimension, klicken Sie mit der rechten Maustaste auf CommuteDistanceSort in der Customer-Tabelle im Bereich Datenquellensicht, und klicken Sie dann auf Neues Attribut aus Spalte.
Wählen Sie im Bereich AttributeCommute Distance Sort aus, und legen Sie dann die AttributeHierarchyEnabled-Eigenschaft für dieses Attribut auf False im Eigenschaftenfenster fest, legen Sie die AttributeHierarchyOptimizedState-Eigenschaft auf NotOptimized fest, und legen Sie die AttributeHierarchyOrdered-Eigenschaft auf False fest.
Durch diese Einstellungen wird das Attribut für Benutzer ausgeblendet und Verarbeitungsressourcen gespart. Diese Einstellungen sollten deswegen so festgelegt werden, weil das neue Attribut nur für die Sortierung der Elemente eines anderen Attributs verwendet werden.
Erweitern Sie im Bereich AttributeFull Name.
Beachten Sie, dass alle Attribute in der Customer-Dimension, die aus der Customer-Tabelle in der Analysis Services Tutorial-Datenquellensicht abgeleitet sind, durch dieses Attribut verknüpft sind.
Erweitern Sie Geography.
Beachten Sie, dass alle Attribute in der Customer-Dimension, die aus der Geography-Tabelle in der Analysis Services Tutorial-Datenquellensicht abgeleitet sind, durch das Geography-Attribut verknüpft sind.
Wählen Sie Geography aus, und legen Sie dann seine AttributeHierarchyVisible-Eigenschaft auf False im Eigenschaftenfenster fest, legen Sie seine AttributeHierarchyOptimized-Eigenschaft auf NotOptimized fest, und legen Sie seine AttributeHierarchyOrdered-Eigenschaft auf False fest.
Weil dieses Attribut nicht zum Durchsuchen verwendet wird, wird durch diese Einstellungen das Attribut für Benutzer ausgeblendet und Verarbeitungszeit gespart. Eine Attributhierarchie muss aktiviert sein, wenn sie Elementeigenschaften aufweist.
Erweitern Sie im Bereich AttributeCommute Distance.
Beachten Sie, dass zwischen diesem Attribut und dem Commute Distance Sort-Attribut keine Beziehung definiert ist.
Ziehen Sie das Commute Distance Sort-Attribut zum <new attribute relationship>-Tag unter dem Commute Distance-Attribut.
Sie haben jetzt eine Beziehung zwischen dem Commute Distance- und dem Commute Distance Sort-Attribut definiert. Beachten Sie im Eigenschaftenfenster, dass der Standardwert für die RelationshipType-Eigenschaft des Commute Distance Sort-Elements des Commute Distance-Attributs Flexible ist.
Ändern Sie im Eigenschaftenfenster den Wert der RelationshipType-Eigenschaft auf Rigid.
Die Beziehung zwischen den Elementen der Attribute Commute Distance und Commute Distance Sort ändern sich nicht mit der Zeit. Sie können jetzt die Sortierreihenfolge für das Commute Distance-Attribut festlegen.
Wählen Sie im Bereich AttributeCommute Distance aus, und ändern Sie dann den Wert der OrderBy-Eigenschaft im Eigenschaftenfenster zu AttributeKey, und ändern Sie den Wert der OrderByAttribute-Eigenschaft zu Commute Distance Sort.
Klicken Sie im Menü Erstellen auf Analysis Services Tutorial bereitstellen.
Wechseln Sie nach dem erfolgreichen Abschluss der Bereitstellung zur Registerkarte Browser des Dimensions-Designers für die Customer-Dimension, klicken Sie auf Verbindung wiederherstellen, und durchsuchen Sie dann die Commute Distance-Attributhierarchie.
Beachten Sie, dass die Hierarchieelemente jetzt in einer logischen Reihenfolge basierend auf zunehmender Entfernung sortiert sind, wie im folgenden Bild zu sehen.
Nächste Aufgabe in dieser Lektion
Angeben von Attributbeziehungen zwischen Attributen in einer benutzerdefinierten Hierarchie