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.

  1. 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.
  2. 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.
  3. 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.

Los valores de clave de tarea son cadenas o JSON. Por ejemplo, para utilizar una cadena como valor de clave de tarea, la llamada de parámetro tendría el siguiente aspecto:
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")
Para utilizar un JSON como valor de clave de tarea, la llamada de parámetro tendría el siguiente aspecto:
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 salida
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))

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.

  1. 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).
  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.

  1. En la página inicial, haga clic en Flujo de trabajo.
  2. Haga clic en el trabajo al que desea agregar parámetros y haga clic en el separador Detalles.
  3. En Parámetros de trabajo, proporcione la clave y el valor para realizar un seguimiento. Para agregar varios parámetros, haga clic en Icono Nuevo permiso Agregar parámetro.
    los cambios que ha realizado se guardan automáticamente.

Suprimir parámetros de un trabajo

Actualice sus trabajos para eliminar los parámetros que ya no son necesarios.

  1. En la página de inicio, haga clic en Flujo de trabajo.
  2. Haga clic en el trabajo del que desea eliminar parámetros y haga clic en el separador Detalles.
  3. En Parámetros de trabajo, haga clic en Icono de supresiónSuprimir junto al parámetro que desea eliminar.
    los cambios que ha realizado se guardan automáticamente.

Adición de parámetros a una tarea

Puede agregar parámetros a las tareas para modificar su comportamiento.

  1. En la página inicial, haga clic en Flujo de trabajo.
  2. Haga clic en el trabajo que contiene las tareas a las que desea agregar parámetros y haga clic en el separador Tareas.
  3. Haga clic en la tarea a la que desea agregar parámetros.
  4. En Parámetros, introduzca la clave y el valor del parámetro. Para agregar varios parámetros, haga clic en Icono Agregar parámetro Agregar parámetro.
    los cambios que ha realizado se guardan automáticamente.

Suprimir parámetros de una tarea

Puede eliminar los parámetros que no necesita de sus tareas.

  1. En la página inicial, haga clic en Flujo de trabajo.
  2. Haga clic en el trabajo que contiene las tareas de las que desea suprimir parámetros y haga clic en el separador Tareas.
  3. Haga clic en la tarea de la que desea suprimir parámetros.
  4. Haga clic en Icono de supresión Suprimir junto a cada parámetro que desea eliminar.
    los cambios que ha realizado se guardan automáticamente.

Ejecutar un trabajo con diferentes valores de parámetros

Puede optar por ejecutar un trabajo inmediatamente con valores de parámetros modificados.

  1. En la página inicial, haga clic en Flujo de trabajo.
  2. Haga clic en el trabajo que desea ejecutar.
  3. Haga clic en la flecha abajo junto a Run Now. Haga clic en Ejecutar ahora con diferentes parámetros.

    Botón Ejecutar ahora ampliado para mostrar Ejecutar ahora con la opción de diferentes parámetros resaltada

  4. Introduzca nuevos valores. Estos valores de parámetros solo se aplican a esta ejecución de trabajo.

    Ejecutar ahora con petición de datos de valores de parámetros diferentes

  5. Haga clic en Ejecutar.