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'


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.


2011-02-07

Allgemeine Informationen für Anwender zum Thema DataWarehousing (DWH)

Warum ein DWH?
Ein DWH dient als Grundlage, um bessere Business-Entscheidungen treffen zu können!

  • Business-Peformance Metriken erkennen
  • Business-Trends und ~Issues identifizieren
  • Verhaltens-Vorhersagen treffen

Formen der Datenanalyse

  • Reports (Mails, Excel, Web-Interface)
  • Multi-Dimensionale Analysen (Cube -> Pivot Tabellen)
  • Data Mining (automatisch komplexe Zusammenhänge erkennen, zB. saisonale Zusammenhänge, Käufer-Eigenschaften)

Cube

  • Fakten / Measures: numerische Werte (Preis, Anzahl); Schlüssel-Business-Werte, die man aggregieren und analysieren will
  • Dimensionen: Kontext der Fakten; sie definieren die Aspekte des Business

In folgenden Posts wird es darum gehen, wie man einen DWH-Cube erzeugt mit MS SQL Server 2008 und wie man mit Cubes und Dimensionen arbeitet.


2011-02-02

The naked presenter

Amazon PartnerNet
Am vergangenen Webmontag in Hamburg haben Melanie Schwarzer und René Sasse zweit sehr interesante Vorträge zum Thema Präsentieren gehalten.

Passend zum Thema lese ich zufällig gerade das Buch "The naked presenter - Delivering Powerful Presentations With or Without Slides" (PartnerNet-Link) von Garr Reynolds (YouTube Video-Link).

Leider hatte ich zum Termin noch keine Möglichkeit reinzuschauen. Das Buch ist aber so gut aufbereitet, dass ich inzwischen - nach einmaligem Durchblättern - die Kernaussagen bereits zusammenfassen kann:
  • Natürlichkeit als Vortragender zeigen
  • Verbindung zum Publikum ist der wichtigste Punkt
  • Vortragen heißt nicht "zum Publikum (herab) reden", sondern "mit ihnen sprechen"
Vorbereitung
  • Multitasking ist ein Mythos.
  • Finde einen ungestörten Raum zur freien Entfaltung deiner Kreativität.
  • Warum? trage ich Was? vor Wem? vor?
  • Verpacke den Vortrag in eine gute Geschichte mit emotionalen Elementen.
Verbindung zum Publikum
  • Starte deinen Vortrag
    • persönlich
    • unerwartet
    • als Erzählung
    • als Herausforderung
    • mit Humor
  • Zeige dem Publikum, dass du genau jetzt genau dort sein willst.
Zeige dem Publikum, dass du begeistert von der Sache bist, die du präsentiert.
  • Leute wollen keine interessanten Leute sehen, sondern Leute, die begeistert von dem sind, was sie erzählen.
  • echte Emotionen, die wir projizieren, beeinflussen das Publikum wesentlich
  • Nähe zum Publikum und Nähe im Publikum untereinander
Vortragsgeschwindigkeit und Beteiligung des Publikums
  • alle 10 Minuten das inhaltliche Tempo wechseln und / oder das Publikum mit einbeziehen
  • Behalte das Publikum im Auge und passe deinen Vortrag dynamisch an
  • Fragen stellen, Videoclip, Rollenspiel, Diskussion
Großartiges Ende
  • einfach
  • unerwartet
  • konkret
  • glaubwürdig
  • emotional
  • Geschichte
  • positiv
All diese und weitere Punkte und wie man sie erreicht sind ausführlich in dem Buch beschrieben: "worth reading"!

2011-02-01

Multitasking ist ein Mythos

Dr. John Medina zitiert in seinem Buch "Brain Rules" (Pear Press, 2009) Erkenntnisse aus dem Bereich Cognitive Research: 
"We are biologically incapable of processig attention-rich inputs simultaneously."

Besonders beachtenswert sind folgende konkrete Zahlen aus der aktuellen Forschung: Personen, die unterbrochen werden, brauchen 50% mehr Zeit, um ihre Aufgaben zu erfüllen und machen 50% mehr Fehler.
EmailNotification, Chat, piepsende Handys und Facebook, Twitter und co also hin und wieder mal ausschalten - insbesondere wenn man mal kreativ sein will!