Posts mit dem Label Cube werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Cube werden angezeigt. Alle Posts anzeigen

2011-04-13

Mit Cubes und Dimensionen arbeiten 7: Cube individualisieren

Dies ist der letzte Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


Cube individualisieren
Ein DWH-Cube kann auf vielfältige Weise individualisiert werden:
  • Es können KPIs erstellt werden und auch als zB. Ampel-Cockpit dargestellt werden. 
  • Actions sind gespeicherte MDX-Queries, die von Clients ausgeführt werden können. Möglich sind:
    • Commandline
    • Dataset: gibt Datensatz zurück
    • Drillthrough
    • HTML: führt HTML-Script aus
    • Proprietary: führt eine Operation aus
    • Report: URL basierter Request, dessen Submit parameterisierbar ist
    • Rowset: gibt ein Rowset zurück
    • Statement: führt ein OLE DB-Kommando aus
    • URL: zeigt eine dynamische Webseite an
  • Perspektiven: CubeViews erstellen -> diese sind allerdings nicht zur Rechtevergabe verwendbar
  • Übersetzungen

2011-04-11

Mit Cubes und Dimensionen arbeiten 6: MDX-Queries

Ein weiterer Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


MDX-Queries

MDX (Multidimensional Expressions) ist die Query-Sprache für multidimensionalen Daten in SQL Server .


MDX dient zur
  • Berechnung von CalculatedMembers. Diese werden zur Query-Laufzeit berechnet. ZB: Nettopreise
  • Definition von NamedSets, also Set von Dimension-Member

Die MDX-Syntax wird einem in diversen Tutorials näher gebracht:

2011-04-10

Mit Cubes und Dimensionen arbeiten 5: Aggregations

Ein weiterer Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


Wobei dies gar kein vollständiger Artikel ist, sondern vielleicht eher eine Randnotiz:



Die Query-Zeit lässt sich drastisch durch vorberechnete Cube-Werte reduzieren. Dafür wird dann allerdings mehr Speicher benötigt und die Aufbereitung des Cubes dauert natürlich länger. 
Das Querylog kann als Parameter verwendet werden, das heißt, das automatisch häufig gestellte Anfragen vorberechnet werden und selten gestellte Anfragen erst on-the-fly beim Absetzen der Query.



2011-04-08

Mit Cubes und Dimensionen arbeiten 4: Measures und MeasureGroups

Ein weiterer Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


Measures

Measures sind Spalten, die quantifizierbare Daten (in der Regel numerisch) enthalten und aggregierbar sind.

  • Properties werden von der MeasureGroup geerbt, können aber angepasst werden.
  • Es gibt folgende Properties: wie aggregieren, Datentyp, Beschreibung, Display Name, Display Format, unique ID (readonly), MDX (falls erzeugt), Visibility -> Link

MeasureGroups
Im Cube werden Measures anhand der darunterliegenden Fact-Tables in MeasureGroups gruppiert.
  • Die MeasueGroups werden verwendet, um Dimensionen mit Measures in Verbindung zu bringen
  • MeasureGroups können in Partitionen zerlegt werden. 
    • Es sind horizontale und vertikale Partitionen möglich
    • Jede Partition hat eine eigene FactTable
  • Properties: Link
  • : Link

2011-04-06

Mit Cubes und Dimensionen arbeiten 3: Best Practices Dimension Design

Ein weiterer Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


In diesem Artikel geht es um Best Practice Empfehlungen von Microsoft bei der Entwicklung von Cubes und Dimensionen für den SSAS.
  • Wenn immer möglich: Attribut-Relationen herstellen -> Performance, Integrität, ...
  • keine Attribute erzeugen, die nicht verwendet werden
  • keine redundanten Attribut-Relationen erzeugen. Existieren zB. A -> B und B -> C, dann ist Relation A -> C redundant -> kein Benefit, könnte aber Probleme verursachen
  • Dimension- u. Attribute-Type Property korrekt setzen, für Zeit-, Account- u. geographische Dimensionen
    • Type-Property immer für Dim. u. Attr. setzen.
    • Time-Attribute richtig interpretieren: [Month] vs. [Month of Year]

2011-04-04

Mit Cubes und Dimensionen arbeiten 2: Attribute

Ein weiterer Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


Attribute sortieren
Jedes Attribut kann zur Sortierung herangezogen werden
  • by name: alphabetisch
  • by key: Hierarchiestufe wählbar, zB. 
    • Key: Quarter -> alle Jahre unter Q1, Q2, ...
    • Key: Quarter + Year -> Q1 2000, Q2 2000, ..., Q1 2001, ...
  • by secondary attribute: alle Attribute, auch berechnete

Attribute gruppieren
Übersicht, Organisation der Members, zB. Kunden in Einkommensgruppen
  • Equal Areas: gleiche Anzahl Members pro Group
  • Clusters: basierend auf Trainingsdaten
  • DistinctionBucketCount property: Anzahl Buckets, default: Wurzel aus distinct Members

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'