Benutzerdefinierte Hierarchien – unregelmäßige Hierarchien

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Eine unregelmäßige Hierarchie ist eine benutzerdefinierte Hierarchie, die über eine ungerade Anzahl von Ebenen verfügt. Typische Beispiele dafür sind ein Organigramm, bei dem einer hochrangigen Führungskraft sowohl Abteilungsleiter als auch Nicht-Abteilungsleiter unterstellt sind, oder geografische Hierarchien aus Ländern, Regionen und Städten, bei denen einige Städte keinen übergeordneten Bundesstaat bzw. keine übergeordnete Provinz aufweisen, z. B. Washington D. C., Vatikanstadt oder Neu-Delhi.

Bei den meisten Hierarchien in einer Dimension besitzt jede Ebene dieselbe Anzahl von übergeordneten Elementen wie jedes andere Element auf derselben Ebene. Eine unregelmäßige Hierarchie unterscheidet sich in der Hinsicht, dass sich das logisch übergeordnete Element mindestens eines Elements nicht auf der Ebene unmittelbar über dem betreffenden Element befindet. Ist dies der Fall, verzweigt die Hierarchie auf unterschiedliche Ebenen mit verschiedenen Drilldownpfaden. Daher können Drilldownpfade in einer Clientanwendung unnötig kompliziert werden.

Die Fähigkeit, unregelmäßige Hierarchien zu verarbeiten, ist bei Clientanwendungen unterschiedlich gut ausgeprägt. Wenn ein Modell unregelmäßige Hierarchien aufweist, bedarf es einiger zusätzlicher Schritte, um das erwartete Renderingverhalten zu erreichen.

Überprüfen Sie zunächst, auf welche Weise der Drilldownpfad von der Clientanwendung verwaltet wird. Beispielsweise wiederholt Excel die übergeordneten Namen als Platzhalter für fehlende Werte. Um dieses Verhalten zu reproduzieren, erstellen Sie im mehrdimensionalen Adventure Works-Modell mithilfe der Sales Territory-Dimension eine PivotTable. In einer PivotTable mit den Attributen Sales Territory Group, Country und Region werden Sie sehen, dass Länder/Regionen, für die ein Regionswert fehlt, einen Platzhalter erhalten, in diesem Fall eine Wiederholung des übergeordneten Elements darüber (Landesname). Dieses Verhalten wird von der Verbindungszeichenfolgen-Eigenschaft MDX Compatibility=1 abgeleitet, die innerhalb von Excel unveränderlich ist. Wenn das gewünschte Drilldownverhalten im Client nicht standardmäßig implementiert ist, können Sie Eigenschaften im Modell festlegen, um mindestens einige Verhaltensweisen zu ändern.

Dieses Thema enthält folgende Abschnitte:

Methoden zum Ändern der Drilldownnavigation in einer unregelmäßigen Hierarchie

Eine unregelmäßige Hierarchie wird zu einem Problem, wenn die Drilldownnavigation unerwartete Werte zurückgibt oder als wenig benutzerfreundlich empfunden wird. Die folgenden Optionen stehen Ihnen zur Verfügung, um Navigationsprobleme aufgrund unregelmäßiger Hierarchien zu beheben:

  • Verwenden Sie eine reguläre Hierarchie, wobei Sie jedoch für jede Ebene die HideMemberIf -Eigenschaft festlegen. Dadurch geben Sie an, ob eine fehlende Ebene für den Benutzer sichtbar gemacht wird. Wenn Sie HideMemberIffestlegen, sollten Sie auch MDXCompatibility für die Verbindungszeichenfolge festlegen, um das standardmäßige Navigationsverhalten zu überschreiben. Anweisungen zum Festlegen dieser Eigenschaften finden Sie in diesem Thema.

  • Erstellen Sie eine Über-/Unterordnungshierarchie, von der die Ebenenelemente explizit verwaltet werden. Eine grafische Darstellung dieser Methode finden Sie im Blogbeitrag Ragged Hierarchy in SSAS(Unregelmäßige SSAS-Hierarchie). Weitere Informationen finden Sie in der Onlinedokumentation unter Über- und untergeordnete Dimensionen. Die Erstellung einer Über-/Unterordnungshierarchie hat den Nachteil, dass Sie pro Dimension nur eine solche Hierarchie erstellen können. Darüber hinaus treten in der Regel Leistungsprobleme auf, wenn Sie Aggregationen für Zwischenelemente berechnen.

