Разработка декларативных пакетов автоматизации

В этой статье описывается разработка и жизненный цикл декларативных пакетов автоматизации. Общие сведения о пакетах см. в разделе "Что такое декларативные пакеты автоматизации?".

Жизненный цикл пакета

Чтобы понять, как эффективно использовать пакеты, необходимо понять базовый жизненный цикл пакета:

  1. Скелет пакета создается на основе проекта.
  2. Проект пакета разрабатывается локально. Пакет содержит файлы конфигурации, определяющие параметры инфраструктуры и рабочей области, такие как целевые объекты развертывания, параметры ресурсов Databricks, такие как задания и конвейеры, а также исходные файлы и другие артефакты.
  3. Проект пакета проверен. Проверка проверяет параметры и определения ресурсов в конфигурации пакета с соответствующими схемами объектов, чтобы обеспечить развертывание пакета в Databricks.
  4. Пакет развернут в целевой рабочей области. Чаще всего пакет сначала развертывается в личной рабочей области разработки пользователя для тестирования. После завершения тестирования пакета его можно развернуть в стейджинг, а затем на продакшен-среду.
  5. Ресурсы процессов работы, определенные в развернутом пакете, могут запускаться. Например, можно запустить задание.
  6. Если пакет больше не используется, его можно окончательно уничтожить.

Команды пакета CLI Databricks используются для создания, проверки, развертывания, запуска и уничтожения пакетов, как описано в следующих разделах.

Шаг 1. Создание пакета

Существует три способа начать создание пакета:

  1. Используйте шаблон пакета по умолчанию.
  2. Используйте пользовательский шаблон пакета.
  3. Создайте пакет вручную.

Использование шаблона пакета по умолчанию

Чтобы использовать шаблон пакета по умолчанию Azure Databricks для создания начального пакета, который можно настроить дальше, используйте Cli Databricks версии 0.218.0 или более поздней, чтобы запустить команду bundle init, которая позволяет выбрать из списка доступных шаблонов. См. databricks bundle init.

databricks bundle init

Вы можете просмотреть исходный код шаблонов пакетов по умолчанию в общедоступных репозиториях GitHub databricks/cli и databricks/mlops-stacks.

Перейдите к шагу 2. Заполните файлы конфигурации пакета.

Использование пользовательского шаблона пакета

Чтобы использовать шаблон пакета, отличный от шаблона пакета Azure Databricks по умолчанию, необходимо знать локальный путь или URL-адрес в расположении шаблона удаленного пакета. Используйте Интерфейс командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить bundle init команду следующим образом:

databricks bundle init <project-template-local-path-or-url>

Дополнительные сведения об этой команде см. в разделе "Декларативные шаблоны проектов пакетов автоматизации". Сведения о конкретном шаблоне пакета см. в документации поставщика шаблонов пакета.

Перейдите к шагу 2. Заполните файлы конфигурации пакета.

Создание пакета вручную

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

В каталоге или репозитории создайте один или несколько файлов конфигурации пакета в качестве входных данных. Эти файлы выражаются в формате YAML. Должен быть как минимум один (и только один) файл конфигурации пакета с именем databricks.yml. Дополнительные файлы конфигурации пакета должны быть указаны в include сопоставлении databricks.yml файла.

Чтобы упростить и быстро создавать файлы YAML, соответствующие синтаксису конфигурации пакета, можно использовать такие средства, как Visual Studio Code, PyCharm Professional или IntelliJ IDEA Ultimate , которые обеспечивают поддержку файлов YAML и ФАЙЛОВ схемы JSON, как показано ниже.

Visual Studio Code

  1. Добавьте поддержку сервера языка YAML в Visual Studio Code, например путем установки расширения YAML из Visual Studio Code Marketplace.

  2. Создайте файл схемы JSON конфигурации пакета с помощью Интерфейса командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить bundle schemaкоманду и перенаправить выходные данные в JSON-файл. Например, создайте файл с именем bundle_config_schema.json в текущем каталоге следующим образом:

    databricks bundle schema > bundle_config_schema.json
    
  3. Используйте Visual Studio Code для создания или открытия файла конфигурации пакета в текущем каталоге. Этот файл должен иметь имя databricks.yml.

  4. Добавьте следующий комментарий в начало файла конфигурации пакета:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Примечание.

    В приведенном выше комментарии, если файл схемы JSON конфигурации пакета расположен в другом месте, замените bundle_config_schema.json на полный путь к вашему файлу схемы.

  5. Используйте функции сервера языка YAML, добавленные ранее. Дополнительные сведения см. в документации по серверу языка YAML.

PyCharm Professional

  1. Создайте файл схемы JSON конфигурации пакета с помощью Интерфейса командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить bundle schemaкоманду и перенаправить выходные данные в JSON-файл. Например, создайте файл с именем bundle_config_schema.json в текущем каталоге следующим образом:

    databricks bundle schema > bundle_config_schema.json
    
  2. Настройте PyCharm, чтобы распознавать конфигурационный файл схемы JSON пакета, и завершите привязку схемы JSON, следуя инструкциям в Настройка пользовательской схемы JSON.

  3. Используйте PyCharm для создания или открытия файла конфигурации пакета. Этот файл должен иметь имя databricks.yml. При вводе PyCharm проверяет синтаксис схемы JSON и форматирование и предоставляет указания по завершению кода.

IntelliJ IDEA Ultimate

  1. Создайте файл схемы JSON конфигурации пакета с помощью Интерфейса командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить bundle schemaкоманду и перенаправить выходные данные в JSON-файл. Например, создайте файл с именем bundle_config_schema.json в текущем каталоге следующим образом:

    databricks bundle schema > bundle_config_schema.json
    
  2. Настройте IntelliJ IDEA, чтобы она распознавала файл схемы JSON конфигурации комплекта, а затем завершите сопоставление этой схемы, следуя инструкциям в разделе Настройка пользовательской схемы JSON.

  3. Используйте IntelliJ IDEA для создания или открытия файла конфигурации пакета. Этот файл должен иметь имя databricks.yml. При вводе IntelliJ IDEA проверяет синтаксис схемы JSON и форматирование и предоставляет указания по завершению кода.

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

Файлы конфигурации пакета определяют рабочие процессы Azure Databricks, указав такие параметры, как сведения о рабочей области, имена артефактов, расположения файлов, сведения о задании и сведения о конвейере. Обычно конфигурация пакета также содержит целевые объекты разработки, промежуточного и рабочего развертывания. Полный справочник по конфигурации пакета см. в справочнике по конфигурации.

Вы можете использовать команду bundle generate для автоматической генерации конфигурации пакета для существующего ресурса в пространстве рабочей области, а затем использовать bundle deployment bind для связывания конфигурации пакета с ресурсом в этой рабочей области, чтобы они оставались синхронизированными. См. databricks bundle generate и databricks bundle deployment bind.

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

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

databricks bundle validate

Если проверка выполнена успешно, будет возвращена сводка идентификации пакета и сообщение подтверждения. Чтобы вывести схему, используйте команду databricks bundle schema. См. схему пакета databricks.

Шаг 4. Развертывание пакета

Перед развертыванием пакета убедитесь, что в удаленной рабочей области включены файлы рабочей области. См. раздел " Что такое файлы рабочей области?".

Чтобы развернуть бандл на удалённую рабочую область, выполните команду bundle deploy из корня бандла, как описано в databricks bundle deploy. Интерфейс командной строки Databricks развертывается в целевой рабочей области, объявленной в файлах конфигурации пакета. См цели.

databricks bundle deploy

Уникальная идентичность пакета определяется его именем, целью и идентификацией развертывающего. Если эти атрибуты идентичны в разных пакетах, развертывание этих пакетов будет мешать друг другу. Дополнительные сведения см. в команде databricks bundle deploy.

Совет

Можно выполнять команды databricks bundle вне каталога пакета, задав переменную среды DATABRICKS_BUNDLE_ROOT. (Устаревшая BUNDLE_ROOT переменная всё ещё принимается для обратной совместимости.) Если эта переменная среды не установлена, databricks bundle команды пытаются найти корень bundle, ища в текущей рабочей директории.

Шаг 5. Запуск пакета

Чтобы запустить конкретное задание или конвейер, выполните команду bundle run из корня пакета, указывая ключ задания или конвейера, объявленный в файлах конфигурации пакета, как описано в databricks bundle run. Ключ ресурса — это элемент верхнего уровня блока YAML ресурса. Если вы не указываете ключ задания или конвейера, вам будет предложено выбрать ресурс для запуска из списка доступных ресурсов. -t Если параметр не указан, используется целевой объект по умолчанию, объявленный в файлах конфигурации пакета. Например, чтобы запустить задание с ключом hello_job в контексте целевого объекта по умолчанию:

databricks bundle run hello_job

Выполнение задания с ключом hello_job в контексте целевого объекта, объявленного с именем dev:

databricks bundle run -t dev hello_job

Шаг 6. Уничтожение пакета

Предупреждение

Уничтожение пакета окончательно удаляет все ранее развернутые задания, конвейеры и артефакты. Это действие невозможно отменить.

Если вы завершили работу с пакетом и хотите удалить задания, конвейеры и артефакты, которые были ранее развернуты, выполните команду bundle destroy из корневого каталога пакета. Эта команда удаляет все ранее развернутые задания, конвейеры и артефакты, определенные в файлах конфигурации пакета. См. сведения об уничтожении пакета databricks.

databricks bundle destroy

По умолчанию вам будет предложено подтвердить постоянное удаление ранее развернутых заданий, конвейеров и артефактов. Чтобы пропустить эти запросы и выполнить автоматическое постоянное удаление, добавьте --auto-approve параметр в bundle destroy команду.