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


Ресурсы пакетов Databricks.

Пакеты ресурсов Databricks позволяют указать информацию о ресурсах Azure Databricks, которые используются в рамках пакета, при помощи сопоставления resources в конфигурации пакета. См. сопоставление ресурсов и справку по ключам ресурсов.

В этой статье описаны поддерживаемые типы ресурсов для пакетов и приведены подробные сведения и пример для каждого поддерживаемого типа. Дополнительные примеры см. в примерах конфигурации пакета .

Совет

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

поддерживаемые ресурсы

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

Ресурсы определяются с помощью полезных данных запроса на создание соответствующего объекта REST API Databricks, где поддерживаемые поля объекта, заданные в формате YAML, являются поддерживаемыми свойствами ресурса. Ссылки на документацию для соответствующих полезных нагрузок каждого ресурса представлены в таблице.

Совет

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

Ресурс Соответствующий объект REST API
приложения объект приложения
кластер объект кластера
панели мониторинга объект панели мониторинга
эксперимент Экспериментальный объект
работа объект работы
Модель (устаревшая версия) Модель (устаревшая версия) объекта
служебная_конечная_точка_модели объект конечной точки обслуживания модели
пайплайн объект конвейера
монитор качества объект контроля качества
registered_model (каталог Unity) зарегистрированный объект модели
схема (каталог Unity) объект схемы
секретная_область Объект области секрета
объём данных (Unity Catalog) объект объёма

приложение

Type: Map

Ресурс приложения определяет приложение Databricks . Сведения о приложениях Databricks см. в разделе "Приложения Databricks".

Чтобы добавить приложение, укажите параметры для определения приложения, включая необходимые source_code_path.

Совет

Вы можете инициализировать пакет с приложением Streamlit Databricks с помощью следующей команды:

databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
apps:
  <app-name>:
    <app-field-name>: <app-field-value>
Ключ Тип Описание
budget_policy_id Струна Идентификатор политики бюджета для приложения.
config Карта Устарело. Определите команды конфигурации приложения и переменные среды в app.yaml файле. См. раздел "Настройка приложения Databricks".
description Струна Описание приложения.
name Струна Имя приложения. Имя должно содержать только буквенно-цифровые символы нижнего регистра и дефисы. Он должен быть уникальным в рабочей области.
permissions Последовательность Разрешения приложения. Просмотр разрешений.
resources Последовательность Вычислительные ресурсы приложения. См. apps.name.resources.
source_code_path Струна Локальный ./app путь исходного кода приложения Databricks. Это поле является обязательным.
user_api_scopes Последовательность Диапазоны пользовательского API.

приложения.name.ресурсы

Type: Sequence

Вычислительные ресурсы для приложения.

Ключ Тип Описание
description Струна Описание ресурса приложения.
job Карта Настройки, определяющие ресурс, используемый для задания. См. "resources.job".
name Струна Имя ресурса приложения.
secret Карта Секретные настройки. См. resources.secret.
serving_endpoint Карта Параметры, определяющие используемый ресурс конечной точки обслуживания. См. resources.serving_endpoint.
sql_warehouse Карта Параметры, определяющие используемый ресурс хранилища. См. resources.sql_warehouse.

Пример

В следующем примере создается приложение с именем 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 resources in the bundle which this app has access to. This binds the resource in the app with the bundle resource.
      resources:
        - name: 'app-job'
          job:
            id: ${resources.jobs.hello_world.id}
            permission: 'CAN_MANAGE_RUN'

app.yaml Соответствующий определяет конфигурацию для запуска приложения:

command:
  - flask
  - --app
  - app
  - run
  - --debug
env:
  - name: JOB_ID
    valueFrom: 'app-job'

Полный пакет примеров приложения Databricks см. в репозитории GitHub.

кластер

Type: Map

Ресурс кластера определяет кластер.

clusters:
  <cluster-name>:
    <cluster-field-name>: <cluster-field-value>
