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 wartifact_path
w kolejnych wdrożeniach. - Woluminy w pakiecie nie są poprzedzone prefiksem
dev_${workspace.current_user.short_name}
, jeśli cel wdrożenia ma skonfigurowanymode: 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