Wenn die Dimension mehr als eine unregelmäßige Hierarchie enthält, sollten Sie die erste Methode verwenden, also HideMemberIffestlegen. BI-Entwickler, die bereits praktische Erfahrungen mit unregelmäßigen Hierarchien gesammelt haben, würden sogar zusätzliche Änderungen in den physischen Datentabellen befürworten und getrennte Tabellen für jede Ebene erstellen. Ausführliche Informationen zu dieser Technik finden Sie unter Martin Masons SSAS Financial Cube-Part 1a-Ragged Hierarchies (Blog).

Festlegen von "HideMemberIf" zum Ausblenden von Elementen in einer regulären Hierarchie

In der Tabelle einer unregelmäßigen Dimension können logisch fehlende Elemente auf verschiedene Weise dargestellt werden. Die Tabellenzellen können NULL-Werte oder leere Zeichenfolgen enthalten. Sie können jedoch auch denselben Wert wie das übergeordnete Objekt enthalten, der in diesem Fall als Platzhalter dient. Die Darstellung von Platzhaltern wird vom Platzhalterstatus der untergeordneten Elemente gemäß der HideMemberIf -Eigenschaft und der MDX Compatibility -Verbindungszeichenfolgen-Eigenschaft für die Clientanwendung festgelegt.

Bei Clientanwendungen, die die Anzeige unregelmäßiger Hierarchien unterstützen, können Sie diese Eigenschaften verwenden, um logisch fehlende Elemente auszublenden.

  1. Doppelklicken Sie in SSDT auf eine Dimension, um sie im Dimensions-Designer zu öffnen. Auf der ersten Registerkarte Dimensionsstruktur werden die Attributhierarchien im Bereich Hierarchien angezeigt.

  2. Klicken Sie mit der rechten Maustaste auf ein Element innerhalb der Hierarchie, und wählen Sie Eigenschaftenaus. Legen Sie HideMemberIf auf einen der unten beschriebenen Werte fest.

    HideMemberIf-Einstellung BESCHREIBUNG
    Never Ebenenelemente werden nie ausgeblendet. Dies ist der Standardwert.
    OnlyChildWithNoName Ein Ebenenelement wird ausgeblendet, wenn es das einzige untergeordnete Element eines übergeordneten Elements und der Name NULL oder eine leere Zeichenfolge ist.
    OnlyChildWithParentName Ein Ebenenelement wird ausgeblendet, wenn es das einzige untergeordnete Element eines übergeordneten Elements ist und sein Name dem des übergeordneten Elements entspricht.
    NoName Ein Ebenenelement wird ausgeblendet, wenn sein Name leer ist.
    ParentName Ein Ebenenelement wird ausgeblendet, wenn sein Name dem seines übergeordneten Elements entspricht.

Festlegen der MDX-Kompatibilität, um zu bestimmen, wie Platzhalter in Clientanwendungen dargestellt werden

Nachdem Sie HideMemberIf für eine Hierarchieebene festgelegt haben, sollten Sie auch die MDX Compatibility -Eigenschaft in der von der Clientanwendung gesendeten Verbindungszeichenfolge festlegen. Die MDX Compatibility -Einstellung bestimmt, ob HideMemberIf verwendet wird.

Einstellung für die MDX-Kompatibilität BESCHREIBUNG Verwendung
1 Zeigt einen Platzhalterwert an. Dies ist der von Excel, SSDT und SSMS verwendete Standardwert. Er weist den Server an, beim Drilldown auf leere Ebenen einer unregelmäßigen Hierarchie Platzhalterwerte zurückzugeben. Wenn Sie auf den Platzhalterwert klicken, können Sie einen Drilldown bis auf die untergeordneten Knoten (des Blatts) ausführen.

Die Verbindungszeichenfolge zur Verbindung mit Analysis Services ist im Besitz von Excel, und MDX Compatibility wird bei jeder neuen Verbindung grundsätzlich auf 1 festgelegt. Bei diesem Verhalten wird die Abwärtskompatibilität beibehalten.
2 Blendet einen Platzhalterwert (entweder ein NULL-Wert oder ein Duplikat der übergeordneten Ebene) aus, wobei andere Ebenen und Knoten mit relevanten Werten jedoch eingeblendet bleiben. MDX Compatibility= 2 ist in der Regel die bevorzugte Einstellung für unregelmäßige Hierarchien. Ein Reporting Services Bericht und einige Clientanwendungen von Drittanbietern können diese Einstellung beibehalten.

Weitere Informationen

Erstellen von benutzerdefinierten Hierarchien
Benutzerhierarchien
Über- und untergeordnete Dimensionen
Verbindungszeichenfolgen-Eigenschaften (Analysis Services)