Udostępnij za pośrednictwem


Zasoby pakietu zasobów usługi Databricks

Pakiety zasobów usługi Databricks umożliwiają określenie informacji o zasobach usługi Azure Databricks używanych przez pakiet w mapowaniu resources w konfiguracji pakietu. Zobacz mapowanie zasobów .

W tym artykule opisano obsługiwane typy zasobów dla pakietów oraz szczegółowe informacje i przykład dla każdego obsługiwanego typu. Aby uzyskać dodatkowe przykłady, zobacz przykłady konfiguracji pakietu .

Obsługiwane zasoby

W poniższej tabeli wymieniono obsługiwane typy zasobów dla pakietów. Niektóre zasoby można utworzyć, definiując je w pakiecie i wdrażając pakiet, a niektóre zasoby obsługują tylko odwoływanie się do istniejącego zasobu do uwzględnienia w pakiecie.

Zasoby są definiowane przy użyciu odpowiedniego interfejsu API REST usługi Databricks ładunku żądania operacji tworzenia obiektu, gdzie obsługiwane pola obiektu, wyrażone jako YAML, są obsługiwanymi właściwościami zasobu. Linki do dokumentacji ładunków danych odpowiadających poszczególnym zasobom są wymienione w tabeli.

Napiwek

Polecenie databricks bundle validate zwraca ostrzeżenia, jeśli w plikach konfiguracji pakietu znajdują się nieznane właściwości zasobu.

Zasób Utwórz wsparcie Właściwości zasobu
klaster Właściwości klastra: POST /api/2.1/clusters/create
deska rozdzielcza Właściwości pulpitu nawigacyjnego: POST /api/2.0/lakeview/dashboards
eksperyment Właściwości eksperymentu: POST /api/2.0/mlflow/experiments/create
praca Właściwości zadania: POST /api/2.1/jobs/create
model (starsza wersja) Właściwości modelu: POST /api/2.0/mlflow/registered-models/create
punkt_końcowy_środowiska_modelu Właściwości punktu końcowego obsługującego model: POST /api/2.0/serving-endpoints
potoku Właściwości pipeline: POST /api/2.0/pipelines
quality_monitor Właściwości monitora jakości: POST /api/2.1/unity-catalog/tables/{table_name}/monitor
registered_model (wykaz aparatu Unity) Właściwości modelu Unity Catalog: POST /api/2.1/unity-catalog/models
schema (Unity Catalog) Właściwości schematu Unity Catalog: POST /api/2.1/unity-catalog/schemas
wolumin (Unity Catalog) Właściwości woluminu Unity Catalog: POST /api/2.1/unity-catalog/volumes

klaster

Zasób klastra umożliwia tworzenie klastrów ogólnego przeznaczenia. Poniższy przykład tworzy klaster o nazwie my_cluster i ustawia go jako klaster, który będzie używany do uruchomienia notatnika w 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"

deska rozdzielcza

Zasób pulpitu nawigacyjnego umożliwia zarządzanie pulpitami nawigacyjnymi AI/BI w pakiecie. Aby uzyskać informacje na temat pulpitów nawigacyjnych AI/BI, zobacz Dashboards.

W poniższym przykładzie przedstawiono i wdrożono przykładowy pulpit nawigacyjny NYC Taxi Trip Analysis w obszarze roboczym usługi 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}

Jeśli używasz interfejsu użytkownika do modyfikowania pulpitu nawigacyjnego, modyfikacje wprowadzone za pośrednictwem interfejsu użytkownika nie są stosowane do pliku JSON pulpitu nawigacyjnego w pakiecie lokalnym, chyba że jawnie zaktualizujesz go przy użyciu bundle generate. Możesz użyć opcji --watch, aby stale sondować i pobierać zmiany na pulpicie nawigacyjnym. Zobacz Generowanie pliku konfiguracji pakietu.

Ponadto w przypadku próby wdrożenia pakietu zawierającego plik JSON pulpitu nawigacyjnego, który różni się od tego w zdalnym obszarze roboczym, wystąpi błąd. Aby wymusić wdrożenie i zastąpienie pulpitu nawigacyjnego w zdalnym obszarze roboczym przy użyciu lokalnego, użyj opcji --force. Zobacz Wdrażanie pakietu.

eksperyment

Zasób eksperymentu umożliwia definiowanie eksperymentów MLflow w pakiecie. Aby uzyskać więcej informacji na temat eksperymentów MLflow, zobacz sekcję eksperymenty MLflow.

W poniższym przykładzie zdefiniowano eksperyment, który może wyświetlać wszyscy użytkownicy:

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

zadanie

