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


Разработка задания с помощью пакетов ресурсов Databricks

Пакеты ресурсов Databricks, также известные как пакеты, содержат артефакты, которые необходимо развернуть, и параметры для ресурсов Azure Databricks, таких как задания, которые вы хотите запустить, и позволяют программным способом проверять, развертывать и запускать их. См. раздел "Что такое пакеты ресурсов Databricks?".

В этой статье описывается, как создать пакет для программного управления заданием. Смотрите Задания Lakeflow. Пакет создается с использованием шаблона пакета по умолчанию для Python в Databricks Asset Bundles, который включает записную книжку и определение задания для её выполнения. Затем вы проверяете, развертываете и запускаете развернутую задачу в рабочей области Azure Databricks.

Совет

Если у вас есть существующие задания, созданные с помощью пользовательского интерфейса или API Заданий Lakeflow, которые необходимо переместить в пакеты, необходимо определить их в файлах конфигурации пакета. Databricks рекомендует сначала создать пакет, выполнив приведенные ниже действия, а затем проверить, работает ли пакет. Затем в пакет можно добавить дополнительные определения заданий, записные книжки и другие источники. См. статью "Получение существующего определения задания с помощью пользовательского интерфейса".

Требования

Создание пакета с помощью шаблона проекта

Сначала создайте пакет с помощью шаблона Python для пакетов ресурсов Databricks по умолчанию. Дополнительные сведения о шаблонах пакетов см. в разделе "Шаблоны проектов пакета ресурсов Databricks".

Если вы хотите создать пакет с нуля, см . статью "Создание пакета вручную".

Шаг 1. Настройка проверки подлинности

На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать аутентификацию пользователя к машине (U2M) через OAuth и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT.

Примечание.

Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует вместо этого использовать аутентификацию OAuth машина-машина (M2M). Инструкции по настройке аутентификации M2M см. в разделе "Авторизация неавторизованного доступа к ресурсам Azure Databricks с использованием сервисного принципала и OAuth".

  1. Используйте Databricks CLI для локального инициирования управления токенами OAuth, выполнив следующую команду для каждой целевой рабочей области.

    В следующей команде замените на URL-адрес рабочей области Azure Databricks , например, .

    databricks auth login --host <workspace-url>
    
  2. Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите, Enter чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.

    Чтобы получить список существующих профилей в отдельном терминале или командной строке, используйте интерфейс командной строки Databricks для выполнения команды databricks auth profiles. Чтобы просмотреть существующие параметры конкретного профиля, выполните команду databricks auth env --profile <profile-name>.

  3. В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.

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

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Если у вас есть несколько профилей с одинаковым значением для --host, может потребоваться указать параметры --host и -p вместе, чтобы помочь Databricks CLI найти правильную информацию о маркере OAuth.

Шаг 2. Инициализация пакета

Инициализация пакета с помощью шаблона проекта пакета Python по умолчанию.

Примечание.

Шаблон default-python требует, чтобы uv был установлен. См. статью об установке uv.

  1. Используйте терминал или командную строку, чтобы переключиться в каталог на локальном компьютере разработки, который будет содержать созданный пакет шаблона.

  2. Используйте командную строку интерфейса Databricks для выполнения команды bundle init.

    databricks bundle init
    
  3. Для Template to use оставьте значение default-python по умолчанию, нажав клавишу Enter.

  4. Для Unique name for this project оставьте значение my_project по умолчанию или введите другое значение, а затем нажмите Enter. Это определяет имя корневого каталога для этого пакета. Этот корневой каталог создается в текущем рабочем каталоге.

  5. Для Include a stub (sample) notebookвыберите yes и нажмите клавишу Enter.

  6. Для Include a stub (sample) Delta Live Tables pipelineвыберите no и нажмите клавишу Enter. Это указывает интерфейсу командной строки Databricks не создавать пример конвейера ETL в вашем пакете.

  7. Для Include a stub (sample) Python packageвыберите no и нажмите клавишу Enter. Это указывает Databricks CLI не добавлять в ваш пакет примеры файлов пакета Python wheel или связанные с ними инструкции по сборке.

  8. Для Use serverlessвыберите yes и нажмите клавишу Enter. В этом случае интерфейс командной строки Databricks позволяет настроить пакет для выполнения без сервера вычислений.

Шаг 3. Изучение пакета

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

  • databricks.yml: этот файл указывает программное имя пакета, содержит ссылку на определение задания и задает параметры целевой рабочей области.
  • resources/<project-name>_job.yml: этот файл задает параметры задания, включая задачу записной книжки по умолчанию.
  • src/notebook.ipynb: этот файл представляет собой пример записной книжки, которая при запуске просто инициализирует RDD, содержащий числа от 1 до 10.

Для настройки заданий отображения в описании задания соответствуют данным запроса, выраженным в формате YAML, для операции создания задания, как это описано в разделе API POST /api/2.1/jobs/create в справочнике по REST API.

Совет

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

Шаг 4. Проверка файла конфигурации пакета проекта

На этом шаге проверяется, действительна ли конфигурация пакета.

  1. В корневом каталоге используйте интерфейс командной строки Databricks для выполнения bundle validate команды следующим образом:

    databricks bundle validate
    
  2. Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.

При внесении изменений в пакет после этого шага необходимо повторить этот шаг, чтобы проверить, действительна ли конфигурация пакета.

Шаг 5. Развертывание локального проекта в удаленной рабочей области

На этом шаге вы развернете локальную записную книжку в удаленной рабочей области Azure Databricks и создадите задание Azure Databricks в рабочей области.

  1. В корневом каталоге пакета используйте интерфейс командной строки Databricks, чтобы выполнить команду bundle deploy следующим образом:

    databricks bundle deploy -t dev
    
  2. Проверьте, развернута ли локальная записная книжка: на боковой панели рабочей области Azure Databricks щелкните "Рабочая область".

  3. Перейдите в папку Users ><your-username>> .bundle ><project-name>>dev > files > src. Записная книжка должна находиться в этой папке.

  4. Проверьте, создано ли задание: на боковой панели рабочей области Azure Databricks щелкните "Задания" и "Конвейеры".

  5. На вкладке "Задания и конвейеры" щелкните [dev <your-username>] <project-name>_job.

    Если список длинный, вы можете отфильтровать по Заданиям и Принадлежащим мне.

  6. Перейдите на вкладку "Задачи ". Должна быть одна задача: notebook_task.

При внесении изменений в пакет после этого шага необходимо повторить шаги 4–5, чтобы проверить, действительна ли конфигурация пакета, а затем повторно разверните проект.

Шаг 6. Запуск развернутого проекта

На этом шаге вы активируете выполнение задания в рабочей области из командной строки.

  1. В корневом каталоге используйте интерфейс командной строки Databricks для выполнения bundle run команды, как показано ниже, заменив <project-name> имя проекта на шаге 2.

    databricks bundle run -t dev <project-name>_job
    
  2. Скопируйте значение, которое отображается в терминале и вставьте это значение Run URL в веб-браузер, чтобы открыть рабочую область Azure Databricks. Посмотрите Просмотр и запуск задания, созданного с помощью Databricks Asset Bundles

  3. В рабочей области Azure Databricks после успешного завершения задания и появления зеленой панели заголовка щелкните на задание, чтобы просмотреть результаты.

При внесении изменений в пакет после этого шага необходимо повторить шаги 4-6, чтобы проверить, действительна ли конфигурация пакета, повторно разверните проект и запустите повторно развернутый проект.

Шаг 7. Очистка

На этом этапе вы удалите развернутый ноутбук и задание из рабочей области.

  1. В корневом каталоге используйте интерфейс командной строки Databricks для выполнения bundle destroy команды следующим образом:

    databricks bundle destroy -t dev
    
  2. Подтвердите запрос на удаление задания: при появлении запроса на окончательное уничтожение ресурсов, введите y и нажмите клавишу Enter.

  3. Подтвердите запрос на удаление записной книжки: при появлении запроса на окончательное уничтожение ранее развернутой папки и всех его файлов, введите y и нажмите клавишу Enter.

  4. Если вы также хотите удалить пакет с компьютера разработки, теперь можно удалить локальный каталог из шага 2.