Beispiel: Dauerhaft abgeleitetes Feld
Sie können zum Beispiel den Prozess "Auswählen" so konfigurieren, dass er IDs basierend auf der Beschränkung durch ein abgeleitetes Feld auswählt und mit einem Prozess "Momentaufnahme" verbunden ist, in dem die ausgewählten Datensätze ausgegeben werden, die das abgeleitete Feld beinhalten. Wenn Sie dieses abgeleitete Feld als dauerhaft kennzeichnen, wird der berechnete Wert vom Prozess "Auswählen" an den Prozess "Momentaufnahme" weitergeleitet.
Eine weitere Anwendungsmöglichkeit für dauerhaft abgeleitete Felder ist die Verwendung mit dauerhaften Feldern vom Aggregattyp, wie zum Beispiel AVG oder GROUPBY. Diese Aggregatfelder werden basierend auf mehreren Datenzeilen in der aktuellen Zelle berechnet. Dadurch ändert sich der Wert dieser Aggregatfelder, wenn sich der Inhalt der Zelle ändert. Mit dauerhaft abgeleiteten Feldern haben Sie die Möglichkeit, den ursprünglich berechneten Wert zu erhalten und an andere Prozesse weiterzuleiten. Wenn Sie anstatt dessen das abgeleitete Feld neu berechnen, wird ein Wert berechnet, der auf den verbleibenden Datensätzen in der aktuellen Zelle basiert.
Wenn ein Prozess mehrere Eingaben verwendet, wie zum Beispiel ein Prozess Momentaufnahme, der mit den Eingaben zweier Prozesse Auswählen arbeitet, sind in dem nachgeordneten Prozess alle dauerhaft abgeleiteten Felder verfügbar.
Wenn das dauerhaft abgeleitete Feld nicht in allen der eingehenden Prozesse zum Auswählen verfügbar ist, aber in die Ausgabe eines Prozesses "Momentaufnahme" eingeschlossen ist, dann zeigt der Prozess "Momentaufnahme" für dieses dauerhaft abgeleitete Feld in allen Ausgabezeilen des Prozesses zum Auswählen, in denen das dauerhaft abgeleitete Feld nicht verfügbar war, den Wert NULL an.
Wenn ein dauerhaft abgeleitetes Feld nicht in allen der eingehenden Prozesse Auswählen verfügbar ist und Sie dieses Feld bei der Definition des Prozesses Segment verwenden, dann enthält der Prozess Segment leere Segmente für alle Prozesse Auswählen, in denen das dauerhaft abgeleitete Feld nicht verfügbar war.
Der Prozess Segment verbleibt in dekonfiguriertem Zustand, wenn Sie versuchen, ein Segment mit Hilfe eines Ausdrucks zu definieren, der mehr als ein dauerhaft abgeleitetes Feld enthält, das nicht in allen Prozessen zum Auswählen verfügbar ist.
Bei dauerhaft abgeleiteten Feldern (DAF) sind folgende Richtlinien zu beachten:
*
*
*
*
*
*
Wenn Sie ein abgeleitetes Feld verwenden, das auf einem Tabellenfeld basiert, beinhaltet die Ausgabe indirekt ein Tabellenfeld. In diesem Fall existiert für jede Instanz eines ID-Wertes ein Datensatz. (Kommt ein ID-Wert zum Beispiel sieben Mal in den Daten vor, dann werden sieben Datensätze ausgegeben.)
Dauerhaft abgeleitete Felder speichern nur einen einzigen Wert für jede Zielgruppen-ID, welcher zufällig aus den verfügbaren Werten ausgewählt wird. Dies bedeutet, dass Sie beim Arbeiten mit nicht normalisierten Daten die Makrofunktion GROUPBY verwenden müssen, um das gewünschte Verhalten zu erreichen.
Zum Beispiel wollen Sie in der Einkaufstransaktionstabelle den höchsten Betrag einer einzelnen Einkaufstransaktion eines Kunden finden und diesen als dauerhaft abgeleitetes Feld für nachfolgende Prozesse speichern. Sie können ein abgeleitetes Feld (und dann ein als dauerhaft festgelegtes abgeleitetes Feld) wie folgt schreiben:
Höchster_Trans_Betr = groupby(KID, maxof, Trans_Betr)
Bei nicht normalisierten Einkaufstransaktionsdaten wie den nachfolgend aufgeführten wird dies folgendermaßen berechnet:
Wenn das abgeleitete Feld dauerhaft ist, wird (zufällig) ein beliebiger Wert (alle sind 300 USD) gewählt und der Wert 300 USD für Kunde A festgelegt.
Ein zweites weniger offensichtliches Beispiel ist die Auswahl einer Vorhersagemodell-Bewertung aus einer Notentabelle für ein bestimmtes Modell X. Hier kann das abgeleitete Feld so aussehen:
ModellX_Bewertung = groupby(KID, maxof, if(Modell = 'X', 1, 0), Note)
Und die Daten können so aussehen:
Das dauerhaft abgeleitete Feld, ModellX_Bewertung, gibt dem gewünschten Ergebnis den Notenwert 80. Es ist falsch, ein abgeleitetes Feld wie folgt zu erstellen:
Fehler_ModellX_Bewertung = if(Modell = 'X', Bewertung, NULL)
Dies wird sich wie folgt auswirken:
Wenn Sie dann das abgeleitete Feld, Fehler_ModellX_Bewertung, dauerhaft festlegen, kann der dauerhafte Wert NULL oder 80 sein. Wenn Sie mit nicht normalisierten Daten arbeiten und die abgeleiteten Feldwerte sind nicht die gleichen, dann kann beim dauerhaften Festlegen des abgeleiteten Feldes als Ergebnis jeder der Werte ausgegeben werden. Beim Definieren von abg_Feld_Note = NOTE und der dauerhaften Festlegung von diesem Feld können sich beispielsweise die Werte 57, 72 und 80 für Kunde A ergeben. Um das gewünschte Ergebnis zu gewährleisten, müssen Sie das Makro GROUPBY für die Kunden-ID benutzen und sicherstellen, dass der abgeleitete Feldwert für alle Daten des Kunden der gleiche ist.