Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
Эта информация относится к Интерфейсу командной строки Databricks версии 0.205 и выше. The Databricks CLI is in Public Preview.
Databricks CLI use is subject to the Databricks License and Databricks Privacy Notice, including any Usage Data provisions.
См. раздел "Что такое пакеты ресурсов Databricks?". Databricks Asset Bundles let you express projects as code and programmatically validate, deploy, and run Azure Databricks workflows such as Azure Databricks jobs, Lakeflow Declarative Pipelines, and MLOps Stacks. See What are Databricks Asset Bundles?.
Создание пакета из шаблона проекта
Чтобы создать пакет ресурсов 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>"
See also:
- Шаблоны проектов пакета активов Databricks
- Разработка задания с помощью пакетов ресурсов Databricks
- Разработка декларативных конвейеров Lakeflow с помощью пакетов ресурсов 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: [email protected]
Path: /Users/[email protected]/.bundle/MyBundle/dev
Validation OK!
Note
Команда bundle validate
выводит предупреждения, если свойства ресурса определены в файлах конфигурации пакета, которые не найдены в схеме соответствующего объекта.
If you only want to output a summary of the bundle's identity and resources, use bundle summary.
Синхронизация дерева пакета с рабочей областью
Команда bundle sync
выполняет одностороннюю синхронизацию изменений файлов пакета из локального каталога файловой системы в каталог в удаленной рабочей области Azure Databricks.
Note
bundle sync
команды не могут синхронизировать изменения файлов из каталога в удаленной рабочей области Azure Databricks, обратно в каталог в локальной файловой системе.
databricks bundle sync
команды работают так же, как databricks sync
команды и предоставляются в качестве удобства для повышения производительности. Сведения об использовании команды см. команду sync
.
Создание файла конфигурации пакета
Команда bundle generate
создает конфигурацию для ресурса, который уже существует в рабочей области Databricks. Поддерживаются следующие ресурсы:
По умолчанию эта команда создает *.yml
файл для ресурса в resources
папке проекта пакета, а также загружает все файлы, такие как записные книжки, на которые ссылается конфигурация.
Important
Эта bundle generate
команда предоставляется в качестве удобства для автоматического создания конфигурации ресурсов. Однако, когда конфигурация ресурсов включена в пакет и развернута, создается новый ресурс, и существующий ресурс не обновляется, если предварительно не было использовано bundle deployment bind
. См. Привязка ресурса пакета.
Создание конфигурации приложения
Чтобы создать конфигурацию для существующего приложения в рабочей области, выполните команду bundle generate app
, указав имя приложения в рабочей области:
databricks bundle generate app --existing-app-name [app-name]
You can get the app name from the Compute>Apps tab of the workspace UI.
Например, следующая команда создает новый hello_world.app.yml
файл в resources
папке проекта пакета и загружает файлы кода приложения, такие как файл app.yaml
конфигурации команды приложения и главный app.py
. По умолчанию файлы кода копируются в папку пакета src
.
databricks bundle generate app --existing-app-name "hello_world"
# This is the contents of the resulting /resources/hello-world.app.yml file.
resources:
apps:
hello_world:
name: hello-world
description: A basic starter application.
source_code_path: ../src/app
Создание конфигурации панели мониторинга
Чтобы создать конфигурацию для существующей панели мониторинга в рабочей области, выполните команду bundle generate dashboard
, указав идентификатор или путь к рабочей области для панели мониторинга:
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/[email protected]/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
Tip
Чтобы обновить .lvdash.json
файл после развертывания панели мониторинга, используйте --resource
параметр при запуске bundle generate dashboard
для создания этого файла для существующего ресурса панели мониторинга. Для непрерывного опроса и получения обновлений в панели мониторинга используйте --force
и --watch
.
Создание задания или конфигурации конвейера
Чтобы создать конфигурацию для задания или конвейера, выполните bundle generate job
команду или bundle generate pipeline
команду:
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
Note
В настоящее время поддерживаются только задания с задачами записной книжки этой командой.
Например, следующая команда создает новый 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:
hello_job:
name: 'Hello Job'
tasks:
- task_key: run_notebook
email_notifications: {}
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]
Привязка не пересоздает данные. Например, если к конвейеру с данными в каталоге было применено связывание, можно развернуть на этом конвейере без потери существующих данных. Кроме того, вам не нужно перекомпьютировать материализованное представление, например, поэтому конвейеры не должны повторно запускаться.
Команда привязки должна использоваться с флагом --target
. Например, привяжите ваше производственное развертывание к производственному конвейеру с помощью databricks bundle deployment bind --target prod my_pipeline 7668611149d5709ac9-2906-1229-9956-586a9zed8929
Tip
Рекомендуется подтвердить ресурс в рабочей области перед выполнением привязки.
Привязка поддерживается для следующих ресурсов:
- app
- cluster
- dashboard
- job
- model_serving_endpoint
- pipeline
- quality_monitor
- registered_model
- schema
- volume
Следующая команда привязывает ресурс hello_job
к удаленному коллеге в рабочей области. Команда выводит дифф и позволяет запретить привязку ресурсов, но при подтверждении все обновления определения задания в пакете применяются к соответствующему удаленному заданию при следующем развертывании пакета.
databricks bundle deployment bind hello_job 6565621249
Отмена привязки ресурса пакета
Если вы хотите удалить связь между ресурсом в пакете и его удаленным коллегой в рабочей области, используйте bundle deployment unbind
следующую команду:
databricks bundle deployment unbind [resource-key]
Например, чтобы отменить привязку hello_job
ресурса:
databricks bundle deployment unbind hello_job
Вывод итогового отчета о пакете
Команда bundle summary
выводит сводку об идентификаторе и ресурсах пакета, включая глубокие ссылки на ресурсы, чтобы можно было легко перейти к ресурсу в рабочей области Databricks.
databricks bundle summary
В следующем примере выходных данных приводится сводка пакета с именем my_pipeline_bundle
, который определяет задание и конвейер:
Name: my_pipeline_bundle
Target: dev
Workspace:
Host: https://myworkspace.cloud.databricks.com
User: [email protected]
Path: /Users/[email protected]/.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
Tip
Вы также можете использовать 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
Проверка конвейера
If you want to do a pipeline validation run, use the --validate-only
option, as shown in the following example:
databricks bundle run --validate-only my_pipeline
Передача параметров задания
To pass job parameters, use the --params
option, followed by comma-separated key-value pairs, where the key is the parameter name. Например, следующая команда задает параметр с именем message
HelloWorld
для задания hello_job
:
databricks bundle run --params message=HelloWorld hello_job
Note
Параметры задания можно передать, используя параметры задачи, но вариант --params
является рекомендуемым методом передачи параметров задания. Ошибка возникает, если параметры задания указаны для задания, не имеющего параметров задания, или если параметры задачи указаны для задания с определенными параметрами задания.
Отменить запуск
Чтобы отменить и перезапустить существующий запуск задания или обновление конвейера, используйте этот параметр --restart
.
databricks bundle run --restart hello_job
Выполнение скриптов
Для выполнения сценариев, таких как тесты интеграции с настроенными учетными данными проверки подлинности пакета, можно выполнить встроенные скрипты или запустить скрипт, определенный в конфигурации пакета. Скрипты выполняются с помощью того же контекста проверки подлинности, настроенного в пакете.
Добавьте двойной дефис (
--
) послеbundle run
, чтобы запускать скрипты встраиваемо. Например, следующая команда выводит текущий рабочий каталог текущего пользователя:databricks bundle run -- python3 -c 'import os; print(os.getcwd())'
Или определите скрипт в рамках
scripts
сопоставления в конфигурации вашего пакета, а затем используйтеbundle run
для запуска скрипта.scripts: my_script: content: python3 -c 'import os; print(os.getcwd())'
databricks bundle run my_script
For more information about
scripts
configuration, see scripts and scripts.
Сведения о проверке подлинности пакета передаются дочерним процессам с помощью переменных среды. Ознакомьтесь с унифицированной проверкой подлинности клиента Databricks.
Открытие ресурса в рабочей области
Чтобы перейти к ресурсу пакета в рабочей области, выполните команду bundle open
из корневого каталога проекта пакета, указав ресурс, который нужно открыть. Если ключ ресурса не указан, эта команда выводит список ресурсов пакета, из которых следует выбрать.
databricks bundle open [resource-key]
Например, следующая команда запускает браузер и переходит к панели мониторинга baby_gender_by_county из пакета в рабочей области Databricks, которая настроена для этого пакета.
databricks bundle open baby_gender_by_county
Уничтожьте пакет
Warning
Уничтожение пакета окончательно удаляет все ранее развернутые задания, конвейеры и артефакты. Это действие невозможно отменить.
Чтобы удалить задания, конвейеры и артефакты, которые ранее были развернуты, выполните bundle destroy
команду. Следующая команда удаляет все ранее развернутые задания, конвейеры и артефакты, определенные в файлах конфигурации пакета:
databricks bundle destroy
Note
Идентифицирующими элементами пакета являются имя пакета, назначение пакета и рабочая область. Если вы изменили любой из них, а затем попытаейтесь уничтожить пакет перед развертыванием, возникнет ошибка.
По умолчанию вам будет предложено подтвердить постоянное удаление ранее развернутых заданий, платформ и артефактов. Чтобы пропустить эти запросы и выполнить автоматическое постоянное удаление, добавьте --auto-approve
параметр в bundle destroy
команду.