DataSet bearbeiten
Im DataSets Editor befinden sich drei Fenster. Im Fenster oben links ist eine Übersicht der Stages zu sehen. Rechts oben können die Stages beschrieben und konfiguriert werden. Im Fenster unten sieht man eine Vorschau der Daten, wenn man die jeweilige Stage testet. Außerdem können in einem zweiten Reiter Parameter an das DataSet übergeben werden.
Eine Stage bildet immer das Ergebnis einer Query an einem bestimmten Punkt der DataPipeline ab. Jede Stage hat eine eigene Funktionalität, wie z. B. das Filtern oder das Sortieren der Daten. Die Stages sind dabei hierarchisch aufgebaut, das heißt wenn Stage 3 von 5 getestet wird, werden nur die Stages 1 bis 3 ausgeführt.
Im linken oberen Fenster des DataSets Editor ist eine Übersicht der Stages zu sehen. Die Stages können über das Plus-Zeichen hinzugefügt werden. Über den Button "Stage testen" können die Stages getestet bzw. ausgeführt werden. Über das Tonne-Icon kann die Stage gelöscht werden. Außerdem können Stages per Drag and Drop verschoben werden.
Jedes DataSet beginnt mit der ersten Stage, in der die Daten aus der Quell-Datenstruktur geladen werden. Danach können beliebig viele Stages hinzugefügt werden. Aktuell sind in yedi 12 Stages verfügbar.
Im rechten oberen Fenster des DataSets Editor können die Stages beschrieben und konfiguriert werden. Die Beschreibung ist für jede Stage gleich aufgebaut:
Es kann ein Titel sowie eine Beschreibung vergeben werden. Die Konfiguration unterscheidet sich je nach Stage. Im Folgenden werden die einzelnen Stages und deren Funktionalität erklärt.
Daten sind häufig nicht zweidimensional, sondern in deutlich komplexerer Weise gegeben. Ein häufiger Anwendungsfall ist, dass Daten verschachtelt sind, d.h. dass pro Datensatz mehrere Datensätze untergeordnet sind. Als Beispiel kann man sich ein DataSet von Bestellungen denken. Ein Datensatz (also eine Bestellung) kann die Daten von mehreren Produkten enthalten, da mehrere Produkte in einer Bestellung erworben wurden. Somit sind die Daten der Produkte unter den Daten der Bestellung verschachtelt.
Die Stage Collection auflösen kann genutzt werden, um verschachtelte Daten aufzulösen. Verschachtelte Daten werden in yedi in einer Collection gespeichert. Mit dem Auflösen der Collection wird für jedes Element in der Collection ein eigener Datensatz angelegt. Im Beispiel der Bestelldaten werden also aus einem Datensatz (eine Bestellung mit fünf Produkten) fünf Datensätze (fünf Mal die gleiche Bestellung mit unterschiedlichen Produkten).
Unter „Feld“ kann die Collection ausgewählt werden, die aufgelöst werden soll. Unter „Index“ kann optional der Name eines neuen Feldes angegeben werden, in dem dann der Index des Collection-Elements gespeichert wird. Mit der Option „Leere Fälle behalten“ können leere Einträge in der Collection erhalten werden. Diese Option ist per Default auf false, sodass leere Einträge aus der Ergebnismenge entfernt werden.
Mit der Stage Ergebnisse zählen kann ausgewertet werden, wie viele Datensätze in der aktuellen Ergebnismenge sind.
Für das Zählen der Ergebnisse muss lediglich unter „Alias“ der Name des Feldes eingetragen werden, welches die Anzahl der Ergebnisse enthält.
Die Stage Felder auswählen kann genutzt werden, um die Ergebnismenge auf bestimmte Felder zu beschränken. DataSets können sehr groß sein und viele Felder enthalten. Mit dieser Stage können nur die Felder ausgewählt werden, die für die nachfolgende Pipeline relevant sind – alle anderen Felder werden aus der Ergebnismenge entfernt.
Unter „Feld hinzufügen“ kann ein neues Feld hinzugefügt werden. Das gewünschte Feld kann aus dem Dropdown Menü ausgewählt oder manuell eingetragen werden. Das Eingabefeld kann dabei auch als Suchfunktion verwendet werden. Unter „Alias“ muss der Name eingetragen werden, den das Feld fortan haben soll. Dieser kann gleichbleibend oder anders als der ursprüngliche Name sein.
Nutzung von Aliassen
Aliasse, die in Stages vergeben werden, werden fortan als Namen der Felder definiert. Wenn dem Feld „{{source.id}}“ also in einer Stage das Alias "orderId" vergeben wird, kann das Feld in nachfolgenden Stages nur noch über das Alias „orderId“ angesteuert werden.
In der Filter Stage können die Daten anhand einer oder mehrerer Bedingungen gefiltert werden. Beispielsweise kann man alle großen Bestellungen (Bestellsumme größer 1000 €) herausfiltern.
Dazu muss zunächst ein Feld ausgewählt werden, nach dem gefiltert werden soll. Danach kann die Filterbedingung mithilfe eines Operators und ggf. eines spezifizierten Wertes definiert werden. Anstatt eines statischen Wertes kann hier auch ein Feld aus dem DataSet ausgewählt werden, sodass zwei Felder miteinander verglichen werden. Mit den Buttons rechts kann der Datentyp des Wertes gesteuert werden, die Bedingung geleert oder gelöscht werden. Außerdem kann die Filterbedingung mit "+und" weiter geschachtelt werden. Links kann per Klick bestimmt werden, ob es eine "und"- (&) oder eine "oder"-Bedingung (or) ist. Mit "+ und Bedingung" können beliebig viele Bedingungen hinzugefügt werden.
Operatoren
Folgende Operatoren stehen innerhalb der Filter Stage zur Verfügung:
Operator | Bedeutung | Beschreibung |
---|---|---|
== | gleich | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes gleich dem angegebenen Wert ist |
> | größer | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes größer als der angegebene Wert ist |
>= | größer gleich | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes größer oder gleich dem angegebenen Wert ist |
< | kleiner | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes kleiner als der angegebene Wert ist |
<= | kleiner gleich | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes kleiner oder gleich dem angegebenen Wert ist |
!= | ungleich | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes nicht gleich dem angegebenen Wert ist |
IN | enthalten | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes gleich einem beliebigen Wert in der angegebenen Liste ist |
NOT IN | nicht enthalten | Findet alle Datensätze, bei denen der Wert des angegebenen Feldes nicht in der angegebenen Liste enthalten ist oder bei denen das Feld nicht existiert |
EXISTS | existiert | Findet alle Datensätze, bei denen das angegebene Feld existiert, einschließlich der Datensätze, bei denen der Feldwert null ist |
Mit der Gruppieren Stage können Daten anhand von einem oder mehreren Feldern aggregiert ausgewertet werden. Beispielsweise kann man die Bestellsumme aggregiert nach der Zahlungsart berechnen.
Unter „Gruppieren nach“ wird das Feld definiert, nach denen die Daten gruppiert werden sollen. Dem Feld muss außerdem ein Alias vergeben werden, was aber auch der ursprüngliche Name des Feldes sein kann. Es können beliebig viele Gruppen hinzugefügt werden. Unter „Aggregationen“ können dann diverse Akkumulatoren definiert werden, nach denen die Daten aggregiert werden sollen. Auch hier können beliebig viele Akkumulatoren hinzugefügt werden.
Akkumulatoren
Akkumulatoren sind Funktionen, die für die Aggregation von Daten angewendet werden können. Es können entweder Felder in einer Collection zusammengefasst werden, einzelne Elemente aus einer Gruppe ausgewählt werden oder verschiedene Rechenoperationen mit den aggregierten Daten gemacht werden (z. B. Durchschnitt, Summe oder Anzahl). Die Akkumulatoren benötigen teils unterschiedliche Argumente und lassen sich dementsprechend mit den Eingabemasken spezifisch konfigurieren. Wenn man über das Fragezeichen hovert, erscheint eine Infobox, in der eine Erklärung des jeweiligen Akkumulators steht.
Ein Join kann verwendet werden, um Daten aus zwei oder mehreren Datenstrukturen zu kombinieren.
Einfacher Join
Der einfache Join kann genutzt werden, um Daten anhand von einem Schlüsselfeld miteinander zu kombinieren. So können beispielsweise Produktdaten mithilfe der Artikel-ID an die Bestelldaten gejoint werden.
Dazu wird bei „Datenstruktur (extern)“ die Datenstruktur ausgewählt, die gejoint werden soll. Unter „Lokales Feld“ muss das Feld ausgewählt werden, das als Schlüsselfeld in der lokalen Datenstruktur dient; unter „Externes Feld“ analog das Schlüsselfeld aus der externen Datenstruktur. Die beiden Felder sind im Idealfall identische Identifikationsnummer o.ä. (wie z. B. eine Artikel-ID). Unter „Alias“ wird dann der Name des Feldes eingetragen, in den die gejointen Daten aggregiert werden. Nach dem Join sind alle Daten dann in dieser Collection verfügbar, sodass in nachfolgenden Stages auf die einzelnen Felder zugegriffen werden kann.
Mithilfe der Stage „Kategorisieren“ lassen sich die Daten anhand von Bedingungen in individuelle Kategorien einteilen. Beispielsweise kann der Zahlungsstatus in sprechende deutschsprachige Kategorien eingeteilt werden.
Unter „Gruppe hinzufügen“ können mehrere, aber muss mindestens eine Kategorie hinzugefügt werden. Darin lässt sich die Bedingung, nach der die Kategorie gebildet wird, spezifizieren sowie eine Bezeichnung für die Kategorie angeben. Die Kategorien müssen hier nicht überschneidungsfrei sein; wenn also ein Datensatz theoretisch in mehrere Kategorien fallen könnte, wird die Kategorie der ersten Bedingung, die erfüllt wurde, ausgewählt.
Unter „Default“ muss eine Ausweichkategorie eingetragen werden. Diese Kategorie wird ausgewählt, wenn keine der angegebenen Bedingungen erfüllt wurde. Unter „Alias“ wird der Name des Feldes eingetragen, das die neu gebildeten Kategorien enthält.
Die Sortieren Stage kann genutzt werden, um Daten nach einem oder mehreren Feldern zu sortieren. Beispielsweise lassen sich Bestellungen nach der Bestellsumme sortieren.
Dazu muss zunächst das Feld ausgewählt werden, nach dem sortiert werden soll. In einem zweiten Schritt wird dann die Richtung der Sortierung bestimmt, also ob aufsteigend oder absteigend sortiert werden soll. Wenn mehrere Felder zur Sortierung hinzugefügt werden, werden sie von der Sortieren Stage nacheinander abgearbeitet – die erste Sortierung hat also Vorrang, dann die zweite usw.
Die Stage Transformer kann genutzt werden, um Felder aus den Daten benutzerdefiniert zu verändern oder zu kombinieren. Beispielsweise können mithilfe eines Transformers mathematische Berechnungen mit Feldern durchgeführt werden oder auch Texte transformiert werden.
Für die Nutzung eines Transformers muss nur im Dropdown Menü der jeweilige Transformer ausgewählt werden. Wenn man über das Fragezeichen hovert, erscheint eine Infobox, die eine Erklärung des jeweiligen Transformers liefert. Eine Auflistung und Erklärung aller Transformer Funktionen findet sich außerdem hier:DataSet Transformer Funktionen. Außerdem muss ein Alias für das neue Feld vergeben werden.
Die Limit Stage eignet sich insbesondere für das Verarbeiten von großen Datenmengen. Sie kann genutzt werden, um den Output von Daten zu begrenzen und somit die Performance zu verbessern.
Die Limit Stage begrenzt die Anzahl der Datensätze, die an die nächste Stage übergeben werden. Im Feld „Limit“ kann die maximale Anzahl der weiterzugebenden Datensätze angegeben werden.
Die Offset Stage überspringt eine bestimmte Anzahl von Datensätzen und leitet nur die verbleibenden Datensätze an die nächste Stage weiter. Insbesondere in Kombination mit der Limit Stage lässt sie sich nutzen, DataSets batchweise zu verarbeiten.
Im Feld „Menge“ kann die maximale Anzahl der zu überspringenden Dokumente angegeben werden.
Im unteren Fenster des DataSet Editors ist eine Vorschau der Daten zu sehen, nachdem eine Stage getestet wurde. Unter der Tabelle kann man sehen, wie viele Datensätze in der Ergebnismenge sind. Es besteht die Möglichkeit, 15, 25, 50 oder 100 Ergebnisse pro Seite anzeigen zu lassen.
Im Reiter "Parameter" können Parameter für die DataSets vergeben werden.
In der Auflistung ist die Bezeichnung, der Typ und der Wert der definierten Parameter zu sehen. Als Aktionen können Parameter bearbeitet (Stift) und gelöscht (Tonne) werden. Außerdem kann oben links definiert werden, wie viele Ergebnisse pro Seite angezeigt werden sollen.
Über den Button "Parameter hinzufügen" kann ein neuer Parameter hinzugefügt werden. Dazu muss ein Name für den Parameter vergeben werden. Außerdem kann zwischen den Typen Text, Nummer und JSON gewählt werden. Schließlich wird der Wert vergeben
Ziel der einzelnen Parameter ist es, ein DataSet dynamisch zu gestalten, so dass das Ergebnis des DataSets über Variablen im Workflow beeinflusst werden kann.
- Nutzung um dynamische Filter zu erzeugen, bei denen die Werte, nach denen gefiltert wird, erst im Workflow übergeben werden
- Ein Parameter besteht aus einer Bezeichnung, einem Typ und einem Default-Wert