linkedin logo xing logo Alessio Analytics E-mail Icon

Rückschreibefunktion in Tableau

 ∗∗∗ 7. Juni 2019 ∗∗∗ Kategorien: Self Service Analytics ∗∗∗ Schlagwörter: , , , , ,

 ∗∗∗ 7. Juni 2019 ∗∗∗ Kategorien: Self Service Analytics ∗∗∗ Schlagwörter: , , , , ,

3 Szenarien zur Rückschreibefunktionalität in Tableau

Ein Tableau Dashboard dient in erster Linie dazu, durch Visualisierung einen leicht zugänglichen Einblick in die Datenmassen eines Unternehmens zu ermöglichen. Jedoch handelt es sich hierbei lediglich um die Möglichkeit eines Einblicks ohne eine direkte Form der Interaktion mit den Daten.

An dieser Stelle kommt eine sogenannte Rückschreibefunktion zum Einsatz. Diese ermöglicht, dass das klassische Tableau Dashboard um eine Eingabemaske erweitert wird, mittels der man Informationen direkt in die Datenbank schreiben kann.

Warum eine Rückschreibefunktion benutzen?

Durch eine Rückschreibefunktion können zwei unterschiedliche Problemstellungen behandelt werden.

  1. Zum einen ist es möglich Kommentare an relevanten Stellen in den Datenquellen anzuhängen, um beispielsweise einen Vermerk zur Erklärung von Fluktuationen in den Zahlenwerten zu hinterlassen. So ist es möglich, einen erheblichen Anstieg von Verkaufszahlen mit einem Ereignis – beispielsweise dem aktuellen Wetter – in Verbindung setzen.
  2. Zum anderen kann man Fehler in der Datenquelle zeitnah korrigieren. Eine solche Korrektur kann in verschiedenen Fällen von großer Bedeutung sein und sollte, wenn sie im Rahmen der Betrachtung des Dashboards erfolgt, dabei helfen interne Prozesse zu beschleunigen. Um das Risiko von Fehlern zu reduzieren werden alle zurückgeschriebenen Daten im Hinblick auf den Änderungszeitpunkt und den Autor historisiert.

Um dies zu bewerkstelligen muss eine Zugriffssteuerung befähigt sein sowohl auf das Dashboard als auch die Datenbank zuzugreifen, sodass diese beispielsweise auf Veränderungen im Dashboard reagieren kann.

Allerdings ist eine Rückschreibefunktionalität nicht in Tableau integriert, da das Tool in seiner Grundfunktion nur die Darstellung von Informationen handhaben soll und nicht etwa das Verändern dieser.

Dennoch möchten wir anhand von drei möglichen Szenarien aufzeigen, wie man eine derartige Funktion in Tableau umsetzen kann.

Szenario 1

Der einfachste Ansatz ist das Nutzen einer  Weboberfläche, in die sowohl ein Dashboard als auch ein Formular eingebunden werden (siehe Abbildung 1). Diese werden jedoch nicht miteinander verknüpft, sondern existieren unabhängig voneinander. Auf diese Weise hat weder eine Interaktion mit dem Dashboard Einfluss auf das Formular, noch hat eine Interaktion mit dem Formular Auswirkung auf das Dashboard. Das Dashboard stellt die Daten dar, während durch das Formular Informationen in die Datenbank geschrieben werden. Informationen, die im Dashboard gefunden werden, müssen zunächst im Formular gesucht werden, bevor eine Änderung vorgenommen werden kann. Jedoch würde hierdurch die Möglichkeit entstehen parallel unterschiedliche Informationen zu suchen und zu verändern.

Dieser Ansatz beinhaltet die Komponenten Client, Webpage, Dashboard, Formular, Webhost, Webservice und Datenbank. Der Client ist der Nutzer, der die Webpage bedient und somit auf das Dashboard und das Formular zugreift. Die Rolle des Formulars kann auch durch eine direkte Integration eines ERP-Systems erfüllt werden. Die Webpage wird vom Webhost, einem Webserver, gehostet. Der Webhost liest die Informationen aus der Datenbank über den Webservice ein. Weiterhin werden alle Informationen, die an das Formular übergeben werden über den Webservice in die Datenbank geschrieben. Das Dashboard hingegen bezieht seine Informationen aus dem Tableau Server, der direkt aus der Datenbank liest.

Um Veränderungen an der Datenbank im Dashboard anzuzeigen, wird eine Live-Verbindung zur Datenquelle benötigt. Wird diese ohne Weiteres erstellt, treten lange Ladezeiten auf, die in direkter Korrelation zur Größe der Datenbank stehen. Aus diesem Grund empfiehlt es sich, lediglich die neuesten, beziehungsweise aktuellsten, Informationen als Live-Verbindung einzubinden, während alle älteren Daten als Extrakte vorliegen sollten.

