bundle
группа команд
Примечание.
Эта информация относится к Интерфейсу командной строки Databricks версии 0.205 и выше. Интерфейс командной строки Databricks находится в общедоступной предварительной версии.
Использование интерфейса командной строки Databricks распространяется на лицензию Databricks и уведомление о конфиденциальности Databricks, включая все положения об использовании.
Группа bundle
команд в интерфейсе командной строки Databricks позволяет программно проверять, развертывать и запускать рабочие процессы Azure Databricks, такие как задания Azure Databricks, конвейеры Delta Live Tables и MLOps Stacks. См. раздел "Что такое пакеты ресурсов Databricks?".
Команды выполняются bundle
путем добавления их в databricks bundle
. Чтобы отобразить справку по команде bundle
, выполните команду databricks bundle -h
.
Создание пакета из шаблона проекта
Чтобы создать пакет ресурсов Databricks с помощью шаблона пакета ресурсов Databricks по умолчанию для Python, выполните bundle init
команду следующим образом, а затем ответьте на экранные запросы:
databricks bundle init
Чтобы создать пакет ресурсов Databricks с помощью пользовательского шаблона пакета ресурсов Databricks, выполните следующую bundle init
команду:
databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"
См. также:
- Шаблоны проектов пакета активов Databricks
- Разработка задания в Azure Databricks с помощью пакетов ресурсов Databricks
- Разработка конвейеров разностных динамических таблиц с помощью пакетов ресурсов Databricks
- Пакеты ресурсов Databricks для стеков MLOps
Отображение схемы конфигурации пакета
Чтобы отобразить схему конфигурации пакета, выполните 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 generate
, указав идентификатор или путь к рабочей области для панели мониторинга:
databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]
Путь к рабочей области можно скопировать из пользовательского интерфейса рабочей области.
Например, следующая команда создает новый baby_gender_by_county.dashboard.yml
файл в resources
папке проекта пакета, содержащей YAML ниже, и скачивает файл в baby_gender_by_county.lvdash.json
папку src
проекта.
databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
dashboards:
baby_gender_by_county:
display_name: "Baby gender by county"
warehouse_id: aae11o8e6fe9zz79
file_path: ../src/baby_gender_by_county.lvdash.json
Совет
Чтобы обновить .lvdash.json
файл после развертывания панели мониторинга, используйте --resource
параметр при запуске bundle generate dashboard
для создания этого файла для существующего ресурса панели мониторинга. Для непрерывного опроса и получения обновлений на панели мониторинга используйте --force
параметры и --watch
параметры.
Привязка ресурсов пакета
Эта 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 summary
выводит сводку по удостоверениям и ресурсам пакета, включая глубокие ссылки для ресурсов, чтобы можно было легко перейти к ресурсу в рабочей области Databricks.
databricks bundle summary
В следующем примере выходных данных приводится сводка пакета с именем my_pipeline_bundle
, который определяет задание и конвейер:
Name: my_pipeline_bundle
Target: dev
Workspace:
Host: https://myworkspace.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
Jobs:
my_project_job:
Name: [dev someone] my_project_job
URL: https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
Pipelines:
my_project_pipeline:
Name: [dev someone] my_project_pipeline
URL: https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999
Совет
Вы также bundle open
можете перейти к ресурсу в рабочей области Databricks. См. раздел "Открыть ресурс пакета".
Развертывание пакета
Чтобы развернуть пакет в удаленной рабочей области, выполните 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
параметр, за которым следует пары "ключ-значение", разделенные запятыми, где ключ — имя параметра. Например, следующая команда задает параметр с именем message
HelloWorld
для задания hello_job
:
databricks bundle run --params message=HelloWorld hello_job
Примечание.
Параметры заданий можно передать с помощью параметров задачи задания, но --params
этот параметр является рекомендуемыми способами передачи параметров задания. Ошибка возникает, если параметры задания указаны для задания, не имеющего параметров задания, или если параметры задачи указаны для задания с определенными параметрами задания.
Чтобы отменить и перезапустить существующий запуск задания или обновление конвейера, используйте --restart
этот параметр:
databricks bundle run --restart hello_job
Открытие ресурса пакета
Чтобы перейти к ресурсу пакета в рабочей области, выполните bundle open
команду из корневого каталога проекта пакета, указав открытый ресурс. Если ключ ресурса не указан, эта команда выводит список ресурсов пакета, из которых следует выбрать.
databricks bundle open [resource-key]
Например, следующая команда запускает браузер и переходит к панели мониторинга baby_gender_by_county в пакете в рабочей области Databricks, настроенной для пакета:
databricks bundle open baby_gender_by_county
Уничтожение пакета
Предупреждение
Удаление пакета окончательно удаляет ранее развернутые задания, конвейеры и артефакты пакета. Это действие невозможно отменить.
Чтобы удалить задания, конвейеры и артефакты, которые ранее были развернуты, выполните bundle destroy
команду. Следующая команда удаляет все ранее развернутые задания, конвейеры и артефакты, определенные в файлах конфигурации пакета:
databricks bundle destroy
Примечание.
Удостоверение пакета состоит из имени пакета, целевого объекта пакета и рабочей области. Если вы изменили любой из них, а затем попытаейтесь уничтожить пакет перед развертыванием, возникнет ошибка.
По умолчанию вам будет предложено подтвердить постоянное удаление ранее развернутых заданий, конвейеров и артефактов. Чтобы пропустить эти запросы и выполнить автоматическое постоянное удаление, добавьте --auto-approve
параметр в bundle destroy
команду.