Frage

Ich habe einen ziemlich Standard OLTP normalisierte Datenbank und ich habe erkannt, dass ich einige komplexe Abfragen, Mittelwerte, Standardabweichungen in den verschiedenen Dimensionen in den Daten zu tun.

So habe ich zu SSAS und der Erstellung von OLAP-Cubes gedreht.

Doch die Würfel erstellen ich meine Datenquelle Struktur glauben an einen ‚Stern‘ sein muss oder ‚Schneeflocke‘ Konfiguration (die ich nicht glaube, es jetzt ist).

Ist das normale Verfahren SSIS zu verwenden irgendeine Art von ETL-Prozess auf meiner primären OLTP-DB in einer anderen relationale DB zu tun, die in dem richtigen ‚Sterne‘ Konfiguration mit Fakten und Dimensionen sind, und dann verwenden Sie diese DB als Datenquelle für die OLAP-Cubes?

Danke

War es hilfreich?

Lösung

Ja, das ist die Grundidee. Sie nehmen Ihre hoch normalisierte OLTP-Datenbank und de-normalisieren es in Würfel zum Zwecke des Schneidens und die Daten Vereinzeln und dann präsentiert Berichte über sie. Die logische Design-Technik wird dimensionale Modellierung bezeichnet. Es gibt eine Tonne von großen Informationen über dimensionale Modellierung über auf dem Kimball Gruppe . Ralph Kimball Bücher über das Thema sind ebenfalls ausgezeichnet. Wenn Sie sich mehr über die BI Tools erfahren möchten, überprüfen Sie die auf SSIS, Analysedienste und vieles mehr.

Andere Tipps

Die Antwort lautet:. Ja, aber

Eine Dimension in SSAS hat Beziehungen zwischen den Attributen, die eine einer Reihe von Feldern verwendet werden können, von Scheibe zu filtern. Diese Beziehungen können hierarchisch sein (mehr als eine Ebene tiefer -.. Ein Attribut kann ein Elternteil und Kinder können Sie schaffen auch Drill-Down-Pfade (genannt Hierarchien in SSAS), die wie Attribute wirken, sondern haben eine geführte Drill-Down

Um dies Sie tun müssen, Schlüssel in der Datenbank haben, die in einer streng hierarchischen Beziehung leben (das heißt der Schlüssel nicht Fuzzy-Beziehungen hat, wo ein Kind mehr als einen Elternteil haben kann). Beachten Sie, dass dies nicht die ganze Geschichte, aber es ist nahe genug an der Realität für den Augenblick.

Diese können Hierarchien aus einer flachen Datenstruktur durch das System oder dargestellt durch eine Schneeflocke mit Beziehungen in der zugrunde liegenden Datenquellensicht markiert aufgebaut seine (DSV ist ein Teil der Cube-Metadaten und kann verwendet werden, um Daten in einer Art und Weise zu massieren ähnlich wie Datenbankansichten).

Eine Schneeflocke ist ein 3NF-ish-Schema (es nicht unbedingt muss 3NF sein - Sie Teile davon in der Praxis abflachen können), dass nur 1 hat: M Beziehungen. M Abmessungen: SSAS kann einige andere Dimension Strukturen wie Eltern-Kind (Eltern-Kind-Beziehung mit einer rekursiven Selbstverknüpfung) und M unterstützt (M: M Beziehungen - genau das, was sie klingen). Maße dieser Art sind knifflig, aber kann für Sie nützlich sein.

Wenn Sie Schlüssel in die Quelldaten, die Semantik äquivalente Daten zu einer Schneeflocke haben dann können Sie in der Lage sein, Ihre Würfel durch eine Reihe von Datenbankansichten füllen Sie das Quellsystem, das die zugrunde liegenden Daten in einem ausreichend Schneeflocke-like präsentieren Format für Cubedimensionen zu verwenden (ich habe dies tatsächlich getan auf ein paar Gelegenheiten). Schemen, die starke Nutzung von synthetischen Schlüssel machen sind eher für diese gut funktionieren.

Falls der Hersteller oder andere Parteien werden Sie den Blick auf Ihre Source-Datenbank nicht zulassen hinzufügen können Sie in der Lage sein Blick auf eine Datenquelle anstatt zu verwenden. DSV kann virtuelle Tabellen ‚benannte Abfragen‘ genannt, die aus einer Datenbank-Abfrage gefüllt werden.

Fact Tabellen zusammenfasst Dimensionen. In SSAS2005 + können Sie verschiedene Faktentabellen in verschiedenen Körnern innerhalb einer Dimension verbinden. Ich würde normalerweise nicht viel für diese haben in einem Data Warehouse, aber diese Funktion kann nützlich sein, wenn Sie versuchen, die Quelldaten zu verwenden, ohne sie zu stark massieren zu müssen.

Wenn dies nicht funktioniert, dann können Sie auch einen ETL-Prozess zu schreiben, um einen Stern oder Snowflake-Schema zu füllen.

Ein paar Maßgaben:

  1. Cubes kann in einem Echtzeit-Modus ausgeführt gemacht werden, wo sie eine Anfrage an die zugrunde liegenden Daten ausgeben gerade. Dies hat ein gewisses Risiko einer ineffizienten Abfragen für die Quelldaten zu schaffen, so ist es nicht empfehlenswert, wenn Sie wirklich sicher sind, dass Sie wissen, was Sie tun.

  2. A propos von (i), werden Sie wahrscheinlich nicht in der Lage sein Einsatz die Würfel als Datenquelle für Bildschirme in Ihrer Anwendung. Wenn Sie Mittelwerte für etwas zu berechnen, die der Benutzer auf einem Bildschirm sehen möchte Sie es wahrscheinlich hinter dem Bildschirm in einer gespeicherten Prozedur zu berechnen haben.

  3. Wenn Sie dies tun, eine replizierte Datenbank und füllen Sie den Würfel aus, dass einrichten. Lassen Sie sich diese Datenbank regelmäßig aktualisieren, damit Ihr ETL-Prozess von einem konsistenten Datensatz ausgeführt werden kann. Wenn Sie von einer Live-Datenbank laufen, laufen Sie Gefahr, einige der Gegenstände bevölkert wird später hängen von Datensätzen, die erstellt wurden, nachdem der entsprechende Prozess ausgeführt wurde.
    können Sie die Situation haben, wo Sie eine Dimension Last laufen, und dann neue Daten in das System eingegeben. Wenn die Tatsache Tabellenlast läuft, enthält es nun Daten, die auf Dimensionsdaten abhängig ist, die nicht geladen wurde. Dadurch wird den Würfel brechen und bewirken, dass der Ladeprozess zum Scheitern verurteilt. Batch Auffrischen einer replizierten Datenbank, die ETL oder Würfel Lasten aus dieses Problem wird mildern laufen.
    Wenn Sie nicht über die opti habenauf einer replizierten Datenbank können Sie mehr schlaff Richtlinien für fehlende Daten einrichten.

  4. Wenn Ihre zugrunde liegenden Produktionsdaten erhebliche Datenqualitätsprobleme haben, wird sie in dem Würfel reflektiert werden. GIGO.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top