Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как приступить к работе с средствами разработчика для автоматизации создания заданий и управления ими. В ней представлены интерфейс командной строки Databricks, пакеты SDK Databricks и REST API.
Заметка
В этой статье приведены примеры создания заданий и управления ими с помощью интерфейса командной строки Databricks, пакета SDK для Python Databricks и REST API в качестве простого введение в эти средства. Для программного управления заданиями в рамках CI/CD используют декларативные пакеты автоматизации или поставщик Databricks Terraform.
Средства сравнения
В следующей таблице сравниваются интерфейс командной строки Databricks, пакеты SDK Databricks и REST API для программного создания заданий и управления ими. Для получения сведений обо всех доступных средствах разработчика см. Местные средства разработки.
| Инструмент | Описание |
|---|---|
| Интерфейс командной строки Databricks | Доступ к функциям Databricks с помощью интерфейса командной строки Databricks, который упаковывает REST API. Используйте интерфейс командной строки для разовых задач, таких как экспериментирование, оболочечные скрипты и вызов REST API напрямую |
| пакеты SDK Databricks | Разработка приложений и создание пользовательских рабочих процессов Databricks с помощью пакета SDK Databricks, доступного для Python, Java, Go или R. Вместо отправки вызовов REST API непосредственно с помощью curl или Postman можно использовать пакет SDK для взаимодействия с Databricks. |
| Databricks REST API | Если ни один из описанных выше параметров не подходит для конкретного варианта использования, можно напрямую использовать REST API Databricks. Используйте REST API непосредственно для вариантов использования, таких как автоматизация процессов, в которых пакет SDK на предпочитаемом языке программирования в настоящее время недоступен. |
Начало работы с интерфейсом командной строки Databricks
Чтобы установить и настроить аутентификацию для интерфейса командной строки Databricks, см. Установка или обновление интерфейса командной строки Databricks и Аутентификация для интерфейса командной строки Databricks.
Интерфейс командной строки Databricks содержит группы команд для функций Databricks, включая один для заданий, содержащий набор связанных команд, которые также могут содержать вложенные команды. Группа команд jobs позволяет управлять заданиями и выполнением заданий с такими действиями, как create, delete и get. Поскольку интерфейс командной строки оборачивает REST API Databricks, большинство команд CLI соответствуют запросу REST API. Например, databricks jobs get сопоставляется с GET/api/2.2/jobs/get.
Чтобы вывести более подробные сведения об использовании и синтаксисе для группы команд заданий, отдельной команды или подкоманда, используйте флаг h:
databricks jobs -hdatabricks jobs <command-name> -hdatabricks jobs <command-name> <subcommand-name> -h
Пример. Получение задания с помощью интерфейса командной строки
Чтобы распечатать сведения о отдельном задании в рабочей области, выполните следующую команду:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
Эта команда возвращает JSON:
{
"created_time": 1730983530082,
"creator_user_name": "someone@example.com",
"job_id": 478701692316314,
"run_as_user_name": "someone@example.com",
"settings": {
"email_notifications": {
"no_alert_for_skipped_runs": false
},
"format": "MULTI_TASK",
"max_concurrent_runs": 1,
"name": "job_name",
"tasks": [
{
"email_notifications": {},
"notebook_task": {
"notebook_path": "/Workspace/Users/someone@example.com/directory",
"source": "WORKSPACE"
},
"run_if": "ALL_SUCCESS",
"task_key": "success",
"timeout_seconds": 0,
"webhook_notifications": {}
},
{
"depends_on": [
{
"task_key": "success"
}
],
"disable_auto_optimization": true,
"email_notifications": {},
"max_retries": 3,
"min_retry_interval_millis": 300000,
"notebook_task": {
"notebook_path": "/Workspace/Users/someone@example.com/directory",
"source": "WORKSPACE"
},
"retry_on_timeout": false,
"run_if": "ALL_SUCCESS",
"task_key": "fail",
"timeout_seconds": 0,
"webhook_notifications": {}
}
],
"timeout_seconds": 0,
"webhook_notifications": {}
}
}
Пример. Создание задания с помощью интерфейса командной строки
В следующем примере для создания задания используется интерфейс командной строки Databricks. Это задание содержит одну задачу, которая запускает указанный ноутбук. Эта записная книжка зависит от определенной версии пакета pyPI wheel. Для выполнения этой задачи задание временно создает кластер, который экспортирует переменную среды с именем PYSPARK_PYTHON. После выполнения задания кластер завершается.
Скопируйте и вставьте следующий код JSON в файл. Вы можете получить доступ к формату JSON любого существующего задания, выбрав параметр Просмотреть json в пользовательском интерфейсе страницы задания.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }Выполните следующую команду, заменив
<file-path>путем и именем только что созданного файла.databricks jobs create --json @<file-path>
Выполнение задания с помощью интерфейса командной строки
При использовании командной строки существует три способа выполнения задания yoaur.
Запланировано. Если определение задания (в ФОРМАТЕ JSON) содержит расписание, например в следующем примере, задание будет автоматически выполняться в расписании.
"schedule": { "quartz_cron_expression": "46 0 9 * * ?", "timezone_id": "America/Los_Angeles", "pause_status": "UNPAUSED" }, "max_concurrent_runs": 1,Триггер с
run-now. Командаdatabricks jobs run-nowCLI активирует запуск для уже созданного задания.Триггер с
submit. Командаdatabricks jobs submitCLI принимает определение задания и запускает задание.При
submitэтом задание не сохраняется и не отображается в пользовательском интерфейсе. Он запускается один раз, и когда он будет выполнен, он больше не существует как задание.Так как они не сохраняются, отправленные задания не могут быть автоматически оптимизированы для бессерверных вычислений в случае сбоя. Если задание завершается ошибкой, может потребоваться использовать классические вычисления, чтобы указать потребности вычислений для задания. Или используйте
jobs createиjobs run-now, чтобы создать и запустить задание.
Начало работы с пакетом SDK Databricks
Databricks предоставляет пакеты SDK, которые позволяют автоматизировать операции с помощью популярных языков программирования, таких как Python, Java и Go. В этом разделе показано, как приступить к работе с пакетом SDK для Python для создания заданий и управления ими в Databricks.
Пакет SDK Databricks можно использовать из ноутбука Databricks или на локальной машине разработки. Если вы используете локальный компьютер для разработки, убедитесь, что вы завершили этап подготовки к работе с SDK Databricks для Python.
Заметка
Если вы разрабатываете из записной книжки Databricks и используете кластер с Databricks Runtime 12.2 LTS и ниже, сначала необходимо установить Databricks SDK для Python. См. раздел по установке или обновлению Databricks SDK для Python.
Пример. Создание задания с помощью пакета SDK для Python
В следующем примере кода записной книжки создается задание, которое запускает существующую записную книжку. Он извлекает путь к существующей записной книжке и связанные с ней параметры задания с подсказками.
Сначала убедитесь, что установлена правильная версия пакета SDK:
%pip install --upgrade databricks-sdk==0.74.0
%restart_python
Затем, чтобы создать задание с задачей для блокнота, выполните следующее, ответив на вопросы:
from databricks.sdk.service.jobs import JobSettings as Job
from databricks.sdk import WorkspaceClient
job_name = input("Provide a short name for the job, for example, my-job: ")
notebook_path = input("Provide the workspace path of the notebook to run, for example, /Users/someone@example.com/my-notebook: ")
task_key = input("Provide a unique key to apply to the job's tasks, for example, my-key: ")
test_sdk = Job.from_dict(
{
"name": job_name ,
"tasks": [
{
"task_key": task_key,
"notebook_task": {
"notebook_path": notebook_path,
"source": "WORKSPACE",
},
},
],
}
)
w = WorkspaceClient()
j = w.jobs.create(**test_sdk.as_shallow_dict())
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Выполнение задания с помощью пакета SDK для Python
При использовании API можно запустить задание тремя способами.
Запланировано. Если определение задания (в ФОРМАТЕ JSON) содержит расписание, например в следующем примере, задание будет автоматически выполняться в расписании.
"schedule": { "quartz_cron_expression": "46 0 9 * * ?", "timezone_id": "America/Los_Angeles", "pause_status": "UNPAUSED" }, "max_concurrent_runs": 1,Триггер с
run-now.jobs.run_nowAPI запускает выполнение уже созданного задания.Триггер с
submit.jobs.runs.submitAPI принимает определение задания и запускает выполнение задания.При
submitэтом задание не сохраняется и не отображается в пользовательском интерфейсе. Он запускается один раз, и когда он будет выполнен, он больше не существует как задание.Так как они не сохраняются, отправленные задания не могут быть автоматически оптимизированы для бессерверных вычислений в случае сбоя. Если задание завершается ошибкой, может потребоваться использовать классические вычисления, чтобы указать потребности вычислений для задания. Или используйте
jobs.createиjobs.run_now, чтобы создать и запустить задание.
Начало работы с REST API Databricks
Заметка
Databricks рекомендует использовать Интерфейс командной строки Databricks и пакет SDK Databricks, если только вы не используете такой язык программирования, для которого нет соответствующего пакета SDK Databricks.
В следующем примере выполняется запрос к REST API Databricks для получения сведений об одном задании. Предполагается, что переменные среды DATABRICKS_HOST и DATABRICKS_TOKEN заданы, как описано в разделе "Выполнение проверки подлинности личного маркера доступа".
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Сведения об использовании REST API см. в справочной документации по REST API Databricks .
Просмотр заданий в виде кода
В рабочей области Databricks можно просмотреть представление задания JSON, YAML или Python.
На боковой панели рабочей области Azure Databricks щелкните "Задания и конвейеры " и выберите задание.
Нажмите кебаб слева от кнопки "Запустить сейчас ", а затем нажмите кнопку "Вид как код":
Щелкните YAML, Python или JSON , чтобы просмотреть задание как код на этом языке.
- Для YAML нажмите кнопку "Копировать", а затем вставьте код непосредственно в файлы конфигурации
*.yamlпакетов декларативной автоматизации, чтобы включить существующее задание в пакет. Вы также можете нажать кнопку "Изменить" , чтобы изменить конфигурацию задания в YAML вместо пользовательского интерфейса. - Для Python выберите пакет SDK Databricks или декларативный пакет автоматизации, а затем нажмите кнопку "Копировать".
- Код Python для пакета SDK можно использовать для создания задания в записных книжках или локально при использовании пакета SDK для Python Databricks. См. статью "Создание задания с помощью пакета SDK для Python".
- Код Python для пакетов можно использовать для включения задания в пакет с помощью Python. См. раздел "Конфигурация пакета" в Python.
- Для JSON нажмите кнопку "Копировать" и используйте код для создания, обновления или получения задания с помощью интерфейса командной строки Databricks, пакетов SDK Databricks или REST API Databricks.
- Для YAML нажмите кнопку "Копировать", а затем вставьте код непосредственно в файлы конфигурации
Убирать
Чтобы удалить только что созданные задания, запустите databricks jobs delete <job-id> из интерфейса командной строки Databricks или удалите задание непосредственно из пользовательского интерфейса рабочей области Databricks.
Дальнейшие действия
- Чтобы узнать больше об интерфейсе командной строки Databricks, см. статью Что такое интерфейс командной строки Databricks? и Команды интерфейса командной строки Databricks, чтобы ознакомиться с другими группами команд.
- Дополнительные сведения о пакете SDK Databricks см. в статье Databricks SDK.
- Дополнительные сведения об CI/CD с помощью Databricks см. в декларативных пакетах автоматизации и поставщике Databricks Terraform для Databricks .
- Для получения полного обзора всех инструментов для разработчиков ознакомьтесь с инструментами локальной разработки.