2011-02-10

Einen DWH-Cube erzeugen mit MS SQL Server 2008

Ein vorangegangener Post beschäftigt sich mit Allgemeinen Informationen für Anwender.

Dieser Post behandelt:

  • Technische Hintergründe, die zum Erstellen eines Cubes relevant sind.
  • Best-Practice Empfehlungen von Microsoft.

Von der Datenbank zum Cube

  1. Datasource (DS): Speichert Connection zu Ursprungsdaten <- können / sollten bereits aufbereitet sein
  2. DatasourceView (DSV): Abstrakte Schicht über DS (Joins über DSen, Subsets von Daten aus DS, Aggregate, Keys)
  3. Measures: numerische Werte, Fakten, die von Usern analysiert werden
  4. MeasureGroups: Logische Gruppierung von Measures
  5. Dimensions: Bringen Measures in einen Kontext -> sind in Hierarchien organisiert (zB. Tag -> Monat -> Jahr)
  6. Cube: Kombination von Dimensionen und Measures. Formen multidimensionale Struktur, die die aggregierten Werte der Measures über alle Dimensionen (entlang deren Hierarchien) enthällt.

Tools

  • Business Intelligence Development Studio: BI Solution erzeugen
  • Microsoft SQL Server Management Studio: BI Solution managen
  • Source Control for Analysis Services integrierbar

Datasources, DataSourceViews und Cubes mit Measures, MeasuereGroups und Dimensionen können über die Wizzards in den Microsoft-Tools einfach erstellt werden.


Zeit Dimensionen: zu beachten

  • mehrere Zeitdim. vs. eine Zeitdim. mit vielen Hierarchien (letzteres vorzuziehen)
  • Zeitdim. werden immer unabhängig von anderen Dimensionen behandelt
  • Zeitdim.-Tabelle lässt sich um eigene Hierarchiestufen erweitern
  • Server-Zeitdim. bereits verfügbar (es sollte also keine eigene Zeitdim. angelegt werden)

Cube Designer
Der Cube-Designer ist Bestandteil des Development Studios. In ihm kann man:

  • Cube-Struktur bearbeiten
  • KPIs, Actions, Cube-Partitionierung, Storage, Aggregationen und Perspektiven erzeugen und ändern
  • Übersetzungen zur Lokalisierung einrichten und pflegen
  • Cube brausen (wie in Excel) (nicht vergessen: erst deployen, dann reconnecten, dann brausen). "Browsen als ..." ist eine sinnvolle Funktion, um die Rolle eines Users anzunehmen. So kann man die Rechtevergabe prüfen.

Best-Practice Data Source Design

  • Microsoft OLEDB Provider für SQL Server (nicht .NET SqlClientDataProvider) verwenden -> nativer Code = bessere Performance

Best-Practice Cube Design

  • Non-related MeasureGroups in einem Cube vermeiden -> Performance. Optional kann ein Cross-Topic-Cube über linked MeasureGroups erzeugt werden.
  • AttributeHierarchyEnabled auf false setzen, für alle Cube-Attribute die granularer als das Update-Intervall des Cubes sind. (Beispiel: Zeit-Hierarchie Jahr bis Tag. Cube wird wöchentlich aktualisiert -> false für Attribute Tag -> verhindert User-Verwirrung)
  • Kleinsten möglichen numerischen Datentyp für Measures verwenden ("ALL"-Value muss rein passen) -> Speicherplatz

In einem folgenden Post wird es darum gehen, wie man mit Cubes und Dimensionen arbeitet.


Kommentar veröffentlichen