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.
- 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.
- 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.
- 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.
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")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 outputoutput_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.
- 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).
- 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.

