Free Trial

Blog - Deutsch

Erkenntnisse und Ideen von den besten Analytics-Experten.
RolandSchubert
16 - Nebula
16 - Nebula

Oft genug liefert eine Datei nicht nur die Daten, die wir wirklich brauchen, sondern bringt noch eine Menge zusätzlicher Spalten mit, die nicht benötigt werden. Im Interesse der Performance gilt es auf jeden Fall, die so schnell wie möglich loszuwerden. Manchmal müssen wir auch ein paar Spalten entfernen, die wir im Workflow erzeugt haben, bevor die Ergebnisse weggeschrieben werden.  

 

Eine Datei könnte zum Beispiel so aussehen:

P01.jpgP02.jpg

 

Kundennummer und Kundenname - soweit klar. Und dann folgt für jeden Datenspalte eine Kommentarspalte, die wir in unserem Workflow nicht brauchen. Wir wollen vielleicht nur die Spalten, die hier markiert sind:

 

 

P03.jpg

 

Ganz klar, ein Fall für das SELECT Tool. Ziehen wir also ein SELECT Tool auf den Canvas und verbinden es mit dem INPUT DATA Tool. Mit "Deselect All" können wir zunächst einmal die Vorauswahl (alle Spalten) entfernen.

 

 

P04.jpg

 

 

Dann wählen wir gezielt alle Felder aus, die wir behalten wollen - "Customer ID" und alle Datenspalten. Ziemlich viel Klicken, finde ich. Und wenn im nächsten Monat eine neue Datei geliefert wird, die dann eine zusätzliche Datenspalte für einen weiteren Monat und die entsprechende Kommentarspalte enthält, müssen wir die Auswahl wieder korrigieren. Auch nicht so schön.

 

P05.jpg

 

 

Aber es gibt ja eine Alternative - das DYNAMIC SELECT Tool. Zu finden ist es ist der DEVELOPER Tool Palette. Wenn man nicht bis dahin blättern will, sondern "dynamic" als Suchbegriff eingibt (das mache ich meistens so), wird es allerdings nicht sofort angezeigt (stattdessen tauchen in der Ergebnisliste INPUT DATA und OUTPUT DATA auf ...). Ab "dynamic s" wird dann auch DYNAMIC SELECT angezeigt.

 

P00.jpg

 

 

Wenn wir das DYNAMIC SELECT Tool auf den Canvas ziehen und mit dem INPUT DATA Tool verbinden, haben wir zunächst die Möglichkeit, nach Feldtypen auszuwählen (im Standard sind wieder alle ausgewählt).

 

P06.jpg

 

 

Ein Klick auf "Numeric" wählt alle numerischen Datentypen, alle anderen werden entfernt. Für unseren konkreten Fall funktioniert das so - auch zusätzliche Spalten werden entsprechend bearbeitet, das Tool ist eben "dynamisch" und passt sich den gelieferten Daten an.

 

P07.jpg

 

Diese Variante (analog geht das für String- oder Spatial-Datentypen) passt natürlich nur in bestimmten Fällen und ist oft nicht differenziert genug. Aber es gibt noch einen anderen (flexibleren) Ansatz: Die Auswahl über Formeln.

 

P08.jpg

 

Der einfachste Fall ist wieder die Prüfung des Datentyps - IsNumeric gibt das gleiche Ergebnis, das wir über die Auswahl aller numerischen Datentypen schon erzielt haben. Zusätzlich gibt es aber noch weitere vordefinierte Abfragen (IsStringOrDate, IsDateOrTime). Neben den Datentypen können hier auch der Feldname, die Feldnummer, aber auch Source und Description als Auswahlkriterium verwendet werden. 

 

P09.jpg

 

Hier haben wir wieder alle numerischen Felder gewählt.

 

P10.jpg

 

 

Interessanter wird es, wenn wiralle Felder wählen wollen, die einen bestimmten Datentyp haben - und zusätzlich noch ein ganz bestimmtes Feld über seinen Namen. Hier brauchen wir dann zwei Bedingungen - gewählt werden alle Felder, deren Name "Customer Name" ist und alle numerischen Felder. 

 

P11.jpg

 

 

Wenn wir nun auch die Kundennummer ausschließen wollen, passt die Logik "Feld ist numerisch" nicht mehr. In diesem Fall können wir zum Beispiel die ersten vier Stellen prüfen (die müssten dann in einer Liste sein, wie es hier umgesetzt ist), alternativ können wir einen bestimmten Aufbau des Spaltennamens ("yyyy_mm") abfragen. Grundsätzlich können wir beliebige Bedingungen formulieren, auch eine Selektion über RegEx ist möglich.

 

P12.jpg

 

Nehmen wir nun einmal an, wir wollen für die Ausgabe nur den Kundennamen sowie die letzten zwölf Monate behalten. Die Spalte [Customer Name] können wir einfach über den Namen selektieren, für die Datenspalten benötigen wir eine "richtige" Bedingung. Über die DateTime-Funktionen erzeugen wir einfach den Text der ersten gewünschten Spaltenüberschrift (hier: "2015_05"). Dann wählen wir alle Spalten aus, derewn Spaltenname ">="  "2015_05" ist. Zusätzlich müssen wir allerdings noch auf die Datenspalten einschränken (fangen alle mit der Jahreszahl an) - der Spaltenname [Customer ID] ist auch ">" als "2015_05". 

 

P13.jpg

 

 

 

Eine kleine Änderung der Formel sorgt dafür, dass die Auswahl flexibel in Abhängigkeit vom aktuellen Datum erfolgt. Über DateTimeToday() ermitteln wir hier das Tagesdatum, mit den entsprechenden DateTime-Funktionen finden wir den ersten Monat, den wir behalten wollen. So wird monatlich eine Liste der letzten zwölf Monate erzeugt, dabei spielt es keine Rolle, wieviele Spalten die Datei enthält. Wenn also jeden Monat zwei Spalten hinzugefügt werden (Daten- und Kommentarspalte), müssen wir nicht eingreifen, sondern die Anpassung der Auswahl erfolgt automatisch.

 

 

P14.jpg

 

 

Das DYNAMIC SELECT Tool macht die Auswahl von Spalten oft einfacher und "zukunftssicher" - neue Spalten stellen kein Problem dar, sondern die Auswahlkriterien werden einfach auch darauf angewandt. Allerdings fehlt dem Tool die Möglichkeit, Datentypen oder Feldnamen zu ändern, die wir im SELECT Tool haben - es geht eben nur um die dynamische Auswahl von Feldern, alles andere muss über zusätzliche Tools (z.B. DYNAMIC RENAME) gelöst werden.

 

 

 

 

Weitere Tipps Tuesday Beiträge

Dieser Eintrag ist Teil der Tipps Tuesday-Serie, alle Einträge dieser Serie findest du in unserem Index aufgelistet.

Beschriftungen