MDXScript Service – Repository driven calculations
Vor einiger Zeit hatte ich ja schon mal beschrieben wie das MDXScript Objekt ohne das BIDS bzw. den BIDS Helper geändert werden kann. Des Öfteren wurde ich danach gefragt, wozu denn so etwas gut sein soll. Wenn der Würfel neu verarbeitet wird, dann wird das MDXScript doch eh neu durchgerechnet.
Nun ja, so einfach ist es dann nicht!
Das MDXScript wird ja nicht durchgerechnet! Es wird einfach in der OLAP Datenbank (aka Cube) bereitgestellt. Erst wenn Teile des MDXScriptes für das Auflösen einer MDX Query benötigt werden, wird es genutzt! Des Weiteren bleibt die eigentliche Analysis Services Datenbank gültig und alles Verbindungen bestehen. Diese Tatsachen ermöglichen einige interessante Lösungen! :-)
Zum Beispiel die Bereitstellung eines MDXScript Services! Auch gerne Calculations Services genannt.
Die Idee dahinter ist recht einfach und wird von mir gerne verwendet, wenn des Öfteren im Laufe eines Tages eine dynamische Änderung bzw. Anpassung eines “Würfels” notwendig ist und der verwendete Client diese Art von Änderung nicht unterstützt. Zum Beispiel um Szenarien dynamisch mittels Scope Anweisungen durchzurechnen. Es ist durchaus möglich, dass mehrere Anwender voneinander getrennt diesen Dienst für einen Würfel nutzen können, wenn die Zuweisung über ein Member eines Szenario Attributes gesteuert wird.
Alle einzelnen Berechnungen (neue Member, Scopes, KPIs etc.) liegen in einer relationalen Datenbank oder auch in einer SharePoint Liste vor. Die Berechnungen können entweder manuell gepflegt oder, was häufiger der Fall ist, durch eine Anwendung erzeug werden. Die einzelnen Statements werden dann zu einem String zusammengesetzt und als ein MDXScript veröffentlicht. Und alle Änderungen am Würfel sind sofort online und sichtbar! Häufig geht die kreative Verwendung von Scope Anweisungen auch weit über die Möglichkeiten des Update Statements hinaus.