Что такое ссылка на динамическое значение?
Ссылки на динамические значения описывают коллекцию переменных, доступных при настройке заданий и задач. Используйте динамические ссылки на значения для настройки условных инструкций для задач или передачи сведений в качестве параметров или аргументов.
Ссылки на динамические значения включают такие сведения, как:
- Настроенные значения для задания, включая имя задания, имена задач и тип триггера.
- Созданные метаданные о задании, включая идентификатор задания, идентификатор выполнения и время запуска задания.
- Сведения о том, сколько попыток восстановления выполнено или повторите задачу.
- Состояние результата для указанной задачи.
- Значения, настроенные с помощью параметров задания, параметров задачи или задания с помощью значений задач.
Использование динамических ссылок на значения
Используйте динамические ссылки на значения при настройке заданий или задач. Вы не можете напрямую ссылаться на ссылки на динамические значения из ресурсов, настроенных с помощью таких задач, как записные книжки, запросы или JAR. Динамические ссылки на значения должны быть определены с помощью параметров или полей, которые передают контекст в задачи.
Ссылки на динамические значения используют двойные фигурные скобки ({{ }}
). При выполнении задания или задачи строковый литерал заменяет ссылку на динамическое значение. Например, если настроить следующую пару "ключ-значение" в качестве параметра задачи:
{"job_run_id": "job_{{job.run_id}}"}
Если идентификатор выполнения имеет значение 550315892394120
, значение для job_run_id
которого вычисляется job_550315892394120
.
Примечание.
Содержимое двойных фигурных скобок не оценивается как выражения. Нельзя выполнять операции или функции в двойных фигурных скобках.
Идентификаторы значений, предоставленные пользователем, поддерживают буквенно-цифровые и символы подчеркивания. Экранные ключи, содержащие специальные символы, окружающие идентификатор с обратными знаками (` `
).
Синтаксические ошибки, включая несуществующие динамические ссылочные значения и отсутствующие фигурные скобки, игнорируются и обрабатываются как литеральные строки. Сообщение об ошибке отображается, если вы предоставляете недопустимую ссылку, относящуюся к известному пространству имен, например {{job.notebook_url}}
.
Использование динамических ссылок на значения в пользовательском интерфейсе заданий
Поля, принимаюющие ссылки на динамические значения, предоставляют ярлык для вставки доступных динамических ссылок. Щелкните { } , чтобы просмотреть этот список и вставить его в предоставленное поле.
Примечание.
Пользовательский интерфейс не выполняет автоматическое завершение ключей для ссылки на значения задач.
Для правильного использования многих полей, которые принимают ссылки на динамические значения, требуется дополнительное форматирование. См. раздел "Настройка параметров задачи".
Использование динамических ссылок на значения в JSON задания
Используйте {{ }}
синтаксис для использования динамических значений в определениях JSON задания, используемых интерфейсом командной строки Databricks и REST API.
Параметры задания и задачи имеют другой синтаксис, а синтаксис параметра задачи зависит от типа задачи.
В следующем примере показан частичный синтаксис JSON для настройки параметров задания с помощью динамических ссылок на значения:
{
"parameters": [
{
"name": "my_job_id",
"default": "{{job.id}}"
},
{
"name": "run_date",
"default": "{{job.start_time.iso_date}}"
}
]
}
В следующем примере показан частичный синтаксис JSON для настройки параметров задачи записной книжки с помощью ссылки на динамическое значение:
{
"notebook_task": {
"base_parameters": {
"workspace_id": "workspace_{{workspace.id}}",
"file_arrival_location": "{{job.trigger.file_arrival.location}}"
}
}
}
Проверка параметров выполнения задания
После завершения задачи можно просмотреть разрешенные значения параметров в разделе "Параметры " на странице сведений о выполнении. С. статью Просмотр сведений о выполнении задания.
Поддерживаемые ссылки на значения
Поддерживаются следующие ссылки на динамические значения:
Справочные материалы | Description |
---|---|
{{job.id}} |
Уникальный идентификатор, назначенный заданию. |
{{job.name}} |
Имя задания во время выполнения задания. |
{{job.run_id}} |
Уникальный идентификатор, назначенный выполнению задания. |
{{job.repair_count}} |
Количество попыток восстановления в текущем выполнении задания. |
{{job.start_time.<argument>}} |
Значение на основе времени (в часовом поясе UTC), запущенного заданием. Возвращаемое значение основано на параметре argument . См. раздел "Параметры" для значений даты и времени. |
{{job.parameters.<name>}} |
Значение параметра уровня задания с ключом <name> . |
{{job.trigger.type}} |
Тип триггера выполнения задания. Возможные значения: periodic , one_time , run_job_task , file_arrival и continuous table . |
{{job.trigger.file_arrival.location}} |
Если триггер прибытия файла настроен для этого задания, значение расположения хранилища. |
{{job.trigger.time.<argument>}} |
Значение на основе времени (в часовом поясе UTC), которое было активировано заданием, округляется до ближайшей минуты для заданий с расписанием cron. Возвращаемое значение основано на параметре argument . См. раздел "Параметры" для значений даты и времени. |
{{task.name}} |
Имя текущей задачи. |
{{task.run_id}} |
Уникальный идентификатор текущего выполнения задачи. |
{{task.execution_count}} |
Количество запусков текущей задачи (включая повторные попытки и восстановление). |
{{task.notebook_path}} |
Путь к записной книжке текущей задачи записной книжки. |
{{tasks.<task_name>.run_id}} |
Уникальный идентификатор, назначенный выполнению задачи.<task_name> |
{{tasks.<task_name>.result_state}} |
Состояние результата задачи <task_name> . Возможные значения: success , failed , excluded , canceled , evicted , timedout , upstream_canceled , upstream_evicted и upstream_failed . |
{{tasks.<task_name>.error_code}} |
Код ошибки для задачи <task_name> , если произошла ошибка, выполняющая задачу. Примерами возможных значений являются RunExecutionError , ResourceNotFound и UnauthorizedError . Для успешных задач это вычисляется как пустая строка. |
{{tasks.<task_name>.execution_count}} |
Количество запусков задачи <task_name> (включая повторные попытки и восстановление). |
{{tasks.<task_name>.notebook_path}} |
Путь к записной книжке для задачи <task_name> записной книжки. |
{{tasks.<task_name>.values.<value_name>}} |
Значение задачи с ключом <value_name> , заданным задачей <task_name> . |
{{workspace.id}} |
Уникальный идентификатор, назначенный рабочей области. |
{{workspace.url}} |
URL-адрес рабочей области. |
Эти ссылки можно задать с любой задачей. См. раздел "Настройка параметров задачи".
Можно также передавать параметры между задачами в задании со значениями задач. См. раздел "Использование значений задач для передачи сведений между задачами".
Параметры значений даты и времени
Используйте следующие аргументы, чтобы указать возвращаемое значение из переменных параметров на основе времени. Все возвращаемые значения основаны на метке времени в часовом поясе UTC.
Аргумент | Description |
---|---|
iso_weekday |
Возвращает цифру от 1 до 7, представляющую день недели метки времени. |
is_weekday |
Возвращает, если метка true времени находится на буднем дне. |
iso_date |
Возвращает дату в формате ISO. |
iso_datetime |
Возвращает дату и время в формате ISO. |
year |
Возвращает часть года метки времени. |
month |
Возвращает часть месяца метки времени. |
day |
Возвращает дневную часть метки времени. |
hour |
Возвращает часовую часть метки времени. |
minute |
Возвращает минутную часть метки времени. |
second |
Возвращает вторую часть метки времени. |
timestamp_ms |
Возвращает метку времени в миллисекундах. |
Нерекомендуемые ссылки на динамические значения
Следующие ссылки на динамические значения устарели. Рекомендуемая ссылка на замену включена в описание каждой переменной.
«Переменная» | Description |
---|---|
{{job_id}} |
Уникальный идентификатор, назначенный заданию. Вместо этого используйте job.id . |
{{run_id}} |
Уникальный идентификатор, назначенный выполнению задачи. Вместо этого используйте task.run_id . |
{{start_date}} |
Дата начала выполнения задачи Формат yyyy-MM-dd в часовом поясе UTC. Вместо этого используйте job.start_time.<argument> . |
{{start_time}} |
Метка времени начала выполнения после того, как кластер будет создан и готов. Формат является миллисекундами, так как эпоха UNIX в часовом System.currentTimeMillis() поясе UTC, как возвращается. Вместо этого используйте job.start_time.<format> . |
{{task_retry_count}} |
Число повторных попыток выполнения задачи в случае сбоя первой попытки. Значение равно 0 для первой попытки и увеличивается с каждой повторной попыткой Вместо этого используйте task.execution_count . |
{{parent_run_id}} |
Уникальный идентификатор, назначенный выполнению задания с несколькими задачами Вместо этого используйте job.run_id . |
{{task_key}} |
Уникальное имя, назначенное задаче, которая входит в задание с несколькими задачами Вместо этого используйте task.name . |