Ресурсы пакетов Databricks.
Пакеты ресурсов Databricks позволяют указать сведения о ресурсах Azure Databricks, используемых пакетом в сопоставлении resources
в конфигурации пакета. См. сопоставление ресурсов с и ключевую справку по ресурсам .
В этой статье описаны поддерживаемые типы ресурсов для пакетов и приведены подробные сведения и пример для каждого поддерживаемого типа. Дополнительные примеры см. в примерах конфигурации пакета .
Совет
Чтобы создать YAML для любого существующего ресурса, используйте команду databricks bundle generate
. См. создание файла конфигурации пакета.
поддерживаемые ресурсы
В следующей таблице перечислены поддерживаемые типы ресурсов для пакетов. Некоторые ресурсы можно создать, определив их в пакете и развернув пакет, и некоторые ресурсы поддерживают только ссылку на существующий ресурс для включения в пакет.
Ресурсы определяются с помощью соответствующей REST API Databricks, полезных данных запроса на создание операции объекта, где поддерживаемые поля объекта, выраженные как YAML, являются поддерживаемыми свойствами ресурса. Ссылки на документацию для соответствующих данных нагрузки каждого ресурса приведены в таблице.
Совет
Команда databricks bundle validate
возвращает предупреждения, если неизвестные свойства ресурсов находятся в файлах конфигурации пакета.
Ресурс | Создание поддержки | Соответствующий объект REST API |
---|---|---|
приложения | ✓ | объект приложения |
кластера | ✓ | объект кластера |
панели мониторинга | объект панели мониторинга | |
эксперимент | ✓ | Экспериментальный объект |
работа | ✓ | объект Job |
Модель (устаревшая версия) | ✓ | Модель (устаревшая версия) объекта |
модельная_точка_обслуживания | ✓ | объект конечной точки службы модели |
конвейера | ✓ | [объект Pipeline](https://docs.databricks.com/api/azure/workspace/pipelines/create) |
quality_monitor | ✓ | объект монитора качества |
registered_model (каталог Unity) | ✓ | зарегистрированный объект модели |
схемы (каталог Unity) | ✓ | объект схемы |
том (Unity Catalog) | ✓ | объект тома |
приложение
Ресурс приложения определяет приложение Databricks . Сведения о приложениях Databricks см. в разделе Что такое приложения Databricks?.
Совет
Вы можете инициализировать пакет с приложением Streamlit Databricks с помощью следующей команды:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Чтобы добавить приложение, укажите поля объектов , определяющие приложение, а также следующие:
-
source_code_path
—./app
локальный путь исходного кода приложения Databricks. Это поле является обязательным. -
config
— команды конфигурации приложения и переменные среды. Это можно использовать для указания различных целевых объектов развертывания приложений.
Пример
В следующем примере создается приложение с именем my_app
, которое управляет заданием, созданным пакетом:
resources:
jobs:
# Define a job in the bundle
hello_world:
name: hello_world
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
environment_key: default
environments:
- environment_key: default
spec:
client: "1"
# Define an app that manages the job in the bundle
apps:
job_manager:
name: "job_manager_app"
description: "An app which manages a job created by this bundle"
# The location of the source code for the app
source_code_path: ../src/app
# The configuration for running the app
config:
command:
- flask
- --app
- app
- run
- --debug
env:
- name: JOB_ID
value: ${resources.jobs.hello_world.id}
# The resources in the bundle which this app has access to. This binds the resource in the app with the DABs resource.
resources:
- name: "app-job"
job:
id: ${resources.jobs.hello_world.id}
permission: "CAN_MANAGE_RUN"
Полный пакет примеров приложения Databricks см. в репозитории GitHub.
кластер
Ресурс кластера определяет универсальный кластер .
Пример
В следующем примере создается кластер с именем my_cluster
, который затем используется для запуска ноутбука в my_job
.
bundle:
name: clusters
resources:
clusters:
my_cluster:
num_workers: 2
node_type_id: "i3.xlarge"
autoscale:
min_workers: 2
max_workers: 7
spark_version: "13.3.x-scala2.12"
spark_conf:
"spark.executor.memory": "2g"
jobs:
my_job:
tasks:
- task_key: test_task
notebook_task:
notebook_path: "./src/my_notebook.py"
панель управления
Ресурс панели мониторинга позволяет управлять панелями мониторинга AI/BI в пакете. Сведения о панелях мониторинга AI/BI см. в панелях мониторинга.
Пример
Следующий пример включает и развертывает пример анализ поездки на такси Нью-Йорка панели мониторинга в рабочей области Databricks.
resources:
dashboards:
nyc_taxi_trip_analysis:
display_name: "NYC Taxi Trip Analysis"
file_path: ../src/nyc_taxi_trip_analysis.lvdash.json
warehouse_id: ${var.warehouse_id}
Если вы используете пользовательский интерфейс для изменения панели мониторинга, изменения, внесенные с помощью пользовательского интерфейса, не применяются к JSON-файлу панели мониторинга в локальном пакете, если вы явно не обновите его с помощью bundle generate
. Вы можете использовать параметр --watch
для непрерывного опроса и получения изменений на панели мониторинга. См. создание файла конфигурации пакета.
Кроме того, при попытке развернуть пакет, содержащий JSON-файл панели мониторинга, отличный от файла JSON в удаленной рабочей области, возникнет ошибка. Чтобы выполнить развертывание и перезаписать панель мониторинга в удаленной рабочей области с локальной версией, используйте параметр --force
. См. раздел Развертывание пакета.
эксперимент
Ресурс эксперимента позволяет определить эксперименты MLflow в пакете. Сведения об экспериментах MLflow см. в разделе Упорядочить тренировочные запуски с помощью экспериментов MLflow.
Пример
В следующем примере определяется эксперимент, который могут просматривать все пользователи:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
работа
Ресурс задания позволяет определить задания и соответствующие задачи в вашем пакете. Сведения о заданиях см. в разделе Расписания и оркестрации рабочих процессов. Руководство по созданию задания с помощью шаблона наборов ресурсов Databricks см. в статье Разработка задания в Azure Databricks с помощью пакетов ресурсов Databricks.
Пример
В следующем примере определяется задание с ключом ресурса hello-job
с одной задачей блокнота:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
Сведения об определении задач и переопределении параметров заданий см. в разделе "Добавление задач в задания" в пакетах ресурсов Databricks, "Переопределение параметров задач" в пакетах ресурсов Databricksи "Переопределение параметров кластера" в пакетах ресурсов Databricks.
модель (устаревшая версия)
Ресурс модели позволяет определять устаревшие модели в пакетах. Databricks рекомендует вместо этого использовать зарегистрированные модели в каталоге Unity
model_serving_endpoint
Ресурс model_serving_endpoint позволяет определить модели обслуживания конечных точек. См. раздел Управление конечными точками обслуживания моделей.
Пример
В следующем примере определяется конечная точка обслуживания модели каталога Unity:
resources:
model_serving_endpoints:
uc_model_serving_endpoint:
name: "uc-model-endpoint"
config:
served_entities:
- entity_name: "myCatalog.mySchema.my-ads-model"
entity_version: "10"
workload_size: "Small"
scale_to_zero_enabled: "true"
traffic_config:
routes:
- served_model_name: "my-ads-model-10"
traffic_percentage: "100"
tags:
- key: "team"
value: "data science"
quality_monitor (каталог Unity)
Ресурс quality_monitor позволяет определить монитор таблицы каталога Unity. Сведения о мониторах см. в разделе Мониторинг качества модели и работоспособности конечных точек.
Пример
В следующем примере определяется монитор качества:
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
inference_log:
granularities: [1 day]
model_id_col: model_id
prediction_col: prediction
label_col: price
problem_type: PROBLEM_TYPE_REGRESSION
timestamp_col: timestamp
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
зарегистрированная модель (каталог Unity)
Ресурс зарегистрированной модели позволяет определять модели в каталоге Unity. Сведения о зарегистрированных моделях в каталоге Unity смотрите в статье Управление жизненным циклом модели в каталоге Unity.
Пример
В следующем примере определяется зарегистрированная модель в каталоге Unity:
resources:
registered_models:
model:
name: my_model
catalog_name: ${bundle.target}
schema_name: mlops_schema
comment: Registered model in Unity Catalog for ${bundle.target} deployment target
grants:
- privileges:
- EXECUTE
principal: account users
трубопровод
Ресурс конвейера позволяет создавать динамические таблицы delta конвейеров. Сведения о конвейерах см. в разделе Что такое Delta Live Tables?. Руководство, использующее шаблон наборов ресурсов Databricks для создания конвейера, см. в статье Разработка конвейеров разностных динамических таблиц с помощью пакетов ресурсов Databricks.
Пример
В следующем примере определяется конвейер с ключом ресурса hello-pipeline
:
resources:
pipelines:
hello-pipeline:
name: hello-pipeline
clusters:
- label: default
num_workers: 1
development: true
continuous: false
channel: CURRENT
edition: CORE
photon: false
libraries:
- notebook:
path: ./pipeline.py
схема (каталог Unity)
Тип ресурса схемы позволяет определять схемы каталога Unity для таблиц и других ресурсов в рабочих процессах и конвейерах, созданных в составе пакета. Схема, отличная от других типов ресурсов, имеет следующие ограничения:
- Владелец ресурса схемы всегда является пользователем развертывания и не может быть изменен. Если
run_as
указан в пакете, он будет игнорироваться операциями схемы. - Доступны только поля, поддерживаемые соответствующим объектом schemas create API для ресурса схемы. Например,
enable_predictive_optimization
не поддерживается, так как он доступен только в API обновления.
Примеры
В следующем примере определяется конвейер с ключом ресурса my_pipeline
, который создает схему каталога Unity с ключом my_schema
в качестве целевого объекта:
resources:
pipelines:
my_pipeline:
name: test-pipeline-{{.unique_id}}
libraries:
- notebook:
path: ./nb.sql
development: true
catalog: main
target: ${resources.schemas.my_schema.id}
schemas:
my_schema:
name: test-schema-{{.unique_id}}
catalog_name: main
comment: This schema was created by DABs.
Сопоставление грантов верхнего уровня не поддерживается пакетами Asset Bundles Databricks, поэтому, если вы хотите задать гранты для схемы, определите гранты для схемы в сопоставлении schemas
. Для получения дополнительной информации о правах доступа см. раздел Показать, предоставить и отозвать привилегии.
В следующем примере определяется схема каталога Unity с грантами:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- CAN_MANAGE
- principal: my_team
privileges:
- CAN_READ
catalog_name: main
том (каталог Unity)
Тип ресурса тома позволяет определять и создавать тома каталога Unity в составе пакета. При развертывании пакета с определенным томом обратите внимание:
- Нельзя ссылаться на том в
artifact_path
пакета, пока он не будет существовать в рабочей области. Таким образом, если вы хотите использовать пакеты ресурсов Databricks для создания тома, сначала необходимо определить том в пакете, развернуть его для создания тома, а затем ссылаться на него вartifact_path
в последующих развертываниях. - Тома в наборе не получают префикс
dev_${workspace.current_user.short_name}
, если для целевого объекта для развертывания настроенmode: development
. Однако этот префикс можно настроить вручную. См. пользовательские предустановки.
Пример
В следующем примере создается том каталога Unity с ключом my_volume
:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Пример пакета, который выполняет задание, записываемое в файл в томе каталога Unity, см. в репозитории GitHub.