Tableau bietet die Möglichkeit des so genannten “Data Blendings”. Dabei lassen sich auf eine sehr einfache Art und Weise Daten aus den unterschiedlichsten Datenquellen in Tableau analysieren.
So einfach das Data Blending auch ist, bringt es ein paar Nebenbedingungen mit sich, die einen das gewünschte Analyseergebnis nicht oder nur sehr schwer erreichen lassen.
Folgendes Szenario, das ich bereits des Öfteren vorgefunden habe:
Aus einem Quellsystem werden Datenexporte erstellt, weil der Anwender selbst keinen Zugriff auf das System hat. Es wird genau ein Export je Monat bereitgestellt. Die Datei hat immer den gleichen Aufbau, lediglich der Inhalt ändert sich mit jedem Monat. Die Exporte liegen als CSV-Datei vor.
Jetzt soll eine Monatsübergreifende Analyse der Daten durchgeführt werden.
Weil der manuelle Aufwand möglichst gering gehalten werden soll, ist es keine Option, die Dateien von Hand oder mit einem separaten Tool zu einer Datei zu verarbeiten, die Lösung soll mit Tableau erstellt werden.
Die erste Idee ist nun das Data Blending zu verwenden. Ohne auf die Details des Data Blendings einzugehen ist jedoch klar, dass der Anwender zu jeder Datei eine Verbindung aufbauen muss und dann in Tableau eine Liste von Data Sources erhält – eine je Datei – mit immer dem gleichen Aufbau. Dieses klingt alleine beim schreiben dieser Zeilen bereits sehr unhandlich.
Wenn man sich aber daran erinnert, dass CSV-Dateien in einem Verzeichnis von Tableau wie Tabellen behandelt werden, könnte eine SQL-Abfrage in der die Mengen der betreffenden Dateien vereinigt werden eine Lösung sein, mit der man nur eine einzige Data Source erhält, die sich sehr schön analysieren lässt.
Was ist dafür zu tun?
Zunächst wie gewohnt mit Tableau eine Verbindung zu einer der CSV-Dateien herstellen. Hier sieht man dann auch direkt, dass Tableau die CSV-Dateien (in meinem Fall zwei) wie Tabellen aus einer Datenbank auflistet. An dieser Stelle habe ich die erste Datei angewählt und wechsle dann auf die Option “Custom SQL”.
In der Codebox erscheint nun das Query,mit dem Tableau die erste CSV-Datei abfragt. Das generierte Query lässt sich je nach Bedarf verändern. Ich ergänze das Query um eine weitere Abfrage meiner zweiten CSV-Datei (Copy & Paste der ersten Abfrage und dann den Dateinamen ersetzen) und verbinde beide Ergebnismengen mittels UNION. Somit liefert mir die Abfrage eine Ergebnismenge, in der die Inhalte aus beiden Dateien enthalten sind.
Die Korrektheit des Queries lässt sich über die Preview kontrollieren.
Das Query lässt sich nach belieben anpassen und erweitern. Weitere Joins, Berechnungen etc. sind hier möglich.
Die daraus resultierenden Basis für die weitere Analyse ist deutlich Anwenderfreundlicher und lässt alle weiteren Möglichkeiten offen, die Data Source weiter aufzubereiten.
Die Daten beider Monate lassen sich als Ganzes analysieren, ohne über mehrere Data Sources gehen zu müssen.
Dieses Vorgehen funktioniert übrigens nicht nur mit CSV-Dateien, sondern lässt sich auch bei einzelnen Arbeitsblättern in einer Excel-Arbeitsmapper hervorragend anwenden.
Generell ist das “Joinen” von Daten vorzuziehen, wenn diese aus der gleichen Datenquelle kommen.
Data Blending hingegen sollte vor allem dann verwendet werden, wenn Daten aus unterschiedlichen Quellen abgefragt und gemeinsam analysiert werden sollen.
Schwachstelle dieses Vorgehens ist, dass das Query manuell angepasst werden muss und die Dateien nicht umbenannt werden dürfen, solange der Live-Zugriff auf die Dateien verwendet wird. Diese lässt sich dadurch eliminieren, dass man anstatt der “alten” CSV-Datenexporte einen Tableau Datenextrakt erstellt. Damit ist man unabhängig von den eigentlichen Datenlieferungen des Quellsystems und erreicht noch einen Geschwindigkeitsvorteil durch die Datenaufbereitung innerhalb eines Tableau Datenextraktes.