2011-02-15

Mit Cubes und Dimensionen arbeiten 1: Hierarchien

Dies ist die Fortsetzung der Serie zum Microsoft SQL Server 2008 Analysis Services. Es gibt bereits einen Artikel Allgemeine Informationen für Anwender und Einen DWH Cube erzeugen mit MS SQL Server 2008.

Dimensionen organisieren Daten in Relation zu einem Interessengebiet, zB. Kunden, Filialen, Mitarbeiter, User. Dimensionen enthalten Attribute, die mit Spalten in DimensionTables korrelieren. Diese Attribute erscheinen als Attribut-Hierarchien und können auf verschiedene Arten organisiert werden. (Die Arten werden weiter unten aufgelistet.) Dies ist abhängig von dem darunterliegenden DimensionTables. Hierarchien werden verwendet, um die im Cube enthaltenen Measures zu organisieren.

Attribute Column Binding
Um die Anzeige von Attributen zu kontrollieren, kann man folgende Punkte einer Column definieren:

  • KeyColumn: Schlüssel-Connection zur FactTable (heißt Primarykey)
  • NameColumn: Wert, den User sieht, ZB. CalculatedValue (IF 1 THEN 'W' oder CustomerName statt CustmerID)
  • ValueColumn: Wert, der von der MDX Membervalue-Funktion zurückgegeben wird. (Bsp. Zeitdim: Day-KeyColmnn ist SMALLINT, Day-ValueColumn ist SMALLDATETIME <- ermöglicht Berechnung ohne String-Casting


Hierarchien

  • Balanced Hierarchy: Land -> Bundesland -> Stadt -> PLZ
  • Unbalanced Hierarchy: Familienstand -> Geschlecht (schlecht in Performance)
  • Parent-Child Hierarchy: Self-Join in DimTable, zB. Familienstammbaum (unbalanced)
  • Ragged Hierarchies: Wie Parent-Child, aber Joins über unterschiedliche Spalten, zB: Land -> Bundesland -> ..., wobei Bundesland nur in Deutschland verwendet wird, nicht in der Schweiz
    -> HideMemberIf macht aus Balanced~ eine Ragged~. Mögliche Werte:
    • Never: => Balanced
    • OnlyChildWithNoName: Verbirgt alle Childs mit null oder Leer String-Wert
    • OnlyChildWithParentName: Verbirgt alle Childs mit Wert = Patent-Wert. ZB. HH->HH, wenn Statt unterstes Level
    • NotName: alle null oder Leer-String Werte
    • ParentName: alle mit Namen wie Parent. ZB. HH->HH, auch wenn noch PLZ folgt


Hierarchien verwenden

  • isAggregatable: "ALL"-Level erzeugen?
  • AttributeHierarchyOrdered: False -> Performance-Gewinn, wenn kein Zugriff
  • AttributeHierarchyOptimizedState: Not Optimized -> keine Indizes werden erzeugt -> kürzere Processing-Zeit, längere Query-Zeit
  • Hierarchien und Attribute disablen -> Performance-Gewinn, Übersichtlichkeit User 
    • AttributeHierarchyEnabled
    • AttributeHierarchyVisible: Attribut nur in user-definierten Hierarchien sichtbar

Es folgt in Kürze 'Mit Cubes und Dimensionen arbeiten 2: Attribute'


Kommentar veröffentlichen