Ключ Тип Описание
apply_policy_default_values Булев Если задано значение true, фиксированные и значения по умолчанию из политики будут использоваться для полей, которые опущены. Если задано значение false, будут применены только фиксированные значения из политики.
autoscale Карта Параметры, необходимые для автоматического масштабирования кластеров вверх и вниз на основе нагрузки. См. автомасштабирование.
autotermination_minutes Целое число Автоматически завершает кластер после его бездействия в течение указанного времени в минутах. Если параметры этого кластера не установлены, он не будет автоматически завершен. Если задано, пороговое значение должно составлять от 10 до 10000 минут. Пользователи также могут задать для этого значения значение 0, чтобы явно отключить автоматическое завершение.
aws_attributes Карта Атрибуты, связанные с кластерами, работающими в Amazon Web Services. Если при создании кластера не указано, будет использоваться набор значений по умолчанию. См. aws_attributes.
azure_attributes Карта Атрибуты, связанные с кластерами, работающими в Microsoft Azure. Если при создании кластера не указано, будет использоваться набор значений по умолчанию. См. azure_attributes.
cluster_log_conf Карта Конфигурация доставки журналов Spark в долгосрочное место хранения. См. cluster_log_conf.
cluster_name Струна Имя кластера, запрошенное пользователем. Это не обязательно должно быть уникальным. Если он не указан при создании, имя кластера будет пустой строкой.
custom_tags Карта Дополнительные теги для ресурсов кластера. Databricks пометит все ресурсы кластера (например, экземпляры AWS и тома EBS) этими тегами, а также дополнительными default_tags. См. custom_tags.
data_security_mode Струна Модель управления данными, используемая при доступе к данным из кластера. См. data_security_mode.
docker_image Карта Пользовательский образ Docker. См. docker_image.
driver_instance_pool_id Струна Необязательный идентификатор пула экземпляров, к которому принадлежит драйвер кластера. Кластер пула использует пул экземпляров с идентификатором (instance_pool_id), если пул драйверов не назначен.
driver_node_type_id Струна Тип узла драйвера Spark. Обратите внимание, что это поле является необязательным; если не установлено, тип узла драйвера будет задан как значение node_type_id, определенное выше. Это поле вместе с node_type_id не следует задавать, если virtual_cluster_size задано. Если указаны оба driver_node_type_id, node_type_id и virtual_cluster_size, driver_node_type_id и node_type_id имеют приоритет.
enable_elastic_disk Булев Автоматическое масштабирование локального хранилища: когда включено, этот кластер динамически получает дополнительное дисковое пространство, если пользователи Spark испытывают недостаток места на диске. Для правильной работы этой функции требуются определенные разрешения AWS. Дополнительные сведения см. в руководстве пользователя.
enable_local_disk_encryption Булев Включение LUKS на локальных дисках виртуальных машин кластера
gcp_attributes Карта Атрибуты, связанные с кластерами, работающими на Google Cloud Platform. Если при создании кластера не указано, будет использоваться набор значений по умолчанию. См. gcp_attributes.
init_scripts Последовательность Конфигурация для хранения скриптов инициализации. Можно указать любое количество мест назначения. Скрипты выполняются последовательно в указанном порядке. См. init_scripts.
instance_pool_id Струна Необязательный идентификатор пула экземпляров, к которому принадлежит кластер.
is_single_node Булев Это поле можно использовать только в том случае kind = CLASSIC_PREVIEW. Если задано значение true, Databricks автоматически устанавливает параметры, связанные с одним узлом custom_tags, spark_conf, и num_workers
kind Струна Тип вычислений, описанных в этой спецификации вычислений.
node_type_id Струна Используя отдельное значение, это поле кодирует доступные ресурсы для каждого узла Spark в этом кластере. Например, узлы Spark могут быть подготовлены и оптимизированы для операций в памяти или для ресурсоемких рабочих нагрузок. Список доступных типов узлов можно получить с помощью вызова API :method:clusters/listNodeTypes.
num_workers Целое число Необходимое число рабочих узлов текущего кластера. В кластере есть один драйвер Spark и num_workers исполнитель, всего num_workers + 1 узлов Spark.
permissions Последовательность Разрешения кластера. Просмотр разрешений.
policy_id Струна Идентификатор политики кластера, используемой для создания кластера, если это применимо.
runtime_engine Струна Определяет движок выполнения кластера, либо STANDARD, либо PHOTON.
single_user_name Струна Имя одного пользователя, если data_security_mode SINGLE_USER
spark_conf Карта Объект с набором необязательных, определяемых пользователем пар "ключ-значение" в конфигурации Spark. Пользователи также могут передавать строку дополнительных параметров JVM драйверу и обработчикам через spark.driver.extraJavaOptions и spark.executor.extraJavaOptions соответственно. См. spark_conf.
spark_env_vars Карта Объект, содержащий набор необязательных пар "ключ-значение", определяемых пользователем переменных среды.
spark_version Струна Версия Кластера Spark, например 3.3.x-scala2.11. Список доступных версий Spark можно получить с помощью вызова API :method:clusters/sparkVersions.
ssh_public_keys Последовательность Содержимое открытого ключа SSH, которое будет добавлено на каждый узел Spark в этом кластере. Соответствующие закрытые ключи можно использовать для входа с именем ubuntu пользователя через порт 2200. Можно указать до 10 ключей.
use_ml_runtime Булев Это поле можно использовать только в том случае kind = CLASSIC_PREVIEW. effective_spark_version определяется spark_version (выпуск DBR), это поле use_ml_runtimeи является ли node_type_id узел gpu или нет.
workload_type Карта Атрибуты кластера, отображающие типы рабочих нагрузок кластеров. См. workload_type.

Примеры

В следующем примере создается выделенный (один пользователь) кластер для текущего пользователя с Databricks Runtime 15.4 LTS и политикой кластера:

resources:
  clusters:
    my_cluster:
      num_workers: 0
      node_type_id: 'i3.xlarge'
      driver_node_type_id: 'i3.xlarge'
      spark_version: '15.4.x-scala2.12'
      spark_conf:
        'spark.executor.memory': '2g'
      autotermination_minutes: 60
      enable_elastic_disk: true
      single_user_name: ${workspace.current_user.userName}
      policy_id: '000128DB309672CA'
      enable_local_disk_encryption: false
      data_security_mode: SINGLE_USER
      runtime_engine": STANDARD

В этом примере создается простой кластер 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'
          existing_cluster_id: ${resources.clusters.my_cluster.id}

информационная панель

Type: Map

Ресурс панели мониторинга позволяет управлять панелями мониторинга AI/BI в пакете. Сведения о панелях мониторинга AI/BI см. в панелях мониторинга.

Замечание

При использовании наборов ресурсов Databricks с поддержкой Git для панелей мониторинга, предотвратите создание повторяющихся панелей, добавив правило синхронизации, которое исключает синхронизацию панелей мониторинга в виде файлов.

sync:
  exclude:
    - src/*.lvdash.json
dashboards:
  <dashboard-name>:
    <dashboard-field-name>: <dashboard-field-value>
Ключ Тип Описание
display_name Струна Отображаемое имя панели мониторинга.
etag Струна Etag для панели мониторинга. При обновлении можно при необходимости обеспечить, чтобы панель мониторинга не была изменена с момента последнего чтения.
file_path Струна Локальный путь к ресурсу панели мониторинга, включая имя файла. Экспортированные панели мониторинга всегда имеют расширение .lvdash.jsonфайла.
permissions Последовательность Разрешения панели мониторинга. Просмотр разрешений.
serialized_dashboard Любое Содержимое панели мониторинга в сериализованной строковой форме.
warehouse_id Струна Идентификатор хранилища, используемый для запуска панели мониторинга.

Пример

Пример ниже демонстрирует и развертывает образец панели мониторинга NYC Taxi Trip Analysis в рабочей области 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. См. раздел Развертывание пакета.

эксперимент

Type: Map

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

experiments:
  <experiment-name>:
    <experiment-field-name>: <experiment-field-value>
Ключ Тип Описание
artifact_location Струна Расположение, в котором хранятся артефакты для эксперимента.
name Струна Понятное имя, определяющее эксперимент.
permissions Последовательность Разрешения эксперимента. Просмотр разрешений.
tags Последовательность Дополнительные пары "ключ-значение" метаданных. См. теги.

Пример

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

resources:
  experiments:
    experiment:
      name: my_ml_experiment
      permissions:
        - level: CAN_READ
          group_name: users
      description: MLflow experiment used to track runs

работа

Type: Map

Ресурс задания позволяет вам определить работы и их соответствующие задачи в вашем пакете. Сведения о заданиях см. в разделе "Задания Lakeflow". Учебник, использующий шаблон наборов ресурсов Databricks для создания задания, см. в разделе "Разработка задания с помощью пакетов активов Databricks".

jobs:
  <job-name>:
    <job-field-name>: <job-field-value>
Ключ Тип Описание
budget_policy_id Струна Идентификатор указанной пользователем политики бюджета, используемой для этого задания. Если не указано, при создании или изменении задания может применяться политика бюджета по умолчанию. Смотрите effective_budget_policy_id для ознакомления с политикой бюджета, используемой данной рабочей нагрузкой.
continuous Карта Необязательное непрерывное свойство для этого задания. Непрерывное свойство гарантирует, что всегда выполняется одно выполнение. Можно использовать только один из schedule и continuous. См. непрерывный просмотр.
deployment Карта Сведения о развертывании заданий, управляемых внешними источниками. См. развертывание.
description Струна Необязательное описание задания. Максимальная длина — 27700 символов в кодировке UTF-8.
edit_mode Струна Режим редактирования задания либо UI_LOCKED либо EDITABLE.
email_notifications Карта Необязательный набор адресов электронной почты, который уведомляется при запуске или завершении задания, а также при его удалении. См. email_notifications.
environments Последовательность Список спецификаций среды выполнения задач, на которые можно ссылаться бессерверными задачами этого задания. Среда должна присутствовать для бессерверных задач. Для бессерверных задач записной книжки среда доступна на панели среды записной книжки. Для других бессерверных задач необходимо указать среду задач с помощью environment_key в параметрах задач. См. среды.
format Струна Формат задания.
git_source Карта Необязательная спецификация для удаленного репозитория Git, содержащего исходный код, используемый задачами.
Важно: Поле git_source и поле задачи source, установленное в GIT, не рекомендуется использовать для пакетов, так как локальные относительные пути могут не указывать на одно и то же содержимое в репозитории Git, а пакеты ожидают, что развернутое задание имеет такое же содержимое, как и локальная копия, из которой оно было развернуто.
Вместо этого клонируйте репозиторий локально и настройте проект сборки в этом репозитории, чтобы источник задач был частью рабочей области.
health Карта Необязательный набор правил здоровья, которые можно определить для этой работы. См. здоровье.
job_clusters Последовательность Список спецификаций кластера заданий, которые могут совместно использоваться и повторно использоваться в задачах этой работы. См. кластеры.
max_concurrent_runs Целое число Максимально допустимое количество (необязательно) параллельных процессов выполнения задания. Задайте это значение, если требуется одновременное выполнение нескольких процессов выполнения одного и того же задания. См. max_concurrent_runs.
name Струна Опциональное имя для задания. Максимальная длина — 4096 байт в кодировке UTF-8.
notification_settings Карта Необязательные параметры уведомлений, используемые при отправке уведомлений в каждую из email_notifications и webhook_notifications для этой задачи. См. notification_settings.
parameters Последовательность Определения параметров уровня задания. См . параметры.
performance_target Струна PerformanceTarget определяет, как должна быть производительной или экономичной реализация выполнения без сервера.
permissions Последовательность Разрешения работы. Просмотр разрешений.
queue Карта Параметры очереди задания. См . очередь.
run_as Карта Параметр только для записи. Указывает пользователя или служебного принципала, под именем которого выполняется задание. Если задание не указано, задание выполняется от имени пользователя, создавшего задание. Необходимо указать либо user_name, либо service_principal_name. В противном случае возникает ошибка. См. Задайте идентификатор выполнения для рабочего процесса пакетов ресурсов Databricks.
schedule Карта Расписание (необязательно) с периодическим выполнением этого задания. Поведение по умолчанию заключается в том, что задание выполняется только при активации, щелкнув "Запустить сейчас" в пользовательском интерфейсе заданий или отправив запрос API в runNow. См. расписание.
tags Карта Карта тегов, связанных с заданием. Они перенаправляются в кластер в виде тегов кластера для кластеров заданий и имеют те же ограничения, что и теги кластера. В задание можно добавить не более 25 тегов.
tasks Последовательность Список спецификаций задач, выполняемых этим заданием. См. "Добавление задач в задания в пакетах ресурсов Databricks".
timeout_seconds Целое число Необязательное время ожидания, применяемое к каждому запуску этой задачи. Значение 0 означает, что время ожидания не истекло.
trigger Карта Конфигурация для активации запуска при выполнении определенных условий. См. триггер.
webhook_notifications Карта Коллекция идентификаторов системных уведомлений для оповещения о начале или завершении выполнения каждого запуска этого задания. См. webhook_notifications.

Примеры

В следующем примере описывается задание с ключом ресурса hello-job с одной задачей в блокноте.

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          notebook_task:
            notebook_path: ./hello.py

В следующем примере определяется задание с записной книжкой SQL:

resources:
  jobs:
    job_with_sql_notebook:
      name: 'Job to demonstrate using a SQL notebook with a SQL warehouse'
      tasks:
        - task_key: notebook
          notebook_task:
            notebook_path: ./select.sql
            warehouse_id: 799f096837fzzzz4

Дополнительные примеры конфигурации заданий см. в разделе "Конфигурация задания".

Сведения об определении задач задания и переопределении параметров задания см. в следующем разделе:

модель (устаревшая версия)

Type: Map

Ресурс модели позволяет определять устаревшие модели в пакетах. Databricks рекомендует вместо этого использовать зарегистрированные модели в каталоге Unity.

конечная_точка_обслуживания_моделей

Type: Map

Ресурс model_serving_endpoint позволяет определить модели обслуживания конечных точек. См. раздел Управление конечными точками обслуживания моделей.

model_serving_endpoints:
  <model_serving_endpoint-name>:
    <model_serving_endpoint-field-name>: <model_serving_endpoint-field-value>
Ключ Тип Описание
ai_gateway Карта Конфигурация шлюза ИИ для конечной точки обслуживания. ПРИМЕЧАНИЕ. В настоящее время поддерживаются только внешние модели и подготовленные конечные точки пропускной способности. См. ai_gateway.
config Карта Базовая конфигурация конечной точки обслуживания. См. конфигурацию.
name Струна Имя конечной точки обслуживания. Это поле является обязательным и должно быть уникальным в рабочей области Databricks. Имя конечной точки может состоять из буквенно-цифровых символов, дефисов и символов подчеркивания.
permissions Последовательность Разрешения конечной точки обслуживания модели. Просмотр разрешений.
rate_limits Последовательность Устарело. Ограничения скорости, применяемые к конечной точке обслуживания. Используйте шлюз искусственного интеллекта для управления ограничениями скорости.
route_optimized Булев Включите оптимизацию маршрута для конечной точки обслуживания.
tags Последовательность Теги, которые прикрепляются к точке доступа обслуживания и автоматически распространяются в журналы выставления счетов. См. теги.

Пример

В следующем примере определяется конечная точка обслуживания модели каталога 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'

конвейер

Type: Map

Ресурс конвейера позволяет создавать конвейеры Декларативных конвейеров Lakeflow. Сведения о конвейерах см. в разделе "Декларативные конвейеры Lakeflow". Руководство по созданию конвейера с помощью шаблона наборов ресурсов Databricks см. в разделе "Разработка декларативных конвейеров Lakeflow с помощью пакетов активов Databricks".

pipelines:
  <pipeline-name>:
    <pipeline-field-name>: <pipeline-field-value>
Ключ Тип Описание
allow_duplicate_names Булев Если установлено значение false, развертывание завершится ошибкой, если имя конфликтует с именем другого конвейера.
catalog Струна Каталог в каталоге Unity для публикации данных из этого конвейера. Если target задано, таблицы в этом конвейере публикуются в схеме target внутри catalog (например, catalog.target.table). Если target не указано, данные не публикуются в каталоге Unity.
channel Струна Канал выпуска декларативных конвейеров Lakeflow, который определяет, какую версию декларативных конвейеров Lakeflow использовать.
clusters Последовательность Параметры кластера для этого развертывания конвейера. Смотрите кластер.
configuration Карта Конфигурация для запуска этого конвейера.
continuous Булев Выполняется ли конвейер непрерывным или запускается. Это заменяет trigger.
deployment Карта Тип развертывания этого конвейера. См. развертывание.
development Булев Указывает, находится ли конвейер в режиме разработки. По умолчанию false.
dry_run Булев Указывает, является ли конвейер сухим запуском.
edition Струна Выпуск конвейерного продукта.
event_log Карта Конфигурация журнала событий для этого конвейера. См. event_log.
filters Карта Фильтры, определяющие, какие пакеты конвейера необходимо включить в развернутый граф. См. фильтры.
id Струна Уникальный идентификатор для этого конвейера.
ingestion_definition Карта Конфигурация для управляемого конвейера приема данных. Эти параметры нельзя использовать с параметрами libraries, schema, target или catalog. См. ingestion_definition.
libraries Последовательность Библиотеки или код, необходимые для этого развертывания. См. библиотеки.
name Струна Дружественное имя для этого конвейера.
notifications Последовательность Параметры уведомлений для этого конвейера. См. уведомления.
permissions Последовательность Разрешения конвейера. Просмотр разрешений.
photon Булев Включён ли фотон для этого конвейера.
schema Струна Схема по умолчанию (база данных), из которой извлекаются таблицы или в которую они записываются.
serverless Булев Включена ли бессерверная вычислительная мощность для этого конвейера?
storage Струна Корневой каталог DBFS для хранения контрольных точек и таблиц.
target Струна Целевая схема (база данных) для добавления таблиц в этот конвейер. Точно один из schema или target должен быть указан. Для публикации в каталоге Unity также укажите catalog. Это устаревшее поле больше не следует использовать для создания конвейера; вместо него следует использовать поле schema.
trigger Карта Устарело. Какой триггер конвейера следует использовать. Вместо этого используйте continuous.

Пример

В следующем примере определяется конвейер с ключом ресурса 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)

Type: Map

Ресурс quality_monitor позволяет определить монитор таблицы каталога Unity. Сведения о мониторах см. в разделе "Общие сведения о мониторинге Databricks Lakehouse".

quality_monitors:
  <quality_monitor-name>:
    <quality_monitor-field-name>: <quality_monitor-field-value>
Ключ Тип Описание
assets_dir Струна Каталог для хранения ресурсов мониторинга (например, панелей мониторинга, таблиц метрик).
baseline_table_name Струна Имя базовой таблицы, из которой вычисляются метрики смещения. Столбцы в отслеживаемой таблице также должны присутствовать в базовой таблице.
custom_metrics Последовательность Пользовательские метрики для вычислений в отслеживаемой таблице. Это могут быть статистические метрики, производные метрики (от уже вычисляемых статистических метрик) или метрики смещения (сравнение метрик в течение нескольких периодов времени). См. custom_metrics.
inference_log Карта Конфигурация для журналов вывода выводов. См. inference_log.
notifications Карта Параметры уведомлений для монитора. См. уведомления.
output_schema_name Струна Схема, в которой создаются выходные таблицы метрик.
schedule Карта Расписание автоматического обновления и перезагрузки метрических таблиц. См. расписание.
skip_builtin_dashboard Булев Следует ли пропустить создание панели мониторинга по умолчанию, в котором суммируются метрики качества данных.
slicing_exprs Последовательность Список выражений столбцов для среза данных с целевым анализом. Данные группируются по каждому выражению независимо, что приводит к отдельному срезу для каждого предиката и его дополнений. Для столбцов высокой кардинальности только первые 100 уникальных значений по частоте будут использоваться для создания срезов.
snapshot Карта Конфигурация для мониторинга таблиц моментальных снимков.
table_name Струна Полное имя таблицы.
time_series Карта Конфигурация для мониторинга таблиц временных рядов. См. time_series.
warehouse_id Струна Необязательный аргумент для указания хранилища для создания панели мониторинга. Если не указано, будет использоваться первый работающий склад.

Примеры

Для полного примера пакета, определяющего quality_monitor, см. пакет mlops_demo.

В следующих примерах определяются мониторы качества для типов профилей InferenceLog, TimeSeries и Snapshot.

# InferenceLog profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/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
# TimeSeries profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      time_series:
        granularities: [30 minutes]
        timestamp_col: timestamp
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC
# Snapshot profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      snapshot: {}
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC

зарегистрированная модель (каталог Unity)

Type: Map

Ресурс зарегистрированной модели позволяет определять модели в каталоге Unity. Сведения о зарегистрированных моделях в каталоге Unity смотрите в статье Управление жизненным циклом модели в каталоге Unity.

registered_models:
  <registered_model-name>:
    <registered_model-field-name>: <registered_model-field-value>
Ключ Тип Описание
catalog_name Струна Имя каталога, в котором находится схема и зарегистрированная модель.
comment Струна Комментарий, присоединенный к зарегистрированной модели.
grants Последовательность Гранты, ассоциированные с зарегистрированной моделью. Смотрите гранты.
name Струна Имя зарегистрированной модели.
schema_name Струна Имя схемы, в которой находится зарегистрированная модель.
storage_location Струна Расположение хранилища в облаке, в котором хранятся файлы данных версии модели.

Пример

В следующем примере определяется зарегистрированная модель в каталоге 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

схема (каталог Unity)

Type: Map

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

  • Владелец ресурса схемы всегда является пользователем развертывания и не может быть изменен. Если run_as указан в пакете, он будет игнорироваться операциями схемы.
  • Доступны только поля, поддерживаемые соответствующим объектом schemas create API для ресурса схемы. Например, enable_predictive_optimization не поддерживается, так как он доступен только в API обновления.
schemas:
  <schema-name>:
    <schema-field-name>: <schema-field-value>
Ключ Тип Описание
catalog_name Струна Имя родительского каталога.
comment Струна Описание текста свободной формы, предоставленное пользователем.
grants Последовательность Гранты, связанные с схемой. Смотрите гранты.
name Струна Имя схемы относительно родительского каталога.
properties Карта Карта свойств key-value, присоединенных к схеме.
storage_root Струна URL-адрес корневого хранилища для управляемых таблиц в схеме.

Примеры

В следующем примере определяется конвейер с ключом ресурса my_pipeline, который создает схему каталога Unity с ключом my_schema в качестве целевого объекта:

resources:
  pipelines:
    my_pipeline:
      name: test-pipeline-{{.unique_id}}
      libraries:
        - notebook:
            path: ../src/nb.ipynb
        - file:
            path: ../src/range.sql
      development: true
      catalog: ${resources.schemas.my_schema.catalog_name}
      target: ${resources.schemas.my_schema.id}

  schemas:
    my_schema:
      name: test-schema-{{.unique_id}}
      catalog_name: main
      comment: This schema was created by Databricks Asset Bundles.

Сопоставление грантов верхнего уровня не поддерживается пакетами Databricks Asset Bundles, поэтому, если вы хотите установить гранты для схемы, определите гранты для схемы в сопоставлении schemas. Для получения дополнительной информации о правах доступа см. раздел Показать, предоставить и отозвать привилегии.

В следующем примере определяется схема каталога Unity с грантами:

resources:
  schemas:
    my_schema:
      name: test-schema
      grants:
        - principal: users
          privileges:
            - SELECT
        - principal: my_team
          privileges:
            - CAN_MANAGE
      catalog_name: main

секретное_пространство

Type: Map

Ресурс secret_scope позволяет определять области секретов в пакете. Сведения о областях секретов см. в разделе "Управление секретами".

secret_scopes:
  <secret_scope-name>:
    <secret_scope-field-name>: <secret_scope-field-value>
Ключ Тип Описание
backend_type Струна Тип бэкенда, с использованием которого будет создана область. Если этот параметр не указан, по умолчанию будет использовано значение DATABRICKS.
keyvault_metadata Карта Метаданные для секретной области, если backend_type — это AZURE_KEYVAULT.
name Струна Имя области, запрашиваемое пользователем. Имена областей уникальны.
permissions Последовательность Разрешения для применения к области секретного пространства. Разрешения управляются с помощью списков управления доступом (ACL) области секретов. Просмотр разрешений.

Примеры

В следующем примере определяется секретная область, которая использует бэкенд хранилища ключей.

resources:
  secret_scopes:
    secret_scope_azure:
      name: test-secrets-azure-backend
      backend_type: 'AZURE_KEYVAULT'
      keyvault_metadata:
        resource_id: my_azure_keyvault_id
        dns_name: my_azure_keyvault_dns_name

В следующем примере устанавливается пользовательский список управления доступом (ACL) с помощью областей секретов и разрешений.

resources:
  secret_scopes:
    my_secret_scope:
      name: my_secret_scope
      permissions:
        - user_name: admins
          level: WRITE
        - user_name: users
          level: READ

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

том (каталог Unity)

Type: Map

Тип ресурса тома позволяет определять и создавать тома каталога Unity как часть пакета. При развертывании пакета с определенным томом обратите внимание на следующее:

  • Нельзя ссылаться на том в artifact_path пакета, пока он не будет существовать в рабочей области. Таким образом, если вы хотите использовать пакеты ресурсов Databricks для создания тома, сначала необходимо определить том в пакете, развернуть его для создания тома, а затем ссылаться на него в artifact_path в последующих развертываниях.
  • Тома в наборе не получают префикс dev_${workspace.current_user.short_name}, если для целевого объекта развертывания настроен mode: development. Однако этот префикс можно настроить вручную. См. пользовательские предустановки.
volumes:
  <volume-name>:
    <volume-field-name>: <volume-field-value>
Ключ Тип Описание
catalog_name Струна Имя каталога схем и томов.
comment Струна Комментарий, прикрепленный к тому.
grants Последовательность Гранты, связанные с томом. Смотрите гранты.
name Струна Имя тома.
schema_name Струна Имя схемы, в которой находится том.
storage_location Струна Расположение хранилища в облаке.
volume_type Струна Тип тома, либо EXTERNAL, или MANAGED. Внешний том находится в указанном внешнем расположении. Управляемый том находится в расположении по умолчанию, указанном родительской схемой, родительским каталогом или хранилищем метаданных. См. раздел "Управляемые и внешние тома".

Пример

В следующем примере создается том каталога Unity с ключом my_volume:

resources:
  volumes:
    my_volume:
      catalog_name: main
      name: my_volume
      schema_name: my_schema

Для примера пакета, который выполняет задание по записи в файл в объёме Unity Catalog, см. репозиторий bundle-examples на GitHub.

Общие объекты

гранты

Type: Sequence

Ключ Тип Описание
principal Струна Имя субъекта, которому будут предоставлены привилегии.
privileges Последовательность Привилегии, которые нужно предоставить указанному объекту.