Die Antwort ist: ja, aber.
Eine Dimension in SSAS hat Beziehungen zwischen Attributen, die eine Reihe von Feldern zum Filtern von Slice verwendet werden können. Diese Beziehungen können hierarchisch sein (mehr als eine Ebene tief - ein Attribut kann übergeordnete und untergeordnete Elemente haben. Sie können auch Drilldown-Pfade (in SSAS als Hierarchien bezeichnet) einrichten, die wie Attribute agieren, aber einen geführten Drilldown haben Um dies zu tun, müssen Sie Schlüssel in der Datenbank zur Verfügung haben, die in einer streng hierarchischen Beziehung leben (dh die Schlüssel können keine unscharfen Beziehungen haben, in denen ein Kind mehr als ein Elternteil haben kann.) Beachten Sie, dass dies nicht die ganze Geschichte ist
Diese Hierarchien können vom System aus einer flachen Datenstruktur erstellt oder durch eine Schneeflocke mit Beziehungen dargestellt werden, die in der zugrunde liegenden Datenquellensicht markiert sind (DSVs sind ein Teil der Cube-Metadaten) und kann sein verwendet, um Daten in einer ähnlichen Weise wie Datenbankansichten zu massieren).
Eine Schneeflocke ist ein 3NF-isch-Schema (es muss nicht unbedingt 3NF sein - Sie können Teile davon in der Praxis reduzieren), die nur 1: M-Beziehungen hat. SSAS kann einige andere Dimensionsstrukturen wie Eltern-Kind (Eltern-Kind-Beziehung mit einem rekursiven Self-Join) und M: M-Dimensionen (M: M-Beziehungen - genau wie sie klingen) unterstützen. Dimensionen dieses Typs sind findiger, aber möglicherweise nützlich für Sie.
Wenn Sie Schlüssel in Ihren Quelldaten haben, die eine äquivalente Datensemantik zu einer Schneeflocke haben, können Sie Ihren Cube möglicherweise durch eine Reihe von Datenbankansichten auf Ihrem Quellsystem füllen, die die zugrunde liegenden Daten in ausreichendem ein ähnliches Format für die Würfeldimensionierung (ich habe das schon mehrmals gemacht). Schemata, die häufig synthetische Schlüssel verwenden, sind dafür eher geeignet.
Wenn Ihr Anbieter oder andere Parteien Ihnen keine Ansichten zu Ihrer Quellendatenbank hinzufügen können, können Sie möglicherweise stattdessen eine Datenquellensicht verwenden. DSVs können virtuelle Tabellen namens "benannte Abfragen" haben, die aus einer Datenbankabfrage gefüllt werden.
Fakttabellen werden mit Dimensionen verknüpft. In SSAS2005 + können Sie verschiedene Faktentabellen bei verschiedenen Körnern innerhalb einer Dimension verknüpfen. Ich würde normalerweise nicht viel in einem Data Warehouse verwenden, aber diese Funktion könnte nützlich sein, wenn Sie versuchen, die Quelldaten zu verwenden, ohne sie zu stark massieren zu müssen.
Wenn dies nicht funktioniert, müssen Sie möglicherweise einen ETL-Prozess schreiben, um ein Stern- oder Schneeflockenschema zu füllen.
Einige Maßgaben:
Würfel gemacht werden können in einem Echtzeit-Modus, in dem sie nur ausgeben, eine Abfrage zu den zugrunde liegenden Daten zu laufen. Dies birgt ein gewisses Risiko, ineffiziente Abfragen für Ihre Quelldaten zu verursachen. Es wird daher nicht empfohlen, es sei denn, Sie sind wirklich zuversichtlich, dass Sie wissen, was Sie tun.
Apropos (i), wahrscheinlich können Sie die Cubes nicht als Datenquelle für Bildschirme in Ihrer Anwendung verwenden. Wenn Sie Durchschnittswerte für etwas berechnen müssen, das der Benutzer auf einem Bildschirm sehen möchte, müssen Sie wahrscheinlich in einer gespeicherten Prozedur hinter dem Bildschirm rechnen.
Wenn Sie dies tun, richten Sie eine replizierte Datenbank ein und füllen Sie den Cube aus. Lassen Sie diese Datenbank regelmäßig aktualisieren, damit Ihr ETL-Prozess aus einem intern konsistenten Datensatz ausgeführt werden kann. Wenn Sie von einer Live-Datenbank aus arbeiten, riskieren Sie, dass einige der Elemente später aufgefüllt werden und von Datensätzen abhängig sind, die nach der Ausführung des entsprechenden Prozesses erstellt wurden.
Sie können die Situation haben, in der Sie eine Dimensionslast ausführen, und dann werden neue Daten in das System eingegeben. Wenn die Faktentabellenladung ausgeführt wird, enthält sie jetzt Daten, die von Dimensionsdaten abhängig sind, die nicht geladen wurden. Dies unterbricht den Cube und führt zum Fehlschlagen des Ladeprozesses. Die Batchaktualisierung einer replizierten Datenbank zur Ausführung der ETL- oder Cube-Ladevorgänge wird dieses Problem abschwächen.
Wenn Sie nicht die Option einer replizierten Datenbank haben, können Sie mehr Pufferrichtlinien für fehlende Daten einrichten.
Wenn die zugrunde liegenden Produktionsdaten erhebliche Datenqualitätsprobleme aufweisen, werden sie in den Cubes angezeigt. GIGO.