Parametrização
Esta seção aborda parâmetros e como eles são usados em jobs e tarefas.
Sobre Parâmetros
Você pode personalizar execuções de job especificando parâmetros que alteram o comportamento do job, da tarefa ou do processamento de job.
Os parâmetros podem ser fornecidos em três níveis diferentes de um workflow: nível de job, nível de tarefa e nível de execução de job. Os parâmetros têm a seguinte precedência no caso de conflitos: Execução do Job > Tarefa > Tarefa.
- Parâmetros de Nível de Execução do Job: Os parâmetros de nível de execução do job especificados no payload de execução do job têm precedência sobre os parâmetros de nível de tarefa definidos na configuração do job. Isso significa que qualquer parâmetro especificado durante a execução do job substitui os padrões específicos da tarefa.
- Parâmetros de Nível de Tarefa: Se os parâmetros de execução de job para uma tarefa específica não forem fornecidos, a tarefa usará os parâmetros definidos no nível da tarefa na configuração do job. Os parâmetros no nível do job com o mesmo nome substituem os parâmetros no nível da tarefa para essa tarefa específica. Então, se você quiser um parâmetro específico da tarefa, você deve nomeá-lo de forma diferente do parâmetro do job.
- Parâmetros do Nível do Cargo: Se nem parâmetros de tempo de execução nem no nível da tarefa forem fornecidos, os valores padrão definidos no nível do job serão aplicados. Os parâmetros no nível do cargo são considerados padrões que podem ser usados se nenhum parâmetro mais específico estiver disponível.
Observação:
Os parâmetros do job são imutáveis em contextos de tarefa. Isso significa que se houver um job com o parâmetro JobParamA com o valor resolvido JobParamRuntimeValueA, a execução de TaskA não poderá alterar o valor de JobParamA. O valor de JobParamA permanece JobParamRuntimeValueA para todas as tarefas e para toda a execução do job. Como resultado, se você quisesse compartilhar informações entre tarefas, poderia usar parâmetros intermediários de armazenamento ou saída para conseguir isso.Quando nomes de tarefas, chaves de valores de tarefas ou nomes de parâmetros de tarefas contêm caracteres especiais (como !@$%), você deve cercar esses identificadores com backticks (` `). Somente caracteres alfanuméricos e sublinhados podem ser usados sem cercar o identificador em backticks.
Por exemplo:
{
"VariableWithSpecialChars": "{{job.parameters.`param$@`}}"
}Os Parâmetros do Sistema são parâmetros modelados cujo valor é fornecido pelo sistema como parte das execuções de workflow e das execuções de tarefas subsequentes. Não é necessário fornecer nenhum valor, padrão ou não, para esses parâmetros modelados. O AI Data Platform Workbench tem uma lista fixa de parâmetros modelo/referências de valores dinâmicos válidos que são suportados no workflow. Os parâmetros do sistema são inseridos circundando-os com duas chaves. Por exemplo, {{job.id}},
Tabela 12-1 Parâmetros do Sistema Suportados
| Parâmetro | Descrição |
|---|---|
| O nas | O identificador exclusivo atribuído ao hub |
| Português do Brasil | A região do hub |
| {{workspace.id}} | O identificador exclusivo atribuído ao espaço de trabalho |
| Português do Brasil | O URL do espaço de trabalho |
| São Paulo | O identificador exclusivo atribuído ao cargo |
| São Paulo | O nome do job no momento da execução do job |
| Português (Brasil) | O identificador exclusivo atribuído à execução do job |
| Português (Brasil) | O número de tentativas de reparo na execução do job atual |
| {{job.start_time}. | Um valor com base na hora (no fuso horário UTC) que a execução do job foi iniciada. O valor de retorno baseia-se na opção de argumento. Consulte Opções para obter valores de data e hora. |
| {{job.parameters.[nome]}} | O valor do parâmetro de nível de cargo com a chave [nome] |
| Português (Brasil) | O tipo de acionador da execução do job. Os valores possíveis são Manual e Programado. |
| Português (Brasil) | Se um acionador de chegada de arquivo for configurado para este job, o valor do local de armazenamento |
| Português (Brasil) | Um valor baseado no horário (no fuso horário UTC) em que a execução do job foi acionada, arredondado para o minuto mais próximo para jobs com uma programação cron. O valor de retorno baseia-se na opção de argumento. Consulte Opções para valores de data e hora. |
| {{task.name}} | O nome da tarefa atual |
| Português (Brasil) | O identificador exclusivo da execução da tarefa atual |
| Português do Brasil | O número de vezes que a tarefa atual foi executada (incluindo repetições e reparos) |
| Português do Brasil | O caminho do notebook da tarefa de notebook atual |
| {{tasks.[task_name].run_id}} | O identificador exclusivo atribuído à execução da tarefa para [task_name] |
| {{tasks.[task_name].result_state}} | O estado do resultado da tarefa [task_name]. Os valores possíveis são êxito, falha, exclusão, cancelamento, ignorado, timeout, upstream_canceled e upstream_failed. |
| {{tasks.[task_name].error_code}} | O código de erro da tarefa [task_name] se ocorreu um erro ao executar a tarefa. Exemplos de valores possíveis são RunExecutionError, ResourceNotFound e UnauthorizedError. Para tarefas bem-sucedidas, isso é avaliado como uma string vazia. |
| {{tasks.[task_name].execution_count}} | O número de vezes que a tarefa [task_name] foi executada (incluindo repetições e reparos) |
| {{tasks.[task_name].notebook_path}} | O caminho para o notebook da tarefa de notebook [task_name] |
| {{tasks.[task_name].values.[value_name]}} | O valor da tarefa com a chave [value_name] que foi definida pela tarefa [task_name] |
Tabela 12-2 Opções para Data e Hora
| Argumento | Descrição |
|---|---|
| dia da semana | Retorna um dígito de 1 a 7, representando o dia da semana no timestamp |
| is_weekday | Retorna true se o timestamp estiver em um dia da semana
|
| iso_data | Retorna a data no formato ISO |
| iso_datetime | Retorna a data e a hora no formato ISO |
| ano | Retorna a parte do ano do timestamp |
| mês | Retorna a parte do mês do timestamp |
| dia | Retorna o período do dia do timestamp |
| hora | Retorna a parte da hora do timestamp |
| minuto | Retorna a parte do minuto do timestamp |
| segundo | Retorna a segunda parte do timestamp |
| timestamp_ms | Retorna o marcador de data/hora em milissegundos |
Parâmetros de Aprovação entre Tarefas e Notebook
Você pode passar parâmetros de uma tarefa para um notebook e vice-versa. Isso permite o comportamento dinâmico do workflow, permitindo que os notebooks ajustem seu processamento com base nos valores de runtime.
O pacote oidlUtils.parameters fornece a funcionalidade necessária para tratar essas operações de parâmetro. O pacote oidlUtils é uma biblioteca de utilitários no AI Data Platform Workbench que simplifica tarefas como gerenciamento de parâmetros, aprovação de valores de tarefas e outras operações de workflow. É comumente usado em notebooks e tarefas para obter e definir parâmetros nos estágios do fluxo de trabalho.
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")oidlUtils.parameters.setTaskValue(key="payload", value=json.dumps(payload), "defaultValue")Exemplo de Workflow: Aprovando Parâmetros
Neste cenário, temos dois notebooks em um fluxo de trabalho. O Notebook 1 recebe parâmetros de uma tarefa, processa-os e define parâmetros de saída que são passados para o Notebook 2 na próxima tarefa.
Notebook 1: Obter e Definir 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")O primeiro notebook recupera um parâmetro (param1) passado da tarefa e, em seguida, define um novo parâmetro (output_param_2), que será usado na próxima tarefa.
Notebook 2: Ler o Parâmetro de Saídaoutput_param_2= "output_parameter"
param_value = oidlUtils.parameters.getTaskValue("GetSetParameter", output_param_2, "defaultValue")
print("Param {} value is {}".format(output_param_2, param_value))O segundo notebook recebe o output_param_2 do Notebook 1 por meio da tarefa de workflow e o processa.
- Tarefa 1: Notebook 1
- Na primeira tarefa, os parâmetros podem ser passados para o Notebook 1 do job ou da própria tarefa.
- O Notebook 1 processa os parâmetros como parâmetros de entrada param1 e define novos parâmetros de saída (por exemplo, output_param_2).
- Tarefa 2: Notebook 2
- Na segunda tarefa, o Notebook 2 recebe o parâmetro de saída da Tarefa 1 fazendo referência a ele diretamente no código de notebook, conforme mostrado acima, informando o nome da primeira tarefa "GetSetParameter" conforme definido no workflow.
- O valor output_param_2 é passado para o Notebook 2, onde pode ser usado para processamento posterior.
Essa abordagem facilita a transmissão dinâmica de valores entre tarefas e notebooks, permitindo que seus fluxos de trabalho sejam mais flexíveis e adaptáveis.
Adicionar Parâmetros a um Job
Você pode fornecer aos seus trabalhos diferentes parâmetros para rastrear.
Excluir Parâmetros de um Job
Você atualiza seus jobs para remover parâmetros que não são mais necessários.