Zasób pracy umożliwia definiowanie prac i odpowiadających im zadań w pakiecie. Aby uzyskać informacje o zadaniach, zobacz Planowanie i organizowanie przepływów pracy. Aby zapoznać się z samouczkiem, który używa szablonu pakietów zasobów usługi Databricks do utworzenia zadania, zobacz Develop a job on Azure Databricks using Databricks Asset Bundles (Tworzenie zadania w usłudze Azure Databricks przy użyciu pakietów zasobów usługi Databricks).

W poniższym przykładzie zdefiniowano zadanie z kluczem zasobu hello-job z jednym zadaniem w notatniku:

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

Aby uzyskać informacje na temat definiowania zadań i zastępowania ustawień zadań, zobacz Dodawanie zadań do zadań w Pakietach Zasobów Databricks, Zastępowanie ustawień zadań w Pakietach Zasobów Databricksi Zastępowanie ustawień klastra w Pakietach Zasobów Databricks.

model_serving_endpoint

Zasób model_serving_endpoint umożliwia definiowanie punktów końcowych obsługujących model. Zobacz Zarządzanie modelem obsługującym punkty końcowe.

W poniższym przykładzie zdefiniowano model katalogu Unity obsługujący punkt końcowy:

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 (wykaz aparatu Unity)

Zasób quality_monitor umożliwia zdefiniowanie monitora tabeli katalogu Unity. Aby uzyskać informacje o monitorach, zobacz Monitorowanie jakości modelu i kondycji punktu końcowego.

W poniższym przykładzie zdefiniowano monitor jakości:

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

registered_model (wykaz aparatu Unity)

Zasób zarejestrowanego modelu umożliwia definiowanie modeli w katalogu Unity. Aby uzyskać informacje na temat modeli zarejestrowanych w Unity Catalog, zobacz Zarządzanie cyklem życia modelu w Unity Catalog.

Poniższy przykład definiuje zarejestrowany model w katalogu 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

rurociąg

Zasób pipeline pozwala na tworzenie pipeline'ów Delta Live Tables. Aby uzyskać informacje na temat potoków, zobacz Co to jest Delta Live Tables?. Aby zapoznać się z samouczkiem, który używa szablonu pakietów zasobów Databricks do tworzenia potoku, zobacz Jak opracować potoki Delta Live Tables za pomocą pakietów zasobów Databricks.

W poniższym przykładzie zdefiniowano potok z kluczem zasobu 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

schemat (wykaz aparatu Unity)

Typ zasobu schematu umożliwia zdefiniowanie schematów Unity Catalog dla tabel i innych zasobów w przepływach pracy i potokach utworzonych w ramach pakietu. Schemat, inny niż inne typy zasobów, ma następujące ograniczenia:

  • Właściciel zasobu schematu jest zawsze użytkownikiem wdrożenia i nie można go zmienić. Jeśli run_as zostanie określony w pakiecie, zostanie on zignorowany przez operacje w schemacie.
  • Dla zasobu schematu są dostępne tylko pola obsługiwane przez odpowiedni obiekt Schemas create API. Na przykład enable_predictive_optimization nie jest obsługiwana, ponieważ jest dostępna tylko w interfejsie API aktualizacji .

W poniższym przykładzie zdefiniowano potok z kluczem zasobu my_pipeline, który tworzy schemat Unity Catalog z kluczem my_schema jako element docelowy.

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.

Mapowanie uprawnień najwyższego poziomu nie jest obsługiwane przez pakiety zasobów usługi Databricks, więc jeśli chcesz ustawić uprawnienia dla schematu, zdefiniuj uprawnienia dla schematu w ramach mapowania schemas. Aby uzyskać więcej informacji na temat uprawnień, zobacz Pokaż, przyznawanie i cofanie uprawnień.

W poniższym przykładzie zdefiniowano schemat katalogu Unity z uprawnieniami:

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

wolumin (wykaz aparatu Unity)

Typ zasobu woluminu umożliwia definiowanie i tworzenie woluminów Unity Catalog w ramach zestawu. Podczas wdrażania pakietu z zdefiniowanym woluminem należy pamiętać, że:

  • Nie można odwołać się do woluminu w artifact_path dla pakietu, dopóki nie istnieje w obszarze roboczym. W związku z tym, jeśli chcesz użyć pakietów zasobów usługi Databricks do utworzenia woluminu, musisz najpierw zdefiniować wolumin w pakiecie, wdrożyć go w celu utworzenia woluminu, a następnie odwołać się do niego w artifact_path w kolejnych wdrożeniach.
  • Woluminy w pakiecie nie są poprzedzone prefiksem dev_${workspace.current_user.short_name}, jeśli cel wdrożenia ma skonfigurowany mode: development. Można jednak ręcznie skonfigurować ten prefiks. Zobacz Niestandardowe ustawienia wstępne.

Poniższy przykład tworzy wolumin Unity Catalog o kluczu my_volume:

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