<< Back

Tableau 2020.2 – Data Modelling Part I

Schauen wir uns zunächst an, welche Möglichkeiten Sie bisher haben, verschiedene Datenquellen miteinander zu verknüpfen, und wo Stolpersteine und Nachteile liegen. Zur Veranschaulichung benutzen wir zwei Tabellen:

Wir stehen hier vor der Herausforderung, dass die Tabellen unterschiedliche Detailgrade haben. Die Tabelle Umsatz liegt uns auf der Ebene Stadt vor, wohingegen die Tabelle Investition auf Länderebene erstellt wurde. Es handelt sich hier demnach um eine viele-zu-eins-Beziehung, auch n:1-Beziehung genannt.

Wenn wir nun beide Tabellen benutzen wollen, um Umsatz und Investition in ein Verhältnis zueinander zu setzen und in Tableau darzustellen, haben wir drei Optionen:

  1. Join auf Zeilenebene inklusive LOD
  2. Aggregierter Join
  3. Blending

Auf diese drei Optionen gehen wir im Folgenden ein.

Join auf Zeilenebene

In Tableau Desktop definieren wir einen Join. Hierfür benutzen wir das Feld, das in beiden Tabellen vorhanden ist, um die Daten miteinander zu verknüpfen.

Außerdem legen wir die Art des Joins fest, also Innen, Links, Rechts oder Vollständig. Dadurch definieren wir, was mit den Zeilen passiert, die nicht mit der anderen Tabelle verknüpft werden können. Wir haben hier einen Links Join gewählt, weil bei einem Innen Join Italien aus der Tabelle Umsatz verloren ginge, da es keine Investitionen in Italien gab. Als Ergebnis erhalten wir eine neue Tabelle mit dem Namen „Join auf Zeilenebene“. Da wir über das Feld „Land“ verknüpfen und Deutschland mehrmals in der Tabelle „Umsatz“ vorkommt, werden die Zeilen aus den Investitionen vervielfacht. Sie sehen schon, wo jetzt eine Stolperfalle liegt, wenn wir nun eine Visualisierung erstellen:

Die Investitionen für Deutschland werden jetzt mit 600 angegeben, obwohl sie nur 200 betrugen. Da wir die Zeilen für Deutschland durch den Join verdreifacht haben, wurde auch die Investition verdreifacht.

Das lässt sich mit einer Detailgenauigkeitsberechnung (LOD) korrigieren. Das heißt, wir berechnen nun die tatsächliche Investition, indem wir pro Land den Mittelwert benutzen. Indem wir das Feld Investition austauschen, kommen wir wieder auf die Werte der ursprünglichen Tabelle „Investitionen“.

Das birgt die Gefahr, dass mit falschen Zahlen gerechnet wird, falls dieser Schritt vergessen wird. Außerdem können zu viele und zu komplexe LODs die Ladezeiten von Dashboards beeinträchtigen. Für weitere Informationen empfehlen wir unseren Blogpost zu LODs.

Diese beiden Probleme werden mit der nächsten Option umgangen.

Aggregierter Join

Hierfür werden in einem vorgelagerten Schritt beide Tabellen auf den gleichen Detailgrad gebracht. In unserem Fall wollen wir pro Zeile ein Land haben. Das heißt, die Tabelle „Umsatz“ muss aggregiert werden. Das heißt in diesem Fall, dass alle Umsätze eines Landes aufsummiert werden. Dies können wir entweder mithilfe einer benutzerdefinierten SQL-Abfrage in Tableau Desktop erreichen oder wir erstellen eine neue Datenquelle mit Tableau Prep.

Wenn wir aggregieren, müssen wir zunächst entscheiden, nach welchem Feld gruppiert werden soll, also für welches Feld wir genau eine Ausprägung darstellen wollen. Das ist in unserem Fall das Land.

Als nächstes müssen wir entscheiden, welche Kennzahl wir verwenden möchten und auf welche Weise sie zusammengefasst werden soll. Häufig interessiert uns entweder die Summe oder der Mittelwert.

Nun verknüpfen wir die Umsätze mit den Investitionen über das Feld Land.

Auch hier müssen wir definieren welche Art von Join wir verwenden möchten. Im letzten Schritt erstellen wir daraus eine neue Datenquelle, die wir in Tableau Desktop verwenden können.

In Tableau Desktop sieht das anschließend so aus:

Wir umgehen nun die Gefahr, mit falschen Zahlen zu rechnen. Wie Sie sehen, haben wir dafür allerdings die Umsatz-Informationen der einzelnen Städte verloren.

Falls die detaillierten Informationen nicht verloren werden sollen und LODs nicht gewünscht sind, führt uns das zu unserer nächsten Option:

Blending

Im Gegensatz zu den beiden Joins oben, wird hierbei keine neue feste Tabelle produziert, sondern die ursprünglichen Tabellen bleiben bestehen. Die Verknüpfung geschieht erst durch die gemeinsame Visualisierung im Arbeitsblatt.

Wie Sie hier sehen, werden die Datenquellen Investitionen und Umsatz verwendet. Dabei hat Investition einen blauen Haken, wodurch definiert wird, dass es sich hierbei um die primäre Datenquelle handelt. Umsatz hat einen orangefarbenen Haken, da wir diese Datenquelle als sekundär behandeln. Die rote Kette neben dem Feld Land bedeutet, dass die Daten über dieses Feld verknüpft werden. Technisch gesehen ist ein Blend ein aggregierter links Join, wobei die primäre Datenquelle die linke ist. Das heißt, Länder, die nur in der sekundären Datenquelle vorhanden sind, nicht aber in der primären Datenquelle, werden nicht dargestellt.

Wenn wir nun die Tabelle Investition als primäre Datenquelle benutzen, sieht die gleiche Visualisierung wie folgt aus:

Ein Blend wird für jedes Arbeitsblatt separat definiert. Das heißt, hier wird keine neue Tabelle erstellt, die als Tableau Datenquelle gespeichert werden könnte, wie es bei einem Join der Fall ist. Ein Blend kann außerdem auch über verschiedene Felder definiert werden und führt deshalb häufig zu Schwierigkeiten für den Anwender. Es gibt zudem Einschränkungen für verschiedene Operationen in berechneten Feldern wie countd oder LOD Berechnungen aus sekundären Datenquellen.

Fazit

Verschiedene Datenquellen in Tableau miteinander zu benutzen, birgt einige Herausforderungen, wie Sie sehen. Jede der vorgestellten Optionen hatte unterschiedliche Nachteile. Diese sollen nun durch die bahnbrechende Neuerung „Data Modelling“ in Tableau 2020.2 behoben werden. Wie das funktioniert, lesen Sie im nächsten Blogartikel.

Martin Pohlers

Senior Business Intelligence Consultant