Transformation in Yellowfin
Aktualisiert: 6. Apr. 2022
Frisch gesammelte Daten müssen oft angepasst werden und diese Anpassungen können in verschiedensten Formen vorkommen. Manchmal sind es nur kleinste Änderungen an der Formatierung, während es in anderen Fällen komplett neu aggregierte Spalten und Felder sind.
Diese Datenextraktion, Anreicherung und Transformation geschieht oft in mehreren Tools gleichzeitig, wobei die Inhalte immer wieder von einem System in ein anderes transportiert werden müssen und dabei Schritt für Schritt an die Bedürfnisse des Nutzers heranwachsen. Dieser Prozess ist jedoch oft langsam und kompliziert und für Endanwender ohne technische Kenntnisse problematisch.
Weitere Anwender aggregieren und transformieren die Daten erst direkt vor der Darstellung durch Formeln und Queries adhoc. Geschieht dies regelmäßig und mehrmals in einzelnen Reports und Dashboards, leidet die Performance. Dies betrifft nicht nur ein System sondern gleich mehrere. Während die Auslastung der Datenbank steigt, laden Reports und Dashboards spürbar länger und der Endanwender muss auf die Ergebnisse warten.
Besser wäre, die Daten nahtlos und adhoc in einem Tool zu extrahieren, zu aggregieren, zu transformieren und abspeichern zu können. Wobei auch Endanwender ohne technische Kenntnisse Datentransformationen in einer Oberfläche durchführen können.
Yellowfin besitzt seit der Version 7.4 das Feature Transformation Flow, ähnlich zu einem simplen ETL-Tool (Extract, Transform, Load), welches die oben aufgeführten Probleme lösen soll.
Nachfolgend gehen wir Schritt für Schritt den Aufbau und die Möglichkeiten des neuen Features durch.
Bausteine
Der Transformation Flow verfügt über einen einfachen Drag-and-Drop-Builder, der Euch bei der Erstellung von Flows unterstützt. Diese Flows bestehen aus Knoten, die jeweils eine andere Funktion erfüllen.
Nachfolgend sind die drei Haupttypen von Knoten aufgeführt:
Input
Mit diesen Knoten können Daten aus beliebigen Datenquellen extrahiert und in die zu transformierende Plattform importiert werden. Dies ist der erste Schritt, der konfiguriert werden muss. Für die Art des Inputs gibt es mehrere Optionen:
Datei (Beispielsweise eine tabulator- oder kommagetrennte Datei mit Werten)
eine freihand SQL-Query
einen bereits existierenden Report in Yellowfin
einzelne Tabellen aus der Datenbank
benutzerdefinierte Konnektoren von Drittanbietern
Transformation
Sind die Daten nun in der Plattform, dann gibt es in Yellowfin mehrere Möglichkeiten sie zu transformieren. Folgende Optionen gibt es:
Aggregieren
Erstellen von berechneten Feldern
Filtern
Zusammenfassen
Aufteilen
Erweitern mit Geo-Informationen
Erstellen von Prognosen und Datenmodellen (wie z.B. mit R oder H2O)
Output
Nachdem die Daten konvertiert wurden, müssen sie gesichert werden. Hierfür können wir den Output-Knoten nutzen um die transformierten Daten in einer Datenbank zu sichern.
Hinweis: Zur Sicherung der transformierten Ausgabe benötigen wir eine beschreibbare Datenquelle. Dies sollte die Zieldatenbank sein, in der die transformierten Daten gespeichert und abgerufen werden sollen. Die Einstellung kann von einem Administrator direkt in Yellowfin bei den Datenquellen vorgenommen werden.
Zusammenfassung
Alle Knoten können miteinander verknüpft werden, um komplexe Abläufe zu erstellen, die dann, ähnlich zu einem Broadcast, sofort oder in bestimmten Zeitabständen ausgeführt werden können.
Hinweis: Data Transformation muss für die Rolle des Users vom Administrator freigeschaltet werden.
Beispiel
Im zweiten Teil dieses Artikels möchte ich Euch gerne den Transformation Flow anhand eines simplen Beispiels vorführen. Wir wollen eine Tabelle mit Reiseagenturen mit dem entsprechenden Namen des Landes und der Region über den ISO-Code anreichern.
Schritt 1
Als Input nutzen wir für unser Beispiel eine existierende Tabelle in der Datenbank. Hierfür öffnen wir Yellowfin und klicken auf das gelbe Plus und wählen Transformation Flow aus.

Schritt 2
Nun fügen wir über den Baukasten per Drag-and-Drop zwei Input-Knoten hinzu und wählen die Datenbank und die gewünschten Tabellen aus.
Im folgenden Detailfenster dieses Knotens können wir nun zusätzlich auswählen welche Felder wir nutzen möchten.
Diesen Knoten fügen wir erst ein Mal für die Tabelle mit den Reiseagenturen hinzu:

Anschließend fügen wir die zweite Tabelle mit den Informationen zu Ländern und Regionen hinzu:

Schritt 3
Für das Zusammenführen dieser beiden Tabellen nutzen wir nun den Baustein Merge und verbinden ihn mit den Input-Knoten:

In den Einstellungen des Merge-Knotens wird die Art der Verbindung gewählt, in diesem Fall ein Left Outer Join, und die Namen der Felder auf dessen Basis die Daten verbunden werden sollen, hier der Länder ISO-Code. Nun haben wir die Daten erfolgreich verbunden und sehen bereits nach einem Klick auf das gelbe Play-Symbol in der Menüleiste eine Vorschau des Ergebnisses.
Schritt 4
Zusätzlich zum Zusammenfassen der Tabellen, möchten wir noch einen Filter einbauen. Hierfür nutzen wir den Filter-Knoten und platzieren ihn hinter dem Merge-Knoten. Damit die Daten fließen können, muss auch hier eine Verbindung erstellt werden.

In diesem Knoten konfigurieren wir nun, dass die Region ausschließlich Europa sein soll und damit ist der Filter bereits fertig erstellt.
Schritt 5
Die Transformation ist dann soweit abgeschlossen, dass wir die Daten abspeichern können. Hierfür benötigen wir nun einen Output-Knoten, den SQL-Output-Knoten:

In der Konfiguration dieses Schrittes kann festgelegt werden, in welcher Datenbank, in welcher Tabelle und mit welchen Indizes die Daten gesichert werden sollen. In diesem Fall wählen wir unsere lokale Testdatenbank als Ziel und erstellen eine Tabelle EuropeanAgencies mit einem Index auf die Agenturbeschreibung.
Für einen Testlauf aktivieren wir nun den Preview Mode und klicken auf das gelbe Play-Symbol in der oberen Menüleiste: