Condividi tramite


Risorse dei pacchetti di asset di Databricks

I bundle di risorse di Databricks consentono di specificare informazioni sulle risorse di Azure Databricks utilizzate dal bundle nella mappatura resources nella configurazione del bundle. Vedere il mapping delle risorse .

Questo articolo illustra i tipi di risorse supportati per i bundle e fornisce dettagli ed esempi per ogni tipo supportato.

Risorse supportate

Nella tabella seguente sono elencati i tipi di risorse supportati per i bundle. Alcune risorse possono essere create definendole in un bundle e distribuendo il bundle e alcune risorse supportano solo il riferimento a una risorsa esistente da includere nel bundle.

Le risorse vengono definite usando il payload della richiesta dell'operazione di creazione dell'oggetto corrispondente Databricks REST API, in cui i campi dell'oggetto supportati, espressi come YAML, sono le proprietà supportate della risorsa. I collegamenti alla documentazione per i payload corrispondenti di ogni risorsa sono elencati nella tabella.

Suggerimento

Il comando databricks bundle validate restituisce avvisi se le proprietà sconosciute della risorsa vengono trovate nei file di configurazione del bundle.

Risorsa Creare il supporto Proprietà delle risorse
cluster Proprietà del cluster: POST /api/2.1/clusters/create
dashboard Proprietà del dashboard: POST /api/2.0/lakeview/dashboards
esperimento Proprietà dell'esperimento: POST /api/2.0/mlflow/experiments/create
lavoro Proprietà processo: POST /api/2.1/jobs/create
modello (legacy) Proprietà del modello: POST /api/2.0/mlflow/registered-models/create
endpoint_di_servizio_modello Proprietà dell'endpoint di gestione del modello: POST /api/2.0/serving-endpoints
della pipeline Proprietà della pipeline: POST /api/2.0/pipelines
monitor_qualità Proprietà del monitoraggio qualità: POST /api/2.1/unity-catalog/tables/{table_name}/monitor
registered_model (Unity Catalog) Proprietà del modello del catalogo Unity: POST /api/2.1/unity-catalog/models
schema (catalogo Unity) Proprietà dello schema del catalogo Unity: POST /api/2.1/unity-catalog/schemas
volume (Unity Catalog) Proprietà del volume di Unity Catalog: POST /api/2.1/unity-catalog/volumes

grappolo

La risorsa cluster consente di creare cluster multiuso. Nell'esempio seguente si crea un cluster chiamato my_cluster e lo si imposta come cluster da utilizzare per eseguire il notebook in 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"

dashboard

La risorsa dashboard consente di gestire i dashboard IA/BI come un pacchetto. Per informazioni sui dashboard di intelligenza artificiale/BI, vedere Dashboard.

L'esempio seguente include e distribuisce il dashboard campione NYC Taxi Trip Analysis nell'area di lavoro 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}

Se si usa l'interfaccia utente per modificare il dashboard, le modifiche apportate tramite l'interfaccia utente non vengono applicate al file JSON del dashboard nel bundle locale, a meno che non venga aggiornato in modo esplicito usando bundle generate. È possibile usare l'opzione --watch per eseguire continuamente il polling e recuperare le modifiche al dashboard. Consultare Generare un file di configurazione del bundle.

Inoltre, se si tenta di distribuire un bundle che contiene un file JSON del dashboard diverso da quello nell'area di lavoro remota, si verificherà un errore. Per forzare la distribuzione e la sovrascrittura del dashboard nell'area di lavoro remota con quella locale, usare l'opzione --force. Vedi Distribuisci un bundle.

esperimento

La risorsa esperimento consente di definire esperimenti MLflow in un pacchetto. Per informazioni sugli esperimenti di MLflow, vedere gli esperimenti di MLflow.

L'esempio seguente definisce un esperimento che tutti gli utenti possono visualizzare:

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

lavoro

La risorsa di lavoro consente di definire i lavori e le attività corrispondenti nel bundle. Per ulteriori dettagli sui lavori, vedere Pianificare e orchestrare i flussi di lavoro. Per un'esercitazione che usa un modello di Bundle di Asset di Databricks per creare un processo, vedere Sviluppare un processo in Azure Databricks usando i Bundle di Asset di Databricks.

L'esempio seguente definisce un processo con la chiave di risorsa hello-job e un'attività di notebook:

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

Per informazioni sulla definizione delle attività di processo e sulla modifica delle impostazioni dei processi, vedere Aggiungere attività ai processi nei pacchetti di risorse di Databricks, Modificare le impostazioni delle attività dei processi nei pacchetti di risorse di Databrickse Modificare le impostazioni del cluster nei pacchetti di risorse di Databricks.

endpoint_servizio_modello

La risorsa model_serving_endpoint consente di definire gli endpoint di gestione del modello. Vedere Gestire i modelli che gestiscono gli endpoint.

L'esempio seguente definisce un endpoint di servizio per un modello di Unity Catalog.

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 (Catalogo Unity)

La risorsa quality_monitor consente di definire un monitor per le tabelle del catalogo Unity. Per informazioni sui monitoraggi, vedere Monitorare la qualità del modello e l'integrità degli endpoint.

L'esempio seguente definisce un monitoraggio qualità:

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 (Catalogo Unity)

La risorsa modello registrata consente di definire modelli in Unity Catalog. Per informazioni sui modelli registrati in Unity Catalog, vedere Gestire il ciclo di vita del modello in Unity Catalog.

L'esempio seguente definisce un modello registrato nel catalogo 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

oleodotto

La risorsa pipeline permette di creare delle pipeline Delta Live Tables. Per informazioni sulle pipeline, vedere Cosa sono le tabelle Delta Live?. Per un'esercitazione che utilizza il modello Bundle di asset di Databricks per creare una pipeline, vedere Sviluppare pipeline di tabelle live Delta con bundle di asset di Databricks.

L'esempio seguente definisce una pipeline con la chiave di risorsa 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

schema (Unity Catalog)

Il tipo di risorsa dello schema consente di definire schemi del catalogo Unity per tabelle e altri asset nei flussi di lavoro e nelle pipeline creati come parte di un bundle. Uno schema, diverso da altri tipi di risorse, presenta le limitazioni seguenti:

  • Il proprietario di una risorsa dello schema è sempre l'utente della distribuzione e non può essere modificato. Se run_as viene specificato nel bundle, verrà ignorato dalle operazioni sullo schema.
  • Per la risorsa dello schema sono disponibili solo i campi supportati dall'API di creazione dell'oggetto Schema corrispondente . Ad esempio, enable_predictive_optimization non è supportato perché è disponibile solo nell'API di aggiornamento .

L'esempio seguente definisce una pipeline con la chiave di risorsa my_pipeline che crea uno schema del catalogo Unity con la chiave my_schema come destinazione:

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.

Un mapping delle autorizzazioni di primo livello non è supportato dai pacchetti di asset di Databricks, quindi se si desidera impostare le autorizzazioni per uno schema, definire le autorizzazioni per lo schema nel mapping schemas. Per altre informazioni sulle concessioni, vedere Mostrare, concedere e revocare i privilegi.

L'esempio seguente definisce uno schema del catalogo Unity con concessioni:

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

volume (Unity Catalog)

Il tipo di risorsa volume consente di definire e creare volumi del catalogo Unity come parte di un bundle. Quando si distribuisce un bundle con un volume definito, tenere presente che:

  • Non è possibile fare riferimento a un volume nel artifact_path per il bundle fino a che non è presente nello spazio di lavoro. Di conseguenza, se si vuole utilizzare i Databricks Asset Bundle per creare il volume, è necessario definire prima il volume nel bundle, distribuirlo per creare il volume, e quindi farvi riferimento in artifact_path nelle distribuzioni successive.
  • I volumi nel bundle non vengono anteposti al prefisso dev_${workspace.current_user.short_name} quando la destinazione di distribuzione ha mode: development configurata. Tuttavia, è possibile configurare manualmente questo prefisso. Vedere impostazioni predefinite personalizzate.

L'esempio seguente crea un volume del catalogo Unity con la chiave my_volume:

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