Разработка пакетов активов Databricks
В этой статье описывается разработка и жизненный цикл пакета ресурсов Databricks. Общие сведения о пакетах активов Databricks см. в разделе "Что такое пакеты активов Databricks?".
Жизненный цикл пакета
Чтобы понять, как эффективно использовать пакеты, необходимо понять базовый жизненный цикл пакета:
- Скелет пакета создается на основе проекта.
- Проект пакета разрабатывается локально. Пакет содержит файлы конфигурации, определяющие параметры инфраструктуры и рабочей области, такие как целевые объекты развертывания, параметры ресурсов Databricks, такие как задания и конвейеры, а также исходные файлы и другие артефакты.
- Проект пакета проверяется. Проверка проверяет параметры и определения ресурсов в конфигурации пакета с соответствующими схемами объектов, чтобы обеспечить развертывание пакета в Databricks.
- Пакет развертывается в целевой рабочей области. Чаще всего пакет сначала развертывается в личной рабочей области разработки пользователя для тестирования. После завершения тестирования пакета пакет можно развернуть в промежуточном режиме, а затем целевые объекты рабочей среды.
- Ресурсы рабочего процесса, определенные в развернутом пакете, могут выполняться. Например, можно запустить задание.
- Если пакет больше не используется, его можно окончательно уничтожить.
Команды пакета CLI Databricks используются для создания, проверки, развертывания, запуска и уничтожения пакетов, как описано в следующих разделах.
Шаг 1. Создание пакета
Существует три способа начать создание пакета:
- Используйте шаблон пакета по умолчанию.
- Используйте пользовательский шаблон пакета.
- Создайте пакет вручную.
Использование шаблона пакета по умолчанию
Чтобы использовать шаблон пакета по умолчанию 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
Добавьте поддержку сервера языка YAML в Visual Studio Code, например путем установки расширения YAML из Visual Studio Code Marketplace.
Создайте файл схемы пакета ресурсов Databricks в формате JSON с помощью интерфейса командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить
bundle schema
команду и перенаправить выходные данные в JSON-файл. Например, создайте файл с именемbundle_config_schema.json
в текущем каталоге следующим образом:databricks bundle schema > bundle_config_schema.json
Используйте Visual Studio Code для создания или открытия файла конфигурации пакета в текущем каталоге. Этот файл должен иметь имя
databricks.yml
.Добавьте следующий комментарий в начало файла конфигурации пакета:
# yaml-language-server: $schema=bundle_config_schema.json
Примечание.
Если файл схемы пакета ресурсов Databricks находится в другом пути, замените
bundle_config_schema.json
полный путь к файлу схемы.Используйте функции сервера языка YAML, добавленные ранее. Дополнительные сведения см. в документации по серверу языка YAML.
PyCharm Professional
Создайте файл схемы пакета ресурсов Databricks в формате JSON с помощью интерфейса командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить
bundle schema
команду и перенаправить выходные данные в JSON-файл. Например, создайте файл с именемbundle_config_schema.json
в текущем каталоге следующим образом:databricks bundle schema > bundle_config_schema.json
Настройте PyCharm для распознавания файла схемы JSON конфигурации пакета, а затем завершите сопоставление схемы JSON, следуя инструкциям в разделе "Настройка пользовательской схемы JSON".
Используйте PyCharm для создания или открытия файла конфигурации пакета. Этот файл должен иметь имя
databricks.yml
. При вводе PyCharm проверяет синтаксис схемы JSON и форматирование и предоставляет указания по завершению кода.
IntelliJ IDEA Ultimate
Создайте файл схемы пакета ресурсов Databricks в формате JSON с помощью интерфейса командной строки Databricks версии 0.218.0 или более поздней, чтобы выполнить
bundle schema
команду и перенаправить выходные данные в JSON-файл. Например, создайте файл с именемbundle_config_schema.json
в текущем каталоге следующим образом:databricks bundle schema > bundle_config_schema.json
Настройте IntelliJ IDEA, чтобы распознать файл схемы JSON конфигурации пакета, а затем завершить сопоставление схемы JSON, следуя инструкциям в разделе "Настройка пользовательской схемы JSON".
Используйте 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
команду.