Diese Lösung kann als sehr sicher eingestuft werden, während andere Ansätze eine zusätzliche Implementierung von Authentifizierungs- und Autorisierungsmaßnahmen erfordern würden. Diese Anforderung wird in diesem Szenario bereits durch das mögliche Vorhandensein eines ERP-Systems, in das diese Authentifizierungs- und Autorisierungsmaßnahmen bereits implementiert sind, abgefangen.

Insgesamt sollte die Umsetzung dieses Ansatzes 5 bis 10 Tage in Anspruch nehmen.

Szenario 2

Obgleich das erste Szenario recht simpel ist, kann an dieser Stelle nicht von einer vollständigen Rückschreibefunktion gesprochen werden, da man die betrachteten Daten nicht direkt bearbeiten kann. Das hierfür benötigte Zusammenführen von Dashboard und Eingabemaske wird im Rahmen von Szenario 2 ermöglicht.

Im Fokus dessen steht die Webpage, in die das Tableau Dashboard integriert ist (siehe Abbildung 2). In diesem Dashboard wird ein dynamisches Website-Objekt als Eingabemaske genutzt. Das Formular zum Betätigen der Eingabe wird mittels HTTP-Rest-Requests, die durch URL-Actions vom Dashboard generiert werden, erstellt. Auf diese Weise passt sich das Formular dem aktuellen Zustand des Dashboards an und ermöglicht eine direkte Interaktion. Mittels Javascript wird ergänzend eine Funktion eingebunden, die bei jedem erfolgreichen Update eine Aktualisierung des Dashboards ausführt. Fehlerhafte Eingaben, beispielsweise das Verwenden falscher Datentypen, werden durch den Webservice abgefangen und durch eine Fehlermeldung gekennzeichnet.

Es ist zwingend notwendig die Datenmenge, die in der Live-Verbindung zur Datenquelle eingebunden werden so gering wie möglich zu halten und historische Daten durch Extrakte darzustellen. Weiterhin werden Anfragen, die der Darstellung der Daten dienen, kurz gehalten. Somit sollten keine allumfassenden SELECT * Anfragen an die Datenbank geschickt werden, sondern Filterungen vorgenommen werden, wie es unter anderem durch die Filter des Tableau Dashboards geschieht. Zusätzlich ist es ratsam auf der Ebene von Timestamps zu arbeiten, sodass nur die aktuellsten der Daten aus der Datenbank abgerufen werden. Generell sollte eine Rückschreibefunktion aus Rücksicht auf die Performance dazu konzipiert werden, bis zu 100 Zeilen zu schreiben. Für eine Implementierung, die eine größere Zeilenzahl erfordert empfiehlt es sich auf Methoden wie Fastload im Fall von Teradata zurückzugreifen.

Im Gegensatz zu Szenario 1 sollte dem Aspekt der Sicherheit im Hinblick auf die Autorisierung und Authentifizierung größere Aufmerksamkeit gewidmet werden. Dies wird unter anderem erreicht, indem mittels der Tableau Sicherheitseinstellungen die URL-Rest-Requests begrenzt werden oder im Rahmen des Webservice eine Login Funktion implementiert wird.

Die Umsetzung dieses Szenarios gestaltet sich aufgrund der Anpassungsfähigkeit komplex. Schließlich erfordert das Programmieren einer dynamischen Anwendung größeren Aufwand, weshalb mit einer Implementierungszeit von mindestens 3 bis 6 Monaten zu rechnen ist.

Szenario 3

Das dritte Szenario dient ebenfalls einer direkten Interaktion zwischen Eingabemaske und Dashboard. Im Gegensatz zu Szenario 2 wird die Rolle der dynamischen Webpage von einer Tableau Extension erfüllt (siehe Abbildung 3).

Besagte Extension kann über Javascript direkt mit dem Tableau Objekt interagieren und erhält Zugriff auf alle Schnittstellen, die von einem Tableau Dashboard genutzt werden. Folglich wird ein stärkerer Grad der Verbindung zwischen der Eingabemaske der Rückschreibefunktion und dem Dashboard ermöglicht.

Auch in diesem Szenario werden über den Tableau Server die Informationen aus der Datenbank eingelesen, während Veränderungen über den Webservice an die Datenbank weitergeleitet werden. Der Webservice bezieht seine Informationen an dieser Stelle aus der Tableau Extension.

Dadurch, dass Javascript in Abhängigkeit vom verwendeten Framework sicherer ist, ist das dritte Szenario sicherer als das zweite. Dennoch sollten an dieser Stelle ebenfalls Methoden der Autorisierung und Authentifizierung berücksichtigt werden.

In diesem Fall tritt die größte Komplexität auf, da es sich bei der angesprochenen Tableau Extension um eine vollständige Entwicklung handelt. Eine solche Entwicklung erfordert für die Handhabung der Verbindung zwischen Dashboard und Formular einen äußerst generischen Javascript Code.

Grundlegend ist für diese Umsetzung in Abhängigkeit vom Use Case ein Zeitraum von 2 bis 6 Monate einzuplanen. Alternativ besteht auch die Möglichkeit eine solche Extension über den Tableau Marketplace zu erwerben.