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


Разработка пакетов активов Databricks

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

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

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

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

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

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

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

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

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

Чтобы использовать шаблон пакета по умолчанию Azure Databricks для создания начального пакета, который можно настроить дальше, используйте Интерфейс командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить 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>

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

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

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

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

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

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

Visual Studio Code

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

  2. Создайте файл схемы пакета ресурсов Databricks в формате 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
    

    Примечание.

    Если файл схемы пакета ресурсов Databricks находится в другом пути, замените bundle_config_schema.json полный путь к файлу схемы.

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

PyCharm Professional

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

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

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

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

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

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

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

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

databricks bundle validate

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

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

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

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

databricks bundle deploy

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

Совет

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

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

Чтобы выполнить определенное задание или конвейер, выполните 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 bundle destroy

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