CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Dimension Writeback in Analysis Services

Wenn in BI-Projekten Stammdaten nicht nur aus existierenden Vorsystemen versorgt werden sollen, sondern auch das Anlegen neuer Elemente oder das Verändern von Eigenschaften durch den Anwender direkt in DeltaMaster gefordert wird, bedeutet dies zusätzlichen Aufwand bei der Implementierung und eingeschränkten Bedienkomfort für den Anwender.

Microsoft Analysis Services bietet dazu unter dem Begriff „Dimension Writeback“ einen vermeintlich vielversprechenden Lösungsansatz an, der im Folgenden vorgestellt wird.

So mancher Bissantz-Consultant, Businesspartner oder Kunde wird sich in BI-Projekten mit der Anforderung konfrontiert gesehen haben, dass Stammdaten nicht nur aus existierenden Vorsystemen versorgt werden sollen, sondern auch das Anlegen neuer Elemente oder das Verändern von Eigenschaften (Attributen) durch den Anwender direkt in DeltaMaster notwendig oder zumindest wünschenswert ist. Beispiele sind:

  • Bei der Vertriebsplanung sind potentielle Neukunden und zukünftige Produkte einzubeziehen, die in den ERP-Systemen noch gar nicht vorhanden sind.
  • Im Projektcontrolling werden laufend neue Projekte und deren Struktur gepflegt.
  • In einer Finanzanwendung werden ausschließlich im BI-System „hypothetische“ Kostenarten, Kostenstellen und Kostenträger definiert.

Grundsätzlich ist dies in unseren Lösungen mit DeltaMaster und Microsoft SQL Server/Analysis Services selbstverständlich auch heute lösbar, jedoch eher aufwändig hinsichtlich Modellierung und Aktualisierungsprozessen und vor allem mit Einbußen in Sachen Bedienkomfort für den Anwender:

  • Da DeltaMaster-Anwendungen aktuell stets nur auf einer physischen Datenquelle basieren können, muss zur Stammdatenpflege der Tabellen im Data Warehouse eine separate relationale Anwendung erstellt werden. Der Anwender muss also zwischen dieser und seiner eigentlichen Reporting-, Analyse- oder Planungsanwendung hin- und herwechseln.
  • Der alternative Einsatz des Parent-Child-Editors zur Strukturpflege ist für die meisten Anwendungsfälle „overengineered“ und erfordert manuelle Anpassungen im Datenmodell, die nicht von DeltaMaster Modeler unterstützt werden (Proaktives Cachen).

Microsoft Analysis Services bietet dazu unter dem Begriff „Dimension Writeback“ einen vermeintlich vielversprechenden Lösungsansatz an, der bei uns jedoch bislang keine Anwendung findet. Was steckt dahinter, wie funktioniert das Ganze und was spricht für oder gegen den Einsatz?

Zunächst scheint alles ganz einfach: In DataTools ist für die betroffene Dimension lediglich die Eigenschaft „WriteEnabled“ zu aktivieren, damit laut Kontexthilfe „die Dimension von Clientanwendungen aktualisiert werden kann“. Im laufenden Betrieb muss die Clientanwendung (DeltaMaster) dann entweder ein XMLA-Statement (bei regulären Dimensionen) oder ein MDX-Statement (bei Parent-Child-Dimensionen) erzeugen. Analysis Services erzeugt daraus entsprechende SQL-Statements und manipuliert direkt die zugrundeliegende Dimensionstabelle.

Der letzte Aspekt stellt einen grundsätzlichen konzeptionellen Unterschied zum Cell Writeback (dem Rückschreiben von Daten z. B. beim eigentlichen Planungsprozess) dar: Eingaben aus dem Frontend werden nicht separat von den ursprünglichen, per ETL-Prozess eingefügten (Stamm-)Daten gehalten, sondern ergänzen bzw. verändern diese. Dies würde bei der in unseren Projekten üblichen Vorgehensweise (zyklischer vollständiger oder inkrementeller Ladeprozess) individuelle, mitunter aufwendige Prüfungen und Manipulationen mittels SQL-Prozeduren vor der Ausführung des „Transform_All“ erfordern.

Hinsichtlich Berechtigungen müssen für den gewünschten Anwenderkreis Lese-/Schreibrechte sowohl in den betroffenen MSAS-Rollen für die jeweilige Dimension als auch in den SQL-Datenbankrollen für die entsprechende Tabelle gewährt werden.

Leider existieren darüber hinaus zusätzlich diverse Restriktionen:

  • Die DataSource muss Microsoft SQL Server sein. Fremdprodukte (Oracle, IBM, SAP etc.) werden nicht unterstützt.
  • Das Feature ist in der Standard Edition von Microsoft SQL Server nicht verfügbar.
  • Die DataSourceView muss ein Star Schema sein. Die obige Formulierung im Singular („zugrundeliegende Dimensionstabelle“) war also kein Tippfehler. Dies ist ein konzeptioneller Widerspruch zum bewährten Snowflake-Ansatz in DeltaMaster Modeler und verhindert die Automatisierung in unseren Projekten.
  • In den zu generierenden XMLA-Statements müssen stets alle Dimensionsattribute spezifiziert werden. Selektive Änderungen sind nicht erlaubt.
  • Letztlich wurde das Feature mit SQL Server 2016 für das nächste Release abgekündigt.

Vor diesem Hintergrund wird verständlich, warum DeltaMaster das Konzept des Dimension Writeback nicht unterstützt.

Weblinks: