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


Ресурсы пакетов 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.