Разработка задания в Azure Databricks с помощью пакетов ресурсов Databricks
Пакеты ресурсов Databricks, также известные как пакеты, содержат артефакты, которые необходимо развернуть, и параметры для ресурсов Azure Databricks, таких как задания, которые вы хотите запустить, и позволяют программным способом проверять, развертывать и запускать их. См. раздел "Что такое пакеты ресурсов Databricks?".
В этой статье описывается, как создать пакет для программного управления заданием. См . инструкции по расписанию и оркестрации рабочих процессов. Пакет создается с помощью шаблона пакета ресурсов Databricks по умолчанию для Python, который состоит из записной книжки, в паре с определением задания для его запуска. Затем вы проверяете, развертываете и запускаете развернутые задания в рабочей области Azure Databricks.
Совет
Если у вас есть задания, созданные с помощью пользовательского интерфейса заданий Azure Databricks Jobs или API, которые необходимо переместить в пакеты, необходимо определить их в файлах конфигурации пакета. Databricks рекомендует сначала создать пакет, выполнив приведенные ниже действия, а затем проверить, работает ли пакет. Затем в пакет можно добавить дополнительные определения заданий, записные книжки и другие источники. См. статью "Добавление существующего определения задания в пакет".
Требования
- Databricks CLI версии 0.218.0 или более поздней. Чтобы проверить установленную версию интерфейса командной строки Databricks, выполните команду
databricks -v
. Чтобы установить интерфейс командной строки Databricks, см. статью "Установка или обновление интерфейса командной строки Databricks". - Удаленная рабочая область Databricks должна иметь включенные файлы рабочей области. См. раздел " Что такое файлы рабочей области?".
Создание пакета с помощью шаблона проекта
Сначала создайте пакет с помощью шаблона Python для пакетов ресурсов Databricks по умолчанию. Дополнительные сведения о шаблонах пакетов см. в разделе "Шаблоны проектов пакета ресурсов Databricks".
Если вы хотите создать пакет с нуля, см . статью "Создание пакета вручную".
Шаг 1. Настройка аутентификации
На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать проверку подлинности OAuth на компьютере (U2M) и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT
проверки подлинности.
Примечание.
Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать проверку подлинности OAuth на компьютере (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".
Используйте интерфейс командной строки Databricks для локального запуска управления маркерами OAuth, выполнив следующую команду для каждой целевой рабочей области.
В следующей команде замените
<workspace-url>
URL-адрес Azure Databricks для каждой рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите,
Enter
чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.Чтобы получить список существующих профилей, в отдельном терминале или командной строке используйте интерфейс командной строки Databricks для выполнения команды
databricks auth profiles
. Чтобы просмотреть существующие параметры конкретного профиля, выполните командуdatabricks auth env --profile <profile-name>
.В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.
Чтобы просмотреть текущее значение маркера OAuth профиля и метку времени окончания срока действия маркера, выполните одну из следующих команд:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Если у вас есть несколько профилей с
--host
одинаковым значением, может потребоваться указать и-p
параметры--host
вместе, чтобы помочь Databricks CLI найти правильные соответствующие сведения о маркере OAuth.
Шаг 2. Инициализация пакета
Инициализация пакета с помощью шаблона проекта пакета Python по умолчанию.
Используйте терминал или командную строку, чтобы переключиться в каталог на локальном компьютере разработки, который будет содержать созданный пакет шаблона.
Используйте интерфейс командной
bundle init
строки Databricks для выполнения команды:databricks bundle init
Для
Template to use
этого оставьте значениеdefault-python
по умолчанию, нажав клавишуEnter
.Для
Unique name for this project
этого оставьте значениеmy_project
по умолчанию или введите другое значение, а затем нажмите клавишуEnter
. Это определяет имя корневого каталога для этого пакета. Этот корневой каталог создается в текущем рабочем каталоге.Для
Include a stub (sample) notebook
, выберитеyes
и нажмитеEnter
.Для
Include a stub (sample) DLT pipeline
, выберитеno
и нажмитеEnter
. При этом интерфейс командной строки Databricks не определяет пример конвейера Delta Live Tables в пакете.Для
Include a stub (sample) Python package
, выберитеno
и нажмитеEnter
. В этом случае интерфейс командной строки Databricks не добавляет примеры файлов пакета колес Python или связанных инструкций по сборке в пакет.
Шаг 3. Изучение пакета
Чтобы просмотреть файлы, созданные шаблоном, переключитесь в корневой каталог созданного пакета. К файлам, интересующим особый интерес, относятся следующие:
databricks.yml
: этот файл указывает программное имя пакета, содержит ссылку на определение задания и задает параметры целевой рабочей области.resources/<project-name>_job.yml
: этот файл задает параметры задания, включая задачу записной книжки по умолчанию.src/notebook.ipynb
: этот файл представляет собой пример записной книжки, которая при запуске просто инициализирует удаленный рабочий диск, содержащий цифры 1–10.
Для настройки заданий сопоставления в объявлении задания соответствуют полезным данным запроса, выраженным в формате YAML, операции создания задания, как описано в post /api/2.1/jobs/create в справочнике по REST API.
Совет
Вы можете определить, объединить и переопределить параметры для новых кластеров заданий в пакетах с помощью методов, описанных в разделе "Переопределение параметров кластера" в пакетах ресурсов Databricks.
Шаг 4. Проверка файла конфигурации пакета проекта
На этом шаге проверяется, действительна ли конфигурация пакета.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle validate
команды следующим образом:databricks bundle validate
Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.
При внесении изменений в пакет после этого шага необходимо повторить этот шаг, чтобы проверить, действительна ли конфигурация пакета.
Шаг 5. Развертывание локального проекта в удаленной рабочей области
На этом шаге вы развернете локальную записную книжку в удаленной рабочей области Azure Databricks и создадите задание Azure Databricks в рабочей области.
В корневом каталоге пакета используйте интерфейс командной строки Databricks, чтобы выполнить
bundle deploy
команду следующим образом:databricks bundle deploy -t dev
Проверьте, развернута ли локальная записная книжка: на боковой панели рабочей области Azure Databricks щелкните "Рабочая область".
Щелкните папку Users >
<your-username>
> .bundle >><project-name>
dev > files > src. Записная книжка должна находиться в этой папке.Проверьте, создано ли задание: на боковой панели рабочей области Azure Databricks щелкните рабочие процессы.
На вкладке "Задания " щелкните [dev
<your-username>
]<project-name>_job
.Перейдите на вкладку "Задачи ". Должна быть одна задача: notebook_task.
При внесении изменений в пакет после этого шага необходимо повторить шаги 4–5, чтобы проверить, действительна ли конфигурация пакета, а затем повторно разверните проект.
Шаг 6. Запуск развернутого проекта
На этом шаге вы активируете выполнение задания Azure Databricks в рабочей области из командной строки.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle run
команды, как показано ниже, заменив<project-name>
имя проекта на шаге 2.databricks bundle run -t dev <project-name>_job
Скопируйте значение, которое отображается в терминале и вставьте это значение
Run URL
в веб-браузер, чтобы открыть рабочую область Azure Databricks. Просмотр и запуск задания, созданного с помощью пакета ресурсов DatabricksВ рабочей области Azure Databricks после успешного завершения задачи задания и отображение зеленой панели заголовка щелкните задачу задания, чтобы просмотреть результаты.
При внесении изменений в пакет после этого шага необходимо повторить шаги 4-6, чтобы проверить, действительна ли конфигурация пакета, повторно разверните проект и запустите повторно развернутый проект.
Шаг 7. Очистка
На этом шаге вы удалите развернутую записную книжку и задание из рабочей области.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle destroy
команды следующим образом:databricks bundle destroy -t dev
Подтвердите запрос на удаление задания: при появлении запроса на окончательное уничтожение ресурсов, введите
y
и нажмите клавишуEnter
.Подтвердите запрос на удаление записной книжки: при появлении запроса на окончательное уничтожение ранее развернутой папки и всех его файлов, введите
y
и нажмите клавишуEnter
.Если вы также хотите удалить пакет с компьютера разработки, теперь можно удалить локальный каталог из шага 2.
Добавление существующего определения задания в пакет
Для определения задания в файле конфигурации пакета можно использовать существующее задание. Чтобы получить существующее определение задания, его можно получить вручную с помощью пользовательского интерфейса или создать его программным способом с помощью интерфейса командной строки Databricks.
Сведения об определении задания в пакетах см. в разделе задания.
Получение существующего определения задания с помощью пользовательского интерфейса
Чтобы получить представление yamL существующего определения задания из пользовательского интерфейса рабочей области Azure Databricks:
На боковой панели рабочей области Azure Databricks щелкните "Рабочие процессы".
На вкладке "Задания" щелкните ссылку "Имя задания".
Рядом с кнопкой "Выполнить сейчас" нажмите кнопку "Кебаб", а затем нажмите кнопку "Переключиться на код" (YAML).
Добавьте YAML, скопированный в файл пакета, или создайте файл конфигурации для задания в
resources
каталоге проекта пакетаdatabricks.yml
и сослаться на него из файлаdatabricks.yml
. См. раздел (/dev-tools/bundles/settings.md#resources).Скачайте и добавьте все файлы и записные книжки Python, на которые ссылается существующее задание, в источник проекта пакета. Обычно артефакты пакета находятся в каталоге
src
в пакете.Совет
Вы можете экспортировать существующую записную книжку из рабочей области Azure Databricks в
.ipynb
формат, нажав кнопку "Экспорт > iPython > Notebook" из пользовательского интерфейса записной книжки Azure Databricks.После добавления записных книжек, файлов Python и других артефактов в пакет убедитесь, что определение задания правильно ссылается на них. Например, для записной книжки с именем
hello.ipynb
, которая находится вsrc
каталоге пакета:resources: jobs: hello-job: name: hello-job tasks: - task_key: hello-task notebook_task: notebook_path: ../src/hello.ipynb
Создание существующего определения задания с помощью интерфейса командной строки Databricks
Чтобы программно создать конфигурацию пакета для существующего задания:
Получите идентификатор существующего задания на боковой панели сведений о задании для задания в пользовательском интерфейсе заданий или используйте команду CLI
databricks jobs list
Databricks.bundle generate job
Выполните команду CLI Databricks, задав идентификатор задания:databricks bundle generate job --existing-job-id 6565621249
Эта команда создает файл конфигурации пакета для задания в папке пакета
resources
и скачивает все указанные артефакты в папкуsrc
.Совет
Если вы сначала используете
bundle deployment bind
для привязки ресурса в пакете к одной в рабочей области, ресурс в рабочей области обновляется на основе конфигурации, определенной в пакете, к нему привязана после следующегоbundle deploy
. Дополнительные сведения см. вbundle deployment bind
разделе "Привязка ресурсов пакета".
Настройка задания, использующего бессерверные вычисления
В следующих примерах показаны конфигурации пакета для создания задания, использующего бессерверные вычисления.
Чтобы использовать бессерверные вычисления для выполнения задания, включающего задачи записной книжки, опустите job_clusters
конфигурацию из файла конфигурации пакета.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job-serverless:
name: retrieve-filter-baby-names-job-serverless
tasks:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Чтобы использовать бессерверные вычисления для выполнения задания, включающего задачи Python, включите конфигурацию environments
.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: serverless-python-tasks
resources:
jobs:
serverless-python-job:
name: serverless-job-with-python-tasks
tasks:
- task_key: wheel-task-1
python_wheel_task:
entry_point: main
package_name: wheel_package
environment_key: Default
environments:
- environment_key: Default
spec:
client: "1"
dependencies:
- workflows_authoring_toolkit==0.0.1
targets:
development:
workspace:
host: <workspace-url>
Ознакомьтесь с заданием Azure Databricks с бессерверными вычислениями для рабочих процессов.