Parametrizzazione

In questa sezione vengono descritti i parametri e le modalità di utilizzo nei job e nei task.

Informazioni sui parametri

È possibile personalizzare le esecuzioni dei job passando parametri che modificano il funzionamento del job, del task o dell'esecuzione del job.

I parametri possono essere forniti a tre livelli diversi di un flusso di lavoro: livello mansione, livello task e livello esecuzione job. In caso di conflitti, i parametri hanno la precedenza seguente: Esecuzione job > Task > Job.

  1. Parametri a livello di esecuzione job: i parametri a livello di esecuzione job specificati nel payload di esecuzione job hanno la precedenza sui parametri a livello di task definiti nella configurazione del job. Ciò significa che tutti i parametri specificati durante l'esecuzione del job sostituiscono i valori predefiniti specifici del task.
  2. Parametri a livello di task: se non vengono forniti i parametri di esecuzione del job per un task specifico, il task utilizza i parametri definiti a livello di task nella configurazione del job. I parametri a livello di mansione con lo stesso nome sostituiscono i parametri a livello di task per quel task specifico. Quindi, se si desidera un parametro specifico del task, è necessario assegnargli un nome diverso rispetto al parametro del job.
  3. Parametri a livello di job: se non vengono forniti parametri a livello di task o runtime, vengono applicati i valori predefiniti impostati a livello di job. I parametri a livello di job vengono considerati valori predefiniti che possono essere utilizzati se non sono disponibili parametri più specifici.

Nota

I parametri job non sono modificabili nei contesti dei task. Ciò significa che se esiste un job con parametro JobParamA con valore risolto JobParamRuntimeValueA, l'esecuzione di TaskA non può modificare il valore di JobParamA. Il valore di JobParamA rimane JobParamRuntimeValueA per tutti i task e per l'intera esecuzione del job. Di conseguenza, se si desidera condividere informazioni tra attività, è possibile utilizzare parametri di memorizzazione o output intermedi per ottenere questo risultato.

Quando i nomi dei task, le chiavi dei valori dei task o i nomi dei parametri dei job contengono caratteri speciali (ad esempio !@$%), è necessario racchiudere tali identificativi con i backtick (` `). È possibile utilizzare solo caratteri alfanumerici e di sottolineatura senza circondare l'identificativo nei tasti di scelta rapida.

Ad esempio:

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

I parametri di sistema sono parametri modello il cui valore viene fornito dal sistema nell'ambito delle esecuzioni del flusso di lavoro e delle successive esecuzioni dei task. Non è necessario fornire alcun valore, predefinito o di altro tipo, per questi parametri modello. AI Data Platform Workbench dispone di un elenco fisso di parametri templati validi / riferimenti di valori dinamici supportati nel flusso di lavoro. I parametri di sistema vengono inseriti circondandoli con due parentesi graffe. Ad esempio {{job.id}}.

Tabella 12-1 Parametri di sistema supportati

