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 inartifact_path
nelle distribuzioni successive. - I volumi nel bundle non vengono anteposti al prefisso
dev_${workspace.current_user.short_name}
quando la destinazione di distribuzione hamode: 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