Поделиться через


Автоматизация создания заданий и управления

В этой статье показано, как приступить к работе с средствами разработчика для автоматизации создания заданий и управления ими. В ней представлены интерфейс командной строки Databricks, пакеты SDK Databricks и REST API.

Заметка

В этой статье приведены примеры создания заданий и управления ими с помощью интерфейса командной строки Databricks, пакета SDK для Python Databricks и REST API в качестве простого введение в эти средства. Для программного управления заданиями в рамках CI/CD пакетах активов Databricks (DAOB) или поставщика Databricks Terraform.

Средства сравнения

В следующей таблице сравниваются интерфейс командной строки Databricks, пакеты SDK Databricks и REST API для программного создания заданий и управления ими. Для получения сведений обо всех доступных средствах разработчика см. Местные средства разработки.

Инструмент Описание
Databricks CLI Доступ к функциям Databricks с помощью интерфейса командной строки Databricks, который упаковывает REST API. Используйте интерфейс командной строки для разовых задач, таких как экспериментирование, оболочечные скрипты и вызов REST API напрямую
пакеты SDK Databricks Разработка приложений и создание пользовательских рабочих процессов Databricks с помощью пакета SDK Databricks, доступного для Python, Java, Go или R. Вместо отправки вызовов REST API непосредственно с помощью curl или Postman можно использовать пакет SDK для взаимодействия с Databricks.
REST API Databricks Если ни один из описанных выше параметров не подходит для конкретного варианта использования, можно напрямую использовать 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 -h
  • databricks jobs <command-name> -h
  • databricks jobs <command-name> <subcommand-name> -h

Пример. Получение задания Databricks с помощью интерфейса командной строки

Чтобы распечатать сведения о отдельном задании в рабочей области, выполните следующую команду:

$ 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 с помощью интерфейса командной строки

В следующем примере для создания задания Databricks используется интерфейс командной строки Databricks. Это задание содержит одну задачу, которая запускает указанный ноутбук. Эта записная книжка зависит от определенной версии пакета pyPI wheel. Для выполнения этой задачи задание временно создает кластер, который экспортирует переменную среды с именем PYSPARK_PYTHON. После выполнения задания кластер завершается.

  1. Скопируйте и вставьте следующий код 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"
        }
        }
    ]
    }
    
  2. Выполните следующую команду, заменив <file-path> путем и именем только что созданного файла.

    databricks jobs create --json @<file-path>
    

Начало работы с пакетом 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.

Пример. Создание задания Databricks с помощью пакета SDK для Python

В следующем примере кода записной книжки создается задание Databricks, которое запускает существующую записную книжку. Он извлекает путь к существующей записной книжке и связанные настройки задания с подсказками.

Сначала убедитесь, что установлена правильная версия пакета SDK:

%pip install --upgrade databricks-sdk==0.40.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")

Начало работы с REST API Databricks

Заметка

Databricks рекомендует использовать Интерфейс командной строки Databricks и пакет SDK Databricks, если только вы не используете такой язык программирования, для которого нет соответствующего пакета SDK Databricks.

В следующем примере выполняется запрос к REST API Databricks для получения сведений об одном задании. Предполагается, что переменные среды DATABRICKS_HOST и DATABRICKS_TOKEN были установлены, как описано в разделе Выполните аутентификацию с помощью личного токена доступа Azure Databricks.

$ 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 jobs delete <job-id> из интерфейса командной строки Databricks или удалите задание непосредственно из пользовательского интерфейса рабочей области Databricks.

Дальнейшие действия