Parametro Descrizione
ID utente L'identificativo univoco assegnato all'hub
Distretto governativo La regione dell'hub
Area di lavoro.id L'identificativo univoco assegnato all'area di lavoro
Area di lavoro.url}} L'URL dell'area di lavoro
Seg.id L'identificativo univoco assegnato alla mansione
Processo.name Nome del job al momento dell'esecuzione del job
ID esecuzione Identificativo univoco assegnato all'esecuzione del job
{{job.repair_count}} Numero di tentativi di riparazione nell'esecuzione del job corrente
{{job.start_time.[argomento]}} Valore basato sull'ora (nel fuso orario UTC) in cui è stata avviata l'esecuzione del job. Il valore restituito si basa sull'opzione argomento. Vedere Opzioni per i valori di data e ora.
{{job.parameters.[nome]}} Il valore del parametro a livello di job con la chiave [name]
Processo.trigger.type}} Tipo di trigger dell'esecuzione del job. I valori possibili sono Manuale e Schedulato.
Nome utente o indirizzo email * Se per questo job è configurato un trigger di arrivo file, il valore della posizione di memorizzazione
{{job.trigger.time.[argomento]}} Valore basato sull'ora (nel fuso orario UTC) in cui è stata attivata l'esecuzione del job, arrotondato al minuto più vicino per i job con pianificazione cron. Il valore restituito si basa sull'opzione argomento. Vedere Opzioni per i valori di data e ora.
Attività Il nome del task corrente
ID_attività Identificativo univoco dell'esecuzione task corrente
Conteggio_esecuzioni}} Numero di volte in cui il task corrente è stato eseguito (inclusi nuovi tentativi e riparazioni)
Task: percorso_notabook Percorso notebook del task notebook corrente
{{tasks.[task_name].run_id}} Identificativo univoco assegnato all'esecuzione del task per [task_name]
Tentativi.[task_name]result_state Stato del risultato del task [task_name]. I valori possibili sono Operazione riuscita, Non riuscita, Esclusa, Annullata, Saltato, Timeout, Upstream_canceled e Upstream_failed.
{{tasks.[task_name]codice_error}} Codice di errore per il task [task_name] se si è verificato un errore durante l'esecuzione del task. Esempi di valori possibili sono RunExecutionError, ResourceNotFound e UnauthorizedError. Per i task riusciti, viene restituita una stringa vuota.
{{tasks.[task_name].execution_count}} Numero di volte in cui il task [task_name] è stato eseguito (inclusi nuovi tentativi e riparazioni)
Attività.[task_name].notebook_path] Il percorso del notebook per il task del notebook [task_name]
{{tasks.[task_name].values.[nome_valore]}} Il valore del task con la chiave [value_name] impostata dal task [task_name]

Tabella 12-2 Opzioni per data e ora

Argomento Descrizione
giorno_settimana Restituisce una cifra compresa tra 1 e 7, che rappresenta il giorno della settimana nell'indicatore orario
è_giorno feriale Restituisce true se l'indicatore orario si trova in un giorno feriale
data_iso Restituisce la data nel formato ISO
data/ora iso Restituisce la data e l'ora in un formato ISO
anno; Restituisce la parte dell'anno dell'indicatore orario
mese Restituisce la parte del mese dell'indicatore orario
giorno Restituisce la parte del giorno dell'indicatore orario
ora Restituisce la parte di un valore relativo all'ora
minuto Restituisce la parte in minuti dell'indicatore orario
secondo Restituisce la seconda parte dell'indicatore orario
timestamp_ms Restituisce l'indicatore orario in millisecondi

Passare i parametri tra task e blocco note

È possibile passare i parametri da un task a un notebook e viceversa. Ciò consente il funzionamento dinamico del flusso di lavoro, consentendo ai notebook di adeguare l'elaborazione in base ai valori di runtime.

Il pacchetto oidlUtils.parameters fornisce le funzionalità necessarie per gestire queste operazioni dei parametri. Il pacchetto oidlUtils è una libreria di utility in AI Data Platform Workbench che semplifica attività come la gestione dei parametri, il passaggio del valore delle attività e altre operazioni del flusso di lavoro. Viene comunemente utilizzato nei notebook e nei task per ottenere e impostare parametri nelle fasi del flusso di lavoro.

I valori delle chiavi task sono stringhe o JSON. Ad esempio, per utilizzare una stringa come valore della chiave del task, la chiamata del parametro sarà simile alla seguente:
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")
Per utilizzare un parametro JSON come valore chiave task, la chiamata al parametro sarà simile alla seguente:
oidlUtils.parameters.setTaskValue(key="payload", value=json.dumps(payload), "defaultValue")

Workflow di esempio: Passaggio dei parametri

In questo scenario, abbiamo due notebook in un flusso di lavoro. Il notebook 1 riceve i parametri da un task, li elabora e imposta i parametri di output passati al notebook 2 nel task successivo.

Notebook 1: Recupera e imposta parametri
# 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")

Il primo notebook recupera un parametro (param1) passato dal task e quindi imposta un nuovo parametro (output_param_2), che verrà utilizzato nel task successivo.

Notebook 2: leggere il parametro di output
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))

Il secondo notebook riceve il valore output_param_2 dal notebook 1 tramite il task del workflow e lo elabora.

  1. Task 1: Blocco appunti 1
    • Nel primo task, i parametri possono essere passati al blocco note 1 dal job o dal task stesso.
    • Notebook 1 elabora i parametri come parametri di input param1 e imposta nuovi parametri di output (ad esempio output_param_2).
  2. Task 2: Blocco appunti 2
    • Nel secondo task, Notebook 2 riceve il parametro di output dal task 1 facendo riferimento direttamente al codice del notebook come mostrato sopra passando il nome del primo task "GetSetParameter" impostato nel flusso di lavoro.
    • Il valore di output_param_2 viene passato nel notebook 2, dove può essere utilizzato per ulteriori elaborazioni.

Questo approccio semplifica il passaggio dinamico dei valori tra attività e notebook, consentendo ai flussi di lavoro di essere più flessibili e adattivi.

Aggiungi parametri a un job

È possibile fornire ai job parametri diversi da tenere traccia.

  1. Nella home page, fare clic su Flusso di lavoro.
  2. Fare clic sul job a cui si desidera aggiungere i parametri e fare clic sulla scheda Dettagli.
  3. In Parametri job, fornire la chiave e il valore da tenere traccia. Per aggiungere più parametri, fare clic su Icona Nuova autorizzazione Aggiungi parametro.
    Le modificazioni apportate vengono salvate automaticamente.

Elimina parametri da un job

I job vengono aggiornati per rimuovere i parametri non più necessari.

  1. Nella home page, fare clic su Flusso di lavoro.
  2. Fare clic sul job da cui si desidera rimuovere i parametri e fare clic sulla scheda Dettagli.
  3. In Parametri job, fare clic su Icona EliminaElimina accanto al parametro che si desidera rimuovere.
    Le modificazioni apportate vengono salvate automaticamente.

Aggiungi parametri a un task

È possibile aggiungere parametri ai task per modificarne il comportamento.

  1. Nella home page, fare clic su Flusso di lavoro.
  2. Fare clic sul job contenente i task a cui si desidera aggiungere i parametri e fare clic sulla scheda Task.
  3. Fare clic sul task a cui si desidera aggiungere i parametri.
  4. In Parametri, immettere la chiave e il valore del parametro. Per aggiungere più parametri, fare clic su Icona Aggiungi parametro Aggiungi parametro.
    Le modificazioni apportate vengono salvate automaticamente.

Elimina parametri da un task

È possibile rimuovere i parametri non necessari dai task.

  1. Nella home page, fare clic su Flusso di lavoro.
  2. Fare clic sul job contenente i task da cui si desidera eliminare i parametri e fare clic sulla scheda Task.
  3. Fare clic sul task da cui si desidera eliminare i parametri.
  4. Fare clic su Icona Elimina Elimina accanto a ciascun parametro che si desidera rimuovere.
    Le modificazioni apportate vengono salvate automaticamente.

Esegui un job con valori di parametro diversi

È possibile scegliere di eseguire immediatamente un job con valori di parametro modificati.

  1. Nella home page, fare clic su Flusso di lavoro.
  2. Fare clic sul job che si desidera eseguire.
  3. Fare clic sulla freccia giù accanto a Esegui ora. Fare clic su Esegui ora con parametri diversi.

    Pulsante Esegui ora espanso per visualizzare Esegui ora con l'opzione di parametri diversi evidenziata

  4. Immettere nuovi valori. Questi valori dei parametri si applicano solo a questa esecuzione del job.

    Esegui ora con prompt con valori di parametro diversi

  5. Fare clic su Esegui.