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


bundle группа команд

Примечание.

Эта информация относится к Databricks CLI версии 0.218.0 и выше. Чтобы найти версию интерфейса командной строки Databricks, выполните команду databricks -v.

Группа bundle команд в интерфейсе командной строки Databricks позволяет программно проверять, развертывать и запускать рабочие процессы Azure Databricks, такие как задания Azure Databricks, конвейеры Delta Live Tables и MLOps Stacks. См. раздел "Что такое пакеты ресурсов Databricks?".

Внимание

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

Команды выполняются bundle путем добавления их в databricks bundle. Чтобы отобразить справку по команде bundle , выполните команду databricks bundle -h.

Создание пакета из шаблона проекта

Чтобы создать пакет ресурсов Databricks с помощью шаблона пакета ресурсов Databricks по умолчанию для Python, выполните bundle init следующую команду, а затем ответьте на экранные запросы:

databricks bundle init

Чтобы создать пакет ресурсов Databricks с помощью шаблона пакета ресурсов, отличного от по умолчанию, выполните bundle init команду следующим образом:

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

См. также:

Отображение схемы конфигурации пакета

Чтобы отобразить схему конфигурации пакета ресурсов Databricks, выполните bundle schema команду следующим образом:

databricks bundle schema

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

databricks bundle schema > bundle_config_schema.json

Проверка пакета

Чтобы проверить правильность файлов конфигурации пакета, выполните bundle validate команду из корневого каталога проекта пакета, как показано ниже.

databricks bundle validate

По умолчанию эта команда возвращает сводку удостоверения пакета:

Name: MyBundle
Target: dev
Workspace:
  Host: https://my-host.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/MyBundle/dev

Validation OK!

Примечание.

Команда bundle validate выводит предупреждения, если свойства ресурса определены в файлах конфигурации пакета, которые не найдены в схеме соответствующего объекта.

Синхронизация дерева пакета с рабочей областью

bundle sync Используйте команду для односторонней синхронизации изменений файла пакета в локальном каталоге файловой системы в каталоге локальной файловой системы в каталоге в удаленной рабочей области Azure Databricks.

Примечание.

bundle sync команды не могут синхронизировать изменения файлов из каталога в удаленной рабочей области Azure Databricks, обратно в каталог в локальной файловой системе.

databricks bundle sync команды работают так же, как databricks sync команды и предоставляются в качестве удобства для повышения производительности. Сведения об использовании команд см. в разделе "Группа команд синхронизации".

Создание файла конфигурации пакета

С помощью bundle generate команды можно создать конфигурацию ресурсов для задания или конвейера, уже существующего в рабочей области Databricks. Эта команда создает *.yml файл для задания или конвейера в resources папке проекта пакета, а также скачивает все записные книжки, на которые ссылается конфигурация задания или конвейера. В настоящее время поддерживаются только задания с задачами записной книжки.

Внимание

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

Выполните следующую bundle generate команду:

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

Например, следующая команда создает новый hello_job.yml файл в resources папке проекта пакета, содержащей YAML ниже, и скачивает ее в simple_notebook.py папку src проекта.

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    6565621249:
      name: Hello Job
      format: MULTI_TASK
      tasks:
        - task_key: run_notebook
          existing_cluster_id: 0704-xxxxxx-yyyyyyy
          notebook_task:
            notebook_path: ./src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

Привязка ресурсов пакета

Эта bundle deployment bind команда позволяет связать определяемые пакетом задания и конвейеры с существующими заданиями и конвейерами в рабочей области Azure Databricks, чтобы они стали управляемыми пакетами ресурсов Databricks. Если вы привязываете ресурс, существующие ресурсы Azure Databricks в рабочей области обновляются на основе конфигурации, определенной в пакете, к нему привязаны после следующего bundle deploy.

Совет

Рекомендуется подтвердить рабочую область пакета перед выполнением привязки.

databricks bundle deployment bind [resource-key] [resource-id]

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

databricks bundle deployment bind hello_job 6565621249

Используйте bundle deployment unbind , если вы хотите удалить связь между заданием или конвейером в пакете и его удаленным коллегой в рабочей области.

databricks bundle deployment unbind [resource-key]

Развертывание пакета

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

databricks bundle deploy

Чтобы развернуть пакет в определенном целевом объекте, задайте -t параметр (или --target) вместе с именем целевого объекта, объявленным в файлах конфигурации пакета. Например, для целевого объекта, объявленного именем dev:

databricks bundle deploy -t dev

Пакет можно развернуть в нескольких рабочих областях, таких как разработка, промежуточные и рабочие области. По сути, root_path свойство определяет уникальное удостоверение пакета, для которого по умолчанию задано ~/.bundle/${bundle.name}/${bundle.target}значение . Поэтому по умолчанию удостоверение пакета состоит из удостоверения развертывающего средства, имени пакета и целевого имени пакета. Если они идентичны в разных пакетах, развертывание этих пакетов будет мешать друг другу.

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

  • Если ресурс в конфигурации пакета не существует в целевой рабочей области, он создается.
  • Если ресурс в конфигурации пакета существует в целевой рабочей области, он обновляется в рабочей области.
  • Если ресурс удаляется из конфигурации пакета, он удаляется из целевой рабочей области, если он был развернут ранее.
  • Связь ресурса с пакетом может быть забыта только при изменении имени пакета, целевого объекта пакета или рабочей области. Вы можете выполнить bundle validate вывод сводки, содержащей эти значения.

Запуск пакета

Чтобы запустить определенное задание или конвейер, используйте bundle run команду. Необходимо указать ключ ресурса задания или конвейера, объявленного в файлах конфигурации пакета. По умолчанию используется среда, объявленная в файлах конфигурации пакета. Например, чтобы запустить задание hello_job в среде по умолчанию, выполните следующую команду:

databricks bundle run hello_job

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

databricks bundle run -t dev hello_job

Если вы хотите выполнить проверку конвейера, используйте --validate-only этот параметр, как показано в следующем примере:

databricks bundle run --validate-only my_pipeline

Чтобы передать параметры задания, используйте --params параметр, за которым следует пары "ключ-значение", разделенные запятыми, где ключ — имя параметра. Например, следующая команда задает параметр с именем messageHelloWorld для задания hello_job:

databricks bundle run --params message=HelloWorld hello_job

Примечание.

Параметры заданий можно передать с помощью параметров задачи задания, но --params этот параметр является рекомендуемыми способами передачи параметров задания. Ошибка возникает, если параметры задания указаны для задания, не имеющего параметров задания, или если параметры задачи указаны для задания с определенными параметрами задания.

Чтобы отменить и перезапустить существующий запуск задания или обновление конвейера, используйте --restart этот параметр:

databricks bundle run --restart hello_job

Уничтожение пакета

Чтобы удалить задания, конвейеры и артефакты, которые ранее были развернуты, выполните bundle destroy команду. Следующая команда удаляет все ранее развернутые задания, конвейеры и артефакты, определенные в файлах конфигурации пакета:

databricks bundle destroy

Примечание.

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

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