Compartilhar via


O que é uma referência de valor dinâmico?

As referências de valor dinâmico descrevem uma coleção de variáveis disponíveis ao configurar trabalhos e tarefas. Use referências de valor dinâmico para configurar instruções condicionais para tarefas ou para transmitir informações como parâmetros ou argumentos.

As referências de valor dinâmico incluem informações como:

  • Valores configurados para o trabalho, incluindo o nome do trabalho, os nomes das tarefas e o tipo de gatilho.
  • Metadados gerados sobre o trabalho, incluindo a ID do trabalho, a ID de execução e a hora de início da execução do trabalho.
  • Informações sobre quantas tentativas de reparo um trabalho fez ou repetições de tentativas de uma tarefa foram executadas.
  • O estado do resultado de uma tarefa especificada.
  • Valores configurados usando parâmetros de trabalho, parâmetros de tarefa ou definidos usando valores de tarefa.

Usar referências de valor dinâmico

Use referências de valor dinâmico ao configurar trabalhos ou tarefas. Não é possível fazer referência direta a referências de valor dinâmico diretamente de ativos configurados usando tarefas como notebooks, consultas ou JARs. As referências de valor dinâmico devem ser definidas usando parâmetros ou campos que transmitem contexto para tarefas.

As referências de valor dinâmico usam chaves duplas ({{ }}). Quando um trabalho ou tarefa é executado, um literal de cadeia de caracteres substitui a referência de valor dinâmico. Por exemplo, se você configurar o seguinte par de chave-valor como um parâmetro de tarefa:

{"job_run_id": "job_{{job.run_id}}"}

Se a ID de execução for 550315892394120, o valor de job_run_id será avaliado como job_550315892394120.

Observação

O conteúdo entre as chaves duplas não é avaliado como expressões. Você não pode executar operações nem funções dentro de chaves duplas.

Os identificadores de valor fornecidos pelo usuário dão suporte a caracteres alfanuméricos e sublinhados. Teclas de escape com caracteres especiais envolvendo o identificador com acentos graves (` `).

Erros de sintaxe, incluindo valores de referência dinâmica inexistentes e chaves ausentes, são ignorados silenciosamente e são tratados como cadeias de caracteres literais. Uma mensagem de erro será exibida se você fornecer uma referência inválida pertencente a um namespace conhecido, por exemplo, {{job.notebook_url}}.

Usar referências de valor dinâmico na interface do usuário de trabalhos

Os campos que aceitam referências de valor dinâmico fornecem um atalho para inserir referências de valor dinâmico disponíveis. Clique em { } para ver essa lista e inseri-la no campo fornecido.

Observação

A interface do usuário não preenche automaticamente as chaves para fazer referência a valores de tarefa.

Muitos campos que aceitam referências de valor dinâmico exigem formatação adicional para usá-los corretamente. Confira Configurar os parâmetros de tarefa.

Usar referências de valor dinâmico em um JSON de trabalho

Use a sintaxe {{ }} para usar valores dinâmicos em definições JSON de trabalho usadas pela CLI do Databricks e pela API REST.

Os parâmetros de trabalho e tarefa têm sintaxe diferentes, e a sintaxe do parâmetro de tarefa varia de acordo com o tipo de tarefa.

O exemplo a seguir mostra a sintaxe JSON parcial para configurar parâmetros de trabalho usando referências de valor dinâmico:

{
  "parameters": [
    {
      "name": "my_job_id",
      "default": "{{job.id}}"
    },
    {
      "name": "run_date",
      "default": "{{job.start_time.iso_date}}"
    }
  ]
}

O exemplo a seguir mostra a sintaxe JSON parcial para configurar parâmetros de tarefa de notebook usando uma referência de valor dinâmico:

{
  "notebook_task": {
    "base_parameters": {
      "workspace_id": "workspace_{{workspace.id}}",
      "file_arrival_location": "{{job.trigger.file_arrival.location}}"
    }
  }
}

Revisar parâmetros para uma execução de trabalho

Após a conclusão de uma tarefa, você poderá ver os valores resolvidos do parâmetro em Parâmetros na página detalhes da execução. Confira Exibir detalhes da execução do trabalho.

Referências de valores com suporte

Há suporte para as seguintes referências de valores dinâmicos:

Referência Descrição
{{job.id}} O identificador exclusivo atribuído ao trabalho.
{{job.name}} O nome do trabalho no momento da execução do trabalho.
{{job.run_id}} O identificador exclusivo atribuído à execução do trabalho.
{{job.repair_count}} O número de tentativas de reparo na execução do trabalho atual.
{{job.start_time.<argument>}} Um valor baseado na hora (no fuso horário UTC) em que a execução do trabalho foi iniciada. O valor de retorno é baseado na opção argument. Confira Opções para obter valores de data e hora.
{{job.parameters.<name>}} O valor do parâmetro de nível de trabalho com a chave <name>.
{{job.trigger.type}} O tipo de gatilho da execução do trabalho. Os valores possíveis são periodic, one_time, run_job_task, file_arrival, continuous e table.
{{job.trigger.file_arrival.location}} Se um gatilho de chegada de arquivo estiver configurado para esse trabalho, o valor do local de armazenamento.
{{job.trigger.time.<argument>}} Um valor baseado na hora (no fuso horário UTC) em que a execução do trabalho foi disparada, arredondado para o minuto mais próximo para trabalhos com um agendamento cron. O valor de retorno é baseado na opção argument. Confira Opções para obter valores de data e hora.
{{task.name}} O nome da tarefa atual.
{{task.run_id}} O identificador exclusivo da execução da tarefa atual.
{{task.execution_count}} O número de vezes que a tarefa atual foi executada (incluindo novas tentativas e reparos).
{{task.notebook_path}} O caminho do notebook da tarefa atual do notebook.
{{tasks.<task_name>.run_id}} O identificador exclusivo atribuído à execução da tarefa para <task_name>.
{{tasks.<task_name>.result_state}} O estado de resultado da tarefa <task_name>. Os valores possíveis são success, failed, excluded, canceled, evicted, timedout, upstream_canceled, upstream_evicted 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 sequência vazia.
{{tasks.<task_name>.execution_count}} O número de vezes que a tarefa <task_name> foi executada (incluindo novas tentativas e reparos).
{{tasks.<task_name>.notebook_path}} O caminho para o notebook da tarefa do 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>.
{{workspace.id}} O identificador exclusivo atribuído ao espaço de trabalho.
{{workspace.url}} A URL do espaço de trabalho.

Você pode definir essas referências com qualquer tarefa. Confira Configurar os parâmetros de tarefa.

Você também pode passar parâmetros entre tarefas em um trabalho com valores de tarefa. Confira Usar valores de tarefa para passar informações entre tarefas.

Opções para valores de data e hora

Use os seguintes argumentos para especificar o valor de retorno das variáveis de parâmetro baseadas em tempo. Todos os valores retornados são baseados em um carimbo de data/hora no fuso horário UTC.

Argument Descrição
iso_weekday Retorna um dígito de 1 a 7, representando o dia da semana do carimbo de data/hora.
is_weekday Retorna true se o carimbo de data/hora estiver em um dia da semana.
iso_date Retorna a data no formato ISO.
iso_datetime Retorna a data e a hora no formato ISO.
year Retorna a parte do ano do carimbo de data/hora.
month Retorna a parte do mês do carimbo de data/hora.
day Retorna a parte do dia do carimbo de data/hora.
hour Retorna a parte da hora do carimbo de data/hora.
minute Retorna a parte dos minutos do carimbo de data/hora.
second Retorna a segunda parte do carimbo de data/hora.
timestamp_ms Retorna o carimbo de data/hora em milissegundos.

Referências de valor dinâmico preteridas

As seguintes referências de valores dinâmicos estão preteridas: A referência de substituição recomendada está incluída na descrição de cada variável.

Variável Descrição
{{job_id}} O identificador exclusivo atribuído a um trabalho. Use o job.id em vez disso.
{{run_id}} O identificador exclusivo atribuído a uma execução de tarefa. Use o task.run_id em vez disso.
{{start_date}} A data em que uma execução de tarefa é iniciada. O formato é aaaa-MM-dd no fuso horário UTC. Use o job.start_time.<argument> em vez disso.
{{start_time}} O carimbo de data/hora do início da execução após o cluster ter sido criado e estar pronto. O formato é em milissegundos desde a época UNIX no fuso horário UTC, conforme retornado por System.currentTimeMillis(). Use o job.start_time.<format> em vez disso.
{{task_retry_count}} O número de repetições que foram tentadas para executar uma tarefa se a primeira tentativa falhar. O valor é 0 para a primeira tentativa e é incrementado a cada nova tentativa. Use o task.execution_count em vez disso.
{{parent_run_id}} O identificador exclusivo atribuído à execução de um trabalho com várias tarefas. Use o job.run_id em vez disso.
{{task_key}} O nome exclusivo atribuído a uma tarefa que é parte de um trabalho com várias tarefas. Use o task.name em vez disso.