Sumber daya Paket Aset Databricks
Bundel Aset Databricks memungkinkan Anda menentukan informasi tentang sumber daya Azure Databricks yang digunakan oleh bundel dalam pemetaan resources
di dalam konfigurasi bundel. Lihat pemetaan sumber daya dan referensi kunci sumber daya .
Artikel ini menguraikan jenis sumber daya yang didukung untuk bundel dan menyediakan detail dan contoh untuk setiap jenis yang didukung. Untuk contoh tambahan, lihat contoh konfigurasi Bundel .
Tips
Untuk menghasilkan YAML untuk sumber daya yang ada, gunakan perintah databricks bundle generate
. Lihat Buat file konfigurasi bundel.
Sumber daya yang didukung
Tabel berikut mencantumkan jenis sumber daya yang didukung untuk bundel. Beberapa sumber daya dapat dibuat dengan menentukannya dalam bundel dan menyebarkan bundel, dan beberapa sumber daya hanya mendukung referensi sumber daya yang ada untuk disertakan dalam bundel.
Sumber daya didefinisikan menggunakan payload permintaan operasi pembuatan objek Databricks REST API yang sesuai, di mana kolom yang didukung oleh objek, yang diekspresikan sebagai YAML, adalah properti sumber daya yang didukung. Tautan ke dokumentasi untuk setiap payload terkait sumber daya tercantum dalam tabel.
Tips
Perintah databricks bundle validate
mengembalikan peringatan jika properti sumber daya yang tidak diketahui ditemukan dalam file konfigurasi bundel.
Sumber daya | Membuat layanan bantuan | Objek REST API yang sesuai |
---|---|---|
aplikasi | ✓ | objek Aplikasi |
kluster | ✓ | objek Kluster |
dasbor | objek Dasbor | |
eksperimen | ✓ | objek eksperimen |
pekerjaan | ✓ | objek pekerjaan |
model (warisan) | ✓ | Model objek (warisan) |
titik_akhir_penyajian_model | ✓ | Model yang melayani objek titik akhir |
pipeline | ✓ | objek Alur |
pemantau_kualitas | ✓ | objek monitor kualitas |
model_terdaftar (Katalog Unity) | ✓ | objek model terdaftar |
skema (Katalog Unity) | ✓ | Skema objek |
volume (Katalog Unity) | ✓ | objek Volume |
aplikasi
Sumber daya aplikasi mendefinisikan aplikasi Databricks. Untuk informasi tentang Aplikasi Databricks, lihat Apa itu Aplikasi Databricks?.
Tips
Anda dapat menginisialisasi bundel dengan aplikasi Streamlit Databricks menggunakan perintah berikut:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Untuk menambahkan aplikasi, tentukan bidang objek yang menentukan aplikasi, serta yang berikut ini:
-
source_code_path
- Jalur lokal./app
kode sumber aplikasi Databricks. Bidang ini diperlukan. -
config
- Perintah konfigurasi aplikasi dan variabel lingkungan. Anda dapat menggunakan ini untuk menentukan target penyebaran aplikasi yang berbeda.
Contoh
Contoh berikut membuat aplikasi bernama my_app
yang mengelola tugas yang dibuat oleh bundel:
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'
Untuk bundel contoh aplikasi Databricks lengkap, lihat repositori GitHub bundel-contoh.
kluster
Sumber daya kluster mendefinisikan sebuah kluster serbaguna .
Contoh
Contoh berikut membuat kluster bernama my_cluster
dan mengatur yang sebagai kluster yang akan digunakan untuk menjalankan buku catatan di 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'
dasbor
Sumber daya dasbor memungkinkan Anda mengelola dasbor AI/BI dalam bundel. Untuk informasi tentang dasbor AI/BI, lihat dasbor .
Contoh
Contoh berikut mencakup dan menerapkan dasbor sampel Analisis Perjalanan Taksi NYC ke ruang kerja 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}
Jika Anda menggunakan UI untuk memodifikasi dasbor, modifikasi yang dilakukan melalui UI tidak diterapkan ke file JSON dasbor di bundel lokal kecuali Anda secara eksplisit memperbaruinya menggunakan bundle generate
. Anda dapat menggunakan opsi --watch
untuk terus menjalankan polling dan mendapatkan perubahan pada dasbor. Lihat Buat file konfigurasi bundel.
Selain itu, jika Anda mencoba menyebarkan bundel yang berisi file JSON dasbor yang berbeda dari yang ada di ruang kerja jarak jauh, kesalahan akan terjadi. Untuk memaksakan penerapan dan menimpa dasbor di ruang kerja remote dengan dasbor lokal, gunakan opsi --force
. Lihat Menyebarkan bundel.
eksperimen
Sumber daya eksperimen memungkinkan Anda mendefinisikan eksperimen MLflow dalam satu bundel. Untuk informasi tentang eksperimen MLflow, lihat Mengatur eksekusi pelatihan dengan eksperimen MLflow.
Contoh
Contoh berikut mendefinisikan eksperimen yang dapat dilihat semua pengguna:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
pekerjaan
Sumber daya pekerjaan memungkinkan Anda menentukan pekerjaan dan tugas yang sesuai dalam bundel Anda. Untuk informasi tentang tugas, lihat Ringkasan orkestrasi di Databricks . Untuk tutorial yang menggunakan templat Bundel Aset Databricks untuk membuat pekerjaan, lihat Mengembangkan pekerjaan di Azure Databricks menggunakan Bundel Aset Databricks.
Contoh
Contoh berikut mendefinisikan pekerjaan dengan kunci sumber daya hello-job
dengan satu tugas buku catatan:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
Untuk informasi tentang menentukan tugas pekerjaan dan mengesampingkan pengaturan pekerjaan, lihat Menambahkan tugas ke pekerjaan di Bundel Aset Databricks, Mengganti pengaturan tugas pekerjaan di Bundel Aset Databricks, dan Menimpa pengaturan kluster di Bundel Aset Databricks.
model (warisan)
Sumber daya model memungkinkan Anda menentukan model lama dalam bentuk bundel. Databricks menyarankan Anda untuk menggunakan model yang terdaftar di Unity Catalog sebagai gantinya.
titik_akhir_penyajian_model
Sumber daya model_serving_endpoint memungkinkan Anda menentukan model yang melayani titik akhir. Lihat Kelola titik akhir penyajian model.
Contoh
Contoh berikut mendefinisikan model Unity Catalog yang melayani titik akhir:
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'
pemantau_kualitas (Katalog Unity)
Sumber daya quality_monitor memungkinkan Anda untuk mendefinisikan sebuah monitor tabel dalam Unity Catalog. Untuk informasi tentang monitor, lihat Kualitas model monitor dan kesehatan titik akhir.
Contoh
Contoh berikut mendefinisikan monitor kualitas:
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
model_terdaftar (Katalog Unity)
Sumber daya model terdaftar memungkinkan Anda menentukan model di Unity Catalog. Untuk informasi mengenai model terdaftardi Unity Catalog
Contoh
Contoh berikut mendefinisikan model terdaftar di Unity Catalog:
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
alur
Sumber daya jalur memungkinkan Anda membuat jalur DLT . Untuk informasi tentang jalur, lihat Apa itu DLT?. Untuk tutorial yang menggunakan templat Bundel Aset Databricks untuk membuat alur, lihat Mengembangkan alur DLT dengan Bundel Aset Databricks.
Contoh
Contoh berikut mendefinisikan alur dengan kunci sumber daya 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
skema (Katalog Unity)
Jenis sumber daya skema dapat memungkinkan Anda menentukan skema Unity Catalog untuk tabel dan aset lainnya dalam alur kerja dan jalur pemrosesan yang dibuat sebagai bagian dari suatu bundel. Skema, berbeda dari jenis sumber daya lainnya, memiliki batasan berikut:
- Pemilik sumber daya skema selalu menjadi pengguna penyebaran, dan tidak dapat diubah. Jika
run_as
ditentukan dalam bundel, itu akan diabaikan oleh operasi pada skema. - Hanya bidang yang didukung oleh API pembuatan objek Skema yang sesuai yang tersedia untuk sumber daya skema. Misalnya,
enable_predictive_optimization
tidak didukung karena hanya tersedia di API pembaruan .
Contoh
Contoh berikut mendefinisikan alur dengan kunci sumber daya my_pipeline
yang membuat skema Unity Catalog dengan kunci my_schema
sebagai target:
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.
Pemetaan pemberian tingkat atas tidak didukung oleh Bundel Aset Databricks, jadi jika Anda ingin mengatur pemberian untuk sebuah skema, tentukan pemberian tersebut dalam pemetaan schemas
. Untuk informasi selengkapnya tentang pemberian, lihat Tampilkan, berikan, dan cabut hak istimewa.
Contoh berikut mendefinisikan skema Unity Catalog dengan hibah:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- SELECT
- principal: my_team
privileges:
- CAN_MANAGE
catalog_name: main
volume (Katalog Unity)
Jenis sumber daya volume memungkinkan Anda menentukan dan membuat volume Unity Catalog sebagai bagian dari bundel. Saat menyebarkan bundel dengan volume yang ditentukan, perhatikan bahwa:
- Volume tidak dapat direferensikan dalam
artifact_path
untuk bundel hingga ada di ruang kerja. Oleh karena itu, jika Anda ingin menggunakan Bundel Aset Databricks untuk membuat volume, Anda harus terlebih dahulu menentukan volume dalam bundel, menyebarkannya untuk membuat volume, lalu mereferensikannya diartifact_path
dalam penyebaran berikutnya. - Volume-volume dalam bundel tidak diawali dengan awalan
dev_${workspace.current_user.short_name}
ketika target penyebaran dikonfigurasi denganmode: development
. Namun, Anda dapat mengonfigurasi awalan ini secara manual. Lihat preset kustom .
Contoh
Contoh berikut membuat volume Katalog Unity dengan kunci my_volume
:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Untuk contoh bundel yang menjalankan tugas yang menulis ke sebuah file di volume Unity Catalog, lihat repositori GitHub bundle-examples .