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

Fixierung von Dimensionselementen

Hintergrund

Die Idee zu diesem Blogbeitrag ist in einem Marketing-Workshop entstanden. Nachdem das Modell aufgebaut und die ersten Berichte angefertigt waren, ging es weiter ins Detail. Es wurden die Umsätze von Kunden (Dimension Kunde) ausgewertet, die ein bestimmtes Werbemittel (Dimension Werbemittel) erhalten haben. Mit einer Pivot-Tabelle war dies natürlich kein Problem. Dann sagte der Kunde: „Super, und jetzt möchte ich sehen, was genau diese Kunden, die dieses Werbemittel erhalten haben, in den Monaten danach bei den anderen Werbemitteln gemacht haben…“. Das Problem was sich hieraus ergibt, sind die dynamischen Filter im DeltaMaster: Wählt man ein anderes Werbemittel, dann ändert sich die Kundenauswahl. Bleibt man auf dem Werbemittel gefiltert und ändert den Monat, kann sich auch die Kundenauswahl ändern. Weder mit Absprüngen noch mit MDX-Umwegen konnten wir die Performance oder Usability hochhalten, um der eigentlichen Anforderung, eben genau diese Auswahl an Kunden zu analysieren, gerecht zu werden.
Als schneller Lösungsansatz existiert die benutzerdefinierte Hierarchie. Hier hätte man die Auswahl der Kunden fixieren und als Auswahlmenge modellieren können. Die Anforderung spielte aber darauf an, dass man flexibel zwischen den Werbemitteln wechseln möchte, um die jeweiligen Kunden daraufhin zu analysieren. Auf diesem Wege würde man sich also unzählige neue Hierarchien für einen Sachverhalt erstellen, den man eigentlich gerne anders dargestellt hätte. Also mussten wir uns eine Alternative überlegen, die einfach zu bedienen und schnell ist.

Die Lösung

Die Lösung ist schon fast trivial: Man braucht lediglich eine Hilfsdimension und eine m x n-Bridge.
Für die Erklärung betrachtet man die Chair-Datenbank. Das obige Beispiel „Umsatz von Kunde bei erhaltenem Werbemittel“ auf die Chair-Datenbank adaptiert, bedeutet so viel wie: Welche Umsätze haben die Kunden gemacht, die auch den Ergoplus Basic-Stuhl gekauft haben? Oder allgemeiner aus-gedrückt: Wie verhalten sich die Kunden, die ein Produkt X gekauft haben in Zukunft und bei anderen Produkten?
Um dies analysieren zu können, braucht man eine Hilfsdimension, die genau der Dimension entspricht, nach der die Teilmenge der Elemente der Kundendimension gefiltert werden soll. In diesem Beispiel also die Produkt-Dimension. Für die eindeutige Identifizierung der Dimension im Modell wählen wir den Titel „gekaufte Produkte“. Das praktische ist, dass keine neue Dimension per View erstellt werden muss. Es reicht aus, die Hilfsdimension in der DAS-Datei „ETL“ neu anzulegen.
Nur mit der Hilfsdimension erreicht man aber noch nicht die Zielsetzung. Es besteht noch die Problematik, dass die Hilfsdimension an den Bewegungsdaten selbst hängt. Was fehlt, ist die direkte Zuordnung der Kunden zu den Produkten. Hier kommt die m x n-Bridge ins Spiel. Aus den Bewegungsdaten können alle Verbindungen zwischen den einzelnen Elementen herausgefiltert werden. So erreicht man die Entkopplung der Dimension „gekaufte Produkte“ von den eigentlichen Bewegungsdaten. Die Verbindung läuft ausschließlich über die zugeordneten Kunden. Dies ermöglicht die Auswahl der Kunden, die einen Umsatz (oder jede beliebige andere Kennzahl) mit einem Produkt erzielt haben, unabhängig von den Bewegungsdaten.
Mit diesem allgemeinen Lösungsansatz können verschiedenste Kundengruppen fixiert werden, die ein bestimmtes Merkmal erfüllen.

Die Modellierung

Wenn man sich die Lösung erarbeitet hat, ist die Umsetzung schnell erledigt. Zunächst baut man eine Brigde-Measuregruppe, die alle Kombinationen von Kunden und Produkten beinhaltet. Für die Erstellung der Bridge reicht der Zugriff auf die Bewegungsdaten. Benötigt werden alle Kombinationen von Kunden und Produkten, bei denen ein Umsatz generiert wurde.

CREATE VIEW V_Import_Fact_Bridge_ProduktKunde AS 

/* 
2019-07-24, Created View  
*/ 

SELECT DISTINCT  
 Product	AS ProduktID 
,Customer	AS KundeID  
FROM  
T_IMPORT_Deckungsbeitragsrechnung 
WHERE 	 
Revenues > 0

Die Hilfsdimension ist noch schneller erstellt: Sie existiert bereits in der Form der Produktdimension. Man erstellt lediglich eine Kopie die einen neuen, eindeutigen und leicht zu verstehenden Namen haben sollte („gekauftes Produkt“).
Die Modellierung sieht dann beispielhaft wie folgt aus:

1. Neue Dimension anlegen

Neue Dimension anlegen

2. Die Level und die Quellspalten aus der vorhandenen Dimension übernehmen

Die Level und die Quellspalten aus der vorhandenen Dimension übernehmen

3. Neue Measuregruppe (Bridge) anlegen

Neue Measuregruppe anlegen

4. Die zu fixierenden Dimensionen der Hilfsdimension an die Bridge anbinden

Die zu fixierenden Dimensionen der Hilfsdimension an die Bridge anbinden

5. Unter Advanced Modeling die Bridge-Measuregruppe an die vorhandene Measuregruppe anbbinden

Bridge Measuregruppe an die vorhandene Measuregruppe anbinden

Nach dem Neuaufbau des gesamten Modells entdeckt man die neue Dimension als Filtermöglichkeit. Zieht man sich alle Kunden auf die Zeilen und filtert diese nach einem Produkt, so bleiben lediglich die Kunden auf der Achse stehen, die irgendwann einmal dieses Produkt gekauft haben. Mit der neuen Teilmenge der Kunden können nun weitere Berichte gebaut werden. Hier ein Beispielbericht, der zeigt, welche anderen Produkte diese beiden Kunden gekauft haben, die auch den Ergoplus Basic Stuhl gekauft haben:

Beispielbericht

Fazit und Anwendungsbereich

Nach anfänglichen Kopfschmerzen wegen der Kundenanforderung entwickelte sich ein Konzept, welches einfach umzusetzen und schnell zu adaptieren ist. Auf diesem Wege lassen sich bestimmte Dimensionselemente einfach fixieren und bleiben dennoch in der Auswahl flexibel. Der Modellierungsaufwand ist gering und die Anwendung ist für den Kunden leicht verständlich. Der Nachteil ist das wachsende Modell. Mit jeder weiteren Filtermöglichkeit entwickelt sich eine weitere Fehlerquelle in der Auswahl. Deswegen ist es wichtig, den Namen der Hilfsdimension eindeutig zu wählen und das Verständnis für die Funktionsweise dieser Dimension richtig zu vermitteln, denn ansonsten könnte die Nutzung auch frustrieren.