Parametrización
En esta sección, se tratan los parámetros y cómo se utilizan en trabajos y tareas.
Acerca de los parámetros
Puede personalizar las ejecuciones de trabajos transfiriendo parámetros que modifiquen el comportamiento del trabajo, la tarea o la ejecución de trabajos.
Los parámetros se pueden proporcionar en tres niveles diferentes de un flujo de trabajo: nivel de trabajo, nivel de tarea y nivel de ejecución de trabajo. Los parámetros tienen la siguiente prioridad en caso de conflictos: Ejecución de trabajos > Tarea > Trabajo.
- Parámetros de Nivel de Ejecución de Trabajo: los parámetros de nivel de ejecución de trabajo especificados en la carga útil de ejecución de trabajo tienen prioridad sobre los parámetros de nivel de tarea definidos en la configuración de trabajo. Esto significa que cualquier parámetro especificado durante la ejecución del trabajo sustituye los valores por defecto específicos de la tarea.
- Parámetros de Nivel de Tarea: Si no se proporcionan parámetros de ejecución de trabajo para una tarea específica, la tarea utiliza los parámetros definidos en el nivel de tarea en la configuración de trabajo. Los parámetros de nivel de trabajo con el mismo nombre sustituyen los parámetros de nivel de tarea para esa tarea específica. Por lo tanto, si desea un parámetro específico de tarea, debe asignarle un nombre diferente al parámetro de trabajo.
- Parámetros de nivel de trabajo: si no se proporcionan parámetros de nivel de tarea ni de tiempo de ejecución, se aplican los valores por defecto definidos en el nivel de trabajo. Los parámetros de nivel de trabajo se consideran valores por defecto que se pueden utilizar si no hay más parámetros específicos disponibles.
Note:
Los parámetros de trabajo son inmutables en contextos de tarea. Esto significa que si hay un trabajo con el parámetro JobParamA con el valor resuelto JobParamRuntimeValueA, la ejecución de TaskA no puede cambiar el valor de JobParamA. El valor de JobParamA sigue siendo JobParamRuntimeValueA para todas las tareas y toda la ejecución del trabajo. Como resultado, si desea compartir información entre tareas, puede utilizar parámetros de salida o almacenamiento intermedios para lograrlo.Cuando los nombres de tareas, claves de valores de tareas o nombres de parámetros de trabajo contienen caracteres especiales (como !@$%), debe rodear esos identificadores con backticks (``). Solo se pueden utilizar caracteres alfanuméricos y de subrayado sin rodear el identificador en los backticks.
Por ejemplo:
{
"VariableWithSpecialChars": "{{job.parameters.`param$@`}}"
}Los parámetros del sistema son parámetros con plantilla cuyo valor proporciona el sistema como parte de las ejecuciones de flujo de trabajo y las ejecuciones de tareas posteriores. No tiene que proporcionar ningún valor, por defecto o de otro tipo, para estos parámetros con plantilla. AI Data Platform Workbench tiene una lista fija de parámetros con plantilla válidos/referencias de valores dinámicos que se admiten en el flujo de trabajo. Los parámetros del sistema se introducen rodeándolos con dos llaves. Por ejemplo, {{job.id}},
Tabla 12-1 Parámetros del Sistema Soportados
| parámetro | Descripción |
|---|---|
| Inicio | Identificador único asignado al hub |
| {{hub.region}} | La región del hub |
| {{workspace.id}} | Identificador único asignado al espacio de trabajo |
| {{workspace.url}} | URL del espacio de trabajo |
| {{job.id}} | Identificador único asignado al trabajo |
| {{job.name}} | Nombre del trabajo en el momento de la ejecución del trabajo |
| {{job.run_id}} | Identificador único asignado a la ejecución de trabajo |
| {{job.repair_count}} | Número de intentos de reparación en la ejecución del trabajo actual |
| {{job.start_time.[argumento]}} | Valor basado en la hora (en la zona horaria UTC) en la que se inició la ejecución del trabajo. El valor de retorno se basa en la opción de argumento. Consulte Opciones para ver los valores de fecha y hora. |
| {{job.parameters.[name]}} | El valor del parámetro de nivel de trabajo con la clave [name] |
| {{job.trigger.type}} | Tipo de disparador de la ejecución del trabajo. Los valores posibles son Manual y Programado. |
| {{job.trigger.file_arrival.location}} | Si se configura un disparador de llegada de archivo para este trabajo, el valor de la ubicación de almacenamiento |
| {{job.trigger.time.[argumento]}} | Valor basado en la hora (en la zona horaria UTC) en la que se disparó la ejecución del trabajo, redondeado al minuto más cercano para los trabajos con una programación cron. El valor de retorno se basa en la opción de argumento. Consulte Opciones para ver los valores de fecha y hora. |
| {{task.name}} | Nombre de la tarea actual |
| {{task.run_id}} | Identificador único de la ejecución de tarea actual |
| {{task.execution_count}} | Número de veces que se ha ejecutado la tarea actual (incluidos reintentos y reparaciones) |
| {{task.notebook_path}} | Ruta de acceso del bloc de notas de la tarea de bloc de notas actual |
| {{tasks.[nombre_tarea].id_ejecución}} | Identificador único asignado a la ejecución de tarea para [task_name] |
| {{tasks.[nombre_tarea].result_state}} | Estado de resultado de la tarea [task_name]. Los valores posibles son: éxito, fallo, exclusión, cancelación, omisión, timeout, upstream_canceled y upstream_failed. |
| {{tasks.[nombre_tarea].código_error}} | Código de error para la tarea [task_name] si se ha producido un error al ejecutar la tarea. Ejemplos de posibles valores son RunExecutionError, ResourceNotFound y UnauthorizedError. Para las tareas correctas, esto se evalúa como una cadena vacía. |
| {{tasks.[nombre_tarea].recuento_ejecución}} | Número de veces que se ha ejecutado la tarea [task_name] (incluidos reintentos y reparaciones) |
| {{tasks.[nombre_tarea]ruta_portátil}} | Ruta a Notebook para la tarea de Notebook [task_name] |
| {{tasks.[nombre_tarea].values.[nombre_valor]}} | El valor de tarea con la clave [nombre_valor] que ha definido la tarea [nombre_tarea] |
Tabla 12-2 Opciones de fecha y hora
| Argumento | Descripción |
|---|---|
| iso_día_semanal | Devuelve un dígito del 1 al 7, que representa el día de la semana en el registro de hora |
| es_día hábil | Devuelve true si el registro de hora es un día de la semana
|
| iso_fecha | Devuelve la fecha con formato ISO |
| iso_datetime | Devuelve la fecha y la hora en el formato ISO |
| año | Devuelve la porción de año del registro de hora |
| mes | Devuelve la porción de mes del registro de hora |
| día | Devuelve la parte del día del registro de hora |
| hora | Devuelve la porción de hora del registro de hora |
| minuto | Devuelve la porción de minutos del registro de hora |
| segundo | Devuelve la segunda parte del registro de hora |
| timestamp_ms | Devuelve el registro de hora en milisegundos |
Transferencia de parámetros entre tareas y bloc de notas
Puede transferir parámetros de una tarea a un bloc de notas y viceversa. Esto permite un comportamiento dinámico del flujo de trabajo, lo que permite a los blocs de notas ajustar su procesamiento en función de los valores de tiempo de ejecución.
El paquete oidlUtils.parameters proporciona la funcionalidad necesaria para manejar estas operaciones de parámetros. El paquete oidlUtils es una biblioteca de utilidades en AI Data Platform Workbench que simplifica tareas como la gestión de parámetros, la transferencia de valores de tareas y otras operaciones de flujo de trabajo. Se suele utilizar en blocs de notas y tareas para obtener y definir parámetros en las etapas del flujo de trabajo.
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")oidlUtils.parameters.setTaskValue(key="payload", value=json.dumps(payload), "defaultValue")Ejemplo de flujo de trabajo: transferencia de parámetros
En este escenario, tenemos dos blocs de notas en un flujo de trabajo. El Notebook 1 recibe parámetros de una tarea, los procesa y define los parámetros de salida que se transfieren al Notebook 2 en la siguiente tarea.
Notebook 1: Obtener y establecer parámetros# 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")El primer bloc de notas recupera un parámetro (param1) transferido de la tarea y, a continuación, define un nuevo parámetro (output_param_2), que se utilizará en la siguiente tarea.
Notebook 2: Lectura del parámetro de salidaoutput_param_2= "output_parameter"
param_value = oidlUtils.parameters.getTaskValue("GetSetParameter", output_param_2, "defaultValue")
print("Param {} value is {}".format(output_param_2, param_value))El segundo bloc de notas recibe output_param_2 del bloc de notas 1 a través de la tarea de flujo de trabajo y la procesa.
- Tarea 1: Cuaderno 1
- En la primera tarea, los parámetros se pueden transferir al Notebook 1 desde el trabajo o la tarea en sí.
- Notebook 1 procesa los parámetros como parámetros de entrada param1 y establece nuevos parámetros de salida (por ejemplo, output_param_2).
- Tarea 2: Cuaderno 2
- En la segunda tarea, Notebook 2 recibe el parámetro de salida de la tarea 1 al hacer referencia a él directamente en el código de Notebook, como se muestra anteriormente, transfiriendo el nombre de la primera tarea "GetSetParameter" como se define en el flujo de trabajo.
- El valor de output_param_2 se transfiere al Notebook 2, donde se puede utilizar para el procesamiento posterior.
Este enfoque facilita la transferencia dinámica de valores entre tareas y blocs de notas, lo que permite que los flujos de trabajo sean más flexibles y adaptables.
Adición de Parámetros a un Trabajo
Puede proporcionar a sus trabajos diferentes parámetros para realizar un seguimiento.
Suprimir parámetros de un trabajo
Actualice sus trabajos para eliminar los parámetros que ya no son necesarios.

