Parametrisierung

Dieser Abschnitt behandelt Parameter und deren Verwendung in Jobs und Aufgaben.

Parameter

Sie können Jobläufe anpassen, indem Sie Parameter übergeben, die das Verhalten des Jobs, der Aufgabe oder des Joblaufs ändern.

Parameter können auf drei verschiedenen Ebenen eines Workflows bereitgestellt werden: Tätigkeitsebene, Aufgabenebene und Joblaufebene. Parameter haben bei Konflikten folgende Priorität: Joblauf > Aufgabe > Job.

  1. Parameter auf Joblaufebene: Parameter auf Joblaufebene, die in der Joblauf-Payload angegeben sind, haben Vorrang vor Parametern auf Aufgabenebene, die in der Jobkonfiguration definiert sind. Das bedeutet, dass alle während der Jobausführung angegebenen Parameter die aufgabenspezifischen Standardwerte außer Kraft setzen.
  2. Parameter auf Aufgabenebene: Wenn keine Joblaufparameter für eine bestimmte Aufgabe angegeben sind, verwendet die Aufgabe die Parameter, die auf Aufgabenebene in der Jobkonfiguration definiert wurden. Parameter auf Funktionsebene mit demselben Namen überschreiben Parameter auf Aufgabenebene für diese bestimmte Aufgabe. Wenn Sie also einen aufgabenspezifischen Parameter wünschen, sollten Sie ihn anders benennen als den Jobparameter.
  3. Parameter auf Funktionsebene: Wenn weder Parameter auf Aufgabenebene noch Laufzeit angegeben sind, gelten die Standardwerte, die auf Funktionsebene festgelegt wurden. Parameter auf Funktionsebene gelten als Standardwerte, die verwendet werden können, wenn keine spezifischen Parameter verfügbar sind.

Hinweis:

Jobparameter sind in Aufgabenkontexten unveränderbar. Das heißt, wenn ein Job mit dem Parameter JobParamA mit dem aufgelösten Wert JobParamRuntimeValueA vorhanden ist, kann die TaskA-Ausführung den Wert von JobParamA nicht ändern. Der Wert von JobParamA bleibt für alle Aufgaben und den gesamten Joblauf JobParamRuntimeValueA. Wenn Sie Informationen zwischen Aufgaben teilen möchten, können Sie dazu Zwischenspeicher- oder Ausgabeparameter verwenden.

Wenn Aufgabennamen, Aufgabenwertschlüssel oder Jobparameternamen Sonderzeichen (wie !@$%) enthalten, müssen Sie diese Bezeichner mit Backticks (` `) umgeben. Nur alphanumerische Zeichen und Unterstriche können verwendet werden, ohne die ID in Backticks zu umgeben.

Beispiel:

{
  "VariableWithSpecialChars": "{{job.parameters.`param$@`}}"
}

Systemparameter sind Vorlagenparameter, deren Wert vom System im Rahmen von Workflowausführungen und nachfolgenden Aufgabenausführungen angegeben wird. Für diese Vorlagenparameter müssen Sie keinen Standardwert oder einen anderen Wert angeben. AI Data Platform Workbench enthält eine feste Liste gültiger Vorlagenparameter/dynamischer Wertreferenzen, die im Workflow unterstützt werden. Systemparameter werden eingegeben, indem sie mit zwei geschweiften Klammern umgeben werden. Beispiel: {{job.id}}.

Tabelle 12-1: Unterstützte Systemparameter

Parameter Beschreibung
{{hub.id}} Die eindeutige ID, die dem Hub zugewiesen ist
{{hub.region}} Der Bereich des Hub
{{workspace.id}} Die eindeutige ID, die dem Workspace zugewiesen ist
Arbeitsraum.url Die URL des Workspace
{{job.id}} Die eindeutige ID, die dem Job zugewiesen ist
{{job.name}} Der Name des Jobs zum Zeitpunkt der Jobausführung
{{job.run_id}} Die eindeutige ID, die dem Joblauf zugewiesen ist
{{job.repair_count}} Die Anzahl der Reparaturversuche beim aktuellen Joblauf
{{job.start_time.[argument]}} Ein Wert, der auf der Zeit (in der UTC-Zeitzone) basiert, zu der die Jobausführung gestartet wurde. Der Rückgabewert basiert auf der Argumentoption. Siehe Optionen für Datums- und Zeitwerte.
{{job.parameters.[name]}} Der Wert des Parameters auf Jobebene mit dem Schlüssel [Name]
{{job.trigger.type}} Der Triggertyp des Joblaufs. Mögliche Werte sind "Manuell" und "Geplant".
{{job.trigger.file_arrival.location}} Wenn für diesen Job ein Dateiankunfts-Trigger konfiguriert ist, wird der Wert des Speicherorts
{{job.trigger.time.[argument]}} Ein Wert, der auf der Zeit (in der UTC-Zeitzone) basiert, zu der der Joblauf ausgelöst wurde. Er wird auf die nächste Minute für Jobs mit einem Cron-Plan abgerundet. Der Rückgabewert basiert auf der Argumentoption. Siehe Optionen für Datums- und Zeitwerte.
Aufgabe: Der Name der aktuellen Aufgabe
Aufgabe Die eindeutige ID der aktuellen Aufgabenausführung
{{task.ausführung_count}} Gibt an, wie oft die aktuelle Aufgabe ausgeführt wurde (einschließlich Wiederholungen und Reparaturen)
Passwort: Der Notizbuchpfad der aktuellen Notizbuchaufgabe
{{tasks.[task_name].run_id}} Die eindeutige ID, die der Aufgabenausführung für [task_name] zugewiesen ist
{{tasks.[task_name].result_state}} Der Ergebnisstatus der Aufgabe [task_name]. Mögliche Werte sind "Erfolg", "Nicht erfolgreich", "Ausgeschlossen", "Abgebrochen", "Übersprungen", "Zeitüberschreitung", "upstream_canceled" und "upstream_failed".
{{tasks.[task_name].error_code}} Der Fehlercode für Aufgabe [task_name], wenn beim Ausführen der Aufgabe ein Fehler aufgetreten ist. Beispiele für mögliche Werte sind RunExecutionError, ResourceNotFound und UnauthorizedError. Bei erfolgreichen Aufgaben ergibt dies eine leere Zeichenfolge.
Aufgaben.[task_name].execution_count}} Gibt an, wie oft die Aufgabe [task_name] ausgeführt wurde (einschließlich Wiederholungen und Reparaturen)
Aufgaben.[task_name].notebook_path}} Der Pfad zu dem Notizbuch für die Notizbuchaufgabe [task_name]
{{tasks.[task_name].values.[value_name]}} Der Aufgabenwert mit dem Schlüssel [value_name], der von Aufgabe [task_name] festgelegt wurde

Tabelle 12-2: Optionen für Datum und Uhrzeit

Argument Beschreibung
iso_wochentag Gibt eine Ziffer von 1 bis 7 zurück, die den Wochentag im Zeitstempel darstellt
is_weekday Gibt true zurück, wenn der Zeitstempel an einem Wochentag liegt
iso_date Gibt das Datum im ISO-Format
iso_datetime Gibt das Datum und die Uhrzeit im ISO- Format zurück
Jahr Gibt den Jahresabschnitt eines Zeitstempels zurück
Monat Gibt den Monatsabschnitt eines Zeitstempels zurück
Tag Gibt den Tagesabschnitt eines Zeitstempels zurück
Stunde Gibt den Stundenabschnitt des Zeitstempels zurück
Minute Gibt den Minutenabschnitt eines Zeitstempels zurück
Sekunde Gibt den zweiten Teil des Zeitstempels zurück
Zeitstempel Gibt den Zeitstempel in Millisekunden zurück

Parameter zwischen Aufgaben und Notizbuch übergeben

Sie können Parameter von einer Aufgabe an ein Notizbuch übergeben und umgekehrt. Dadurch wird das dynamische Workflowverhalten aktiviert, sodass Notizbücher ihre Verarbeitung basierend auf Laufzeitwerten anpassen können.

Das Package oidlUtils.parameters bietet die erforderliche Funktionalität für die Verarbeitung dieser Parametervorgänge. Das oidlUtils-Package ist eine Utility-Library in AI Data Platform Workbench, die Aufgaben wie die Parameterverwaltung, die Übergabe von Aufgabenwerten und andere Workflowvorgänge vereinfacht. Es wird häufig in Notizbüchern und Aufgaben verwendet, um Parameter über Workflowphasen hinweg abzurufen und festzulegen.

Aufgabenschlüsselwerte sind entweder Zeichenfolgen oder JSONs. Beispiel: Um eine Zeichenfolge als Aufgabenschlüsselwert zu verwenden, sieht der Parameteraufruf wie folgt aus:
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")
Um eine JSON als Aufgabenschlüsselwert zu verwenden, sieht der Parameteraufruf wie folgt aus:
oidlUtils.parameters.setTaskValue(key="payload", value=json.dumps(payload), "defaultValue")

Beispielworkflow: Parameter übergeben

In diesem Szenario befinden sich zwei Notizbücher in einem Workflow. Notizbuch 1 empfängt Parameter von einer Aufgabe, verarbeitet diese und legt Ausgabeparameter fest, die in der nächsten Aufgabe an Notizbuch 2 übergeben werden.

Notizbuch 1: Parameter abrufen und festlegen
# Get parameter if already set in the task
param_key = "param1"
param_value = oidlUtils.parameters.getParameter(param_key, "defaultValue")
print(param_value)
print("Param {} value is {}".format(param_key, param_value))

 
# Set parameter value in the task
output_parameter_key = "output_parameter"
output_param_value = oidlUtils.parameters.getParameter(output_parameter_key, "defaultValue2")
print("Param {} value is {}".format(output_parameter_key, output_param_value))
oidlUtils.parameters.setTaskValue(output_parameter_key, "1234")

Das erste Notizbuch ruft einen von der Aufgabe übergebenen Parameter (param1) ab und legt dann einen neuen Parameter (output_param_2) fest, der in der nächsten Aufgabe verwendet wird.

Notizbuch 2: Ausgabeparameter lesen
output_param_2= "output_parameter"
param_value = oidlUtils.parameters.getTaskValue("GetSetParameter", output_param_2, "defaultValue")
print("Param {} value is {}".format(output_param_2, param_value))

Das zweite Notebook empfängt die output_param_2 von Notebook 1 über die Workflowaufgabe und verarbeitet sie.

  1. Aufgabe 1: Notizbuch 1
    • In der ersten Aufgabe können Parameter aus dem Job oder der Aufgabe selbst an Notizbuch 1 übergeben werden.
    • Notizbuch 1 verarbeitet die Parameter als Eingabeparameter param1 und legt neue Ausgabeparameter fest (z.B. output_param_2).
  2. Aufgabe 2: Notizbuch 2
    • In der zweiten Aufgabe empfängt Notebook 2 den Ausgabeparameter von Aufgabe 1, indem es ihn direkt im Notizbuchcode referenziert, wie oben gezeigt, indem der Name der ersten Aufgabe "GetSetParameter" wie im Workflow festgelegt übergeben wird.
    • Der Wert von output_param_2 wird an Notebook 2 übergeben, wo er zur weiteren Verarbeitung verwendet werden kann.

Dieser Ansatz macht es einfach, Werte dynamisch zwischen Aufgaben und Notizbüchern zu übergeben, sodass Ihre Workflows flexibler und adaptiver sind.

Parameter zu einem Job hinzufügen

Sie können verschiedene Parameter für die Verfolgung Ihrer Jobs angeben.

  1. Klicken Sie auf der Homepage auf Workflow.
  2. Klicken Sie auf den Job, dem Sie Parameter hinzufügen möchten, und klicken Sie auf die Registerkarte Details.
  3. Geben Sie unter "Jobparameter" den zu verfolgenden Schlüssel und Wert an. Um mehrere Parameter hinzuzufügen, klicken Sie auf Symbol für neue Berechtigung Parameter hinzufügen.
    Ihre Änderungen werden automatisch gespeichert.

Parameter aus einem Job löschen

Sie aktualisieren Ihre Jobs, um Parameter zu entfernen, die nicht mehr benötigt werden.

  1. Klicken Sie auf der Homepage auf Workflow.
  2. Klicken Sie auf den Job, aus dem Sie Parameter entfernen möchten, und klicken Sie auf die Registerkarte Details.
  3. Klicken Sie unter "Jobparameter" neben dem zu entfernenden Parameter auf Symbol "Löschen"Löschen.
    Ihre Änderungen werden automatisch gespeichert.

Parameter zu einer Aufgabe hinzufügen

Sie können Aufgaben Parameter hinzufügen, um ihr Verhalten zu ändern.

  1. Klicken Sie auf der Homepage auf Workflow.
  2. Klicken Sie auf den Job mit den Aufgaben, zu denen Sie Parameter hinzufügen möchten, und klicken Sie auf die Registerkarte Aufgaben.
  3. Klicken Sie auf die Aufgabe, der Sie Parameter hinzufügen möchten.
  4. Geben Sie unter Parameter den Schlüssel und den Wert für den Parameter ein. Um mehrere Parameter hinzuzufügen, klicken Sie auf Symbol "Parameter hinzufügen" Parameter hinzufügen.
    Ihre Änderungen werden automatisch gespeichert.

Parameter aus einer Aufgabe löschen

Sie können nicht benötigte Parameter aus Ihren Aufgaben entfernen.

  1. Klicken Sie auf der Homepage auf Workflow.
  2. Klicken Sie auf den Job mit den Aufgaben, aus denen Sie Parameter löschen möchten, und klicken Sie auf die Registerkarte Aufgaben.
  3. Klicken Sie auf die Aufgabe, aus der Sie Parameter löschen möchten.
  4. Klicken Sie neben jedem Parameter, den Sie entfernen möchten, auf Symbol "Löschen" Löschen.
    Ihre Änderungen werden automatisch gespeichert.

Job mit unterschiedlichen Parameterwerten ausführen

Sie können wählen, ob ein Job sofort mit geänderten Parameterwerten ausgeführt werden soll.

  1. Klicken Sie auf der Homepage auf Workflow.
  2. Klicken Sie auf den Job, den Sie ausführen möchten.
  3. Klicken Sie auf den Abwärtspfeil neben Jetzt ausführen. Klicken Sie auf Jetzt mit verschiedenen Parametern ausführen.

    Schaltfläche "Jetzt ausführen" erweitert, um die Option "Jetzt ausführen" mit verschiedenen Parametern anzuzeigen

  4. Geben Sie neue Werte ein. Diese Parameterwerte gelten nur für diesen Joblauf.

    Jetzt mit anderer Eingabeaufforderung für Parameterwerte ausführen

  5. Klicken Sie auf Ausführen.