Mode penyebaran Bundel Aset Databricks
Artikel ini menguraikan sintaks untuk mode penyebaran Bundel Aset Databricks. Bundel memungkinkan manajemen terprogram alur kerja Azure Databricks. Lihat Apa itu Bundel Aset Databricks?
Dalam alur kerja CI/CD, pengembang biasanya membuat kode, menguji, menyebarkan, dan menjalankan solusi dalam berbagai fase, atau mode. Misalnya, set mode paling sederhana mencakup mode pengembangan untuk validasi pra-produksi, diikuti dengan mode produksi untuk hasil yang divalidasi. Bundel Aset Databricks menyediakan koleksi opsional perilaku default yang sesuai dengan masing-masing mode ini. Untuk menggunakan perilaku ini untuk target tertentu, atur mode
atau konfigurasikan presets
untuk target dalam targets
pemetaan konfigurasi. Untuk informasi tentang targets
, lihat pemetaan target konfigurasi bundel.
Mode pengembangan
Untuk menyebarkan bundel Anda dalam mode pengembangan, Anda harus terlebih dahulu menambahkan mode
pemetaan, mengatur ke development
, ke target yang dimaksudkan. Misalnya, target bernama dev
ini diperlakukan sebagai target pengembangan:
targets:
dev:
mode: development
Menyebarkan target dalam mode pengembangan dengan menjalankan databricks bundle deploy -t <target-name>
perintah mengimplementasikan perilaku berikut, yang dapat disesuaikan menggunakan preset:
- Menambahkan semua sumber daya yang tidak disebarkan sebagai file atau notebook dengan awalan
[dev ${workspace.current_user.short_name}]
dan menandai setiap pekerjaan dan alur yangdev
disebarkan dengan tag Azure Databricks. - Menandai semua alur Tabel Langsung Delta yang disebarkan terkait sebagai
development: true
. Lihat Menggunakan mode pengembangan untuk menjalankan pembaruan alur. - Memungkinkan penggunaan
--compute-id <cluster-id>
dalam panggilan terkait kebundle deploy
perintah, yang mengambil alih salah satu dan semua definisi kluster yang sudah ditentukan dalam file konfigurasi bundel terkait. Alih-alih menggunakan--compute-id <cluster-id>
panggilan terkait kebundle deploy
perintah, Anda dapat mengaturcompute_id
pemetaan di sini, atau sebagai pemetaan anak daribundle
pemetaan, ke ID kluster yang akan digunakan. - Menjeda semua jadwal dan pemicu pada sumber daya yang disebarkan seperti pekerjaan atau monitor kualitas. Batalkan jeda jadwal dan pemicu untuk pekerjaan individual dengan mengatur
schedule.pause_status
keUNPAUSED
. - Memungkinkan eksekusi bersamaan pada semua pekerjaan yang disebarkan untuk iterasi yang lebih cepat. Nonaktifkan eksekusi bersamaan untuk pekerjaan individual dengan mengatur
max_concurrent_runs
ke1
. - Menonaktifkan kunci penyebaran untuk iterasi yang lebih cepat. Kunci ini mencegah konflik penyebaran yang tidak mungkin terjadi dalam mode dev. Aktifkan kembali kunci dengan mengatur
bundle.deployment.lock.enabled
ketrue
.
Mode produksi
Untuk menyebarkan bundel Anda dalam mode produksi, Anda harus terlebih dahulu menambahkan mode
pemetaan, diatur ke production
, ke target yang dimaksudkan. Misalnya, target bernama prod
ini diperlakukan sebagai target produksi:
targets:
prod:
mode: production
Menyebarkan target dalam mode produksi dengan menjalankan databricks bundle deploy -t <target-name>
perintah mengimplementasikan perilaku berikut:
Memvalidasi bahwa semua alur Tabel Langsung Delta yang disebarkan terkait ditandai sebagai
development: false
.Memvalidasi bahwa cabang Git saat ini sama dengan cabang Git yang ditentukan dalam target. Menentukan cabang Git dalam target bersifat opsional dan dapat dilakukan dengan properti tambahan
git
sebagai berikut:git: branch: main
Validasi ini dapat ditimpa dengan menentukan
--force
saat menyebarkan.Databricks merekomendasikan agar Anda menggunakan perwakilan layanan untuk penyebaran produksi. Anda dapat memberlakukan ini dengan mengatur
run_as
ke perwakilan layanan. Lihat Mengelola perwakilan layanan dan Menentukan identitas eksekusi untuk alur kerja Bundel Aset Databricks. Jika Anda tidak menggunakan perwakilan layanan, perhatikan perilaku tambahan berikut:- Memvalidasi bahwa
artifact_path
pemetaan ,file_path
,root_path
, ataustate_path
tidak ditimpa ke pengguna tertentu. - Memvalidasi bahwa
run_as
pemetaan danpermissions
ditentukan untuk mengklarifikasi identitas mana yang memiliki izin khusus untuk penyebaran.
- Memvalidasi bahwa
Tidak seperti perilaku sebelumnya untuk mengatur
mode
pemetaan kedevelopment
, mengaturmode
pemetaan keproduction
tidak memungkinkan pengesampingan definisi kluster yang ada yang ditentukan dalam file konfigurasi bundel terkait, misalnya dengan menggunakan--compute-id <cluster-id>
opsi ataucompute_id
pemetaan.
Preset kustom
Bundel Aset Databricks mendukung prasetel yang dapat dikonfigurasi untuk target, yang memungkinkan Anda menyesuaikan perilaku untuk target. Prasetel yang tersedia tercantum dalam tabel berikut:
Preset | Deskripsi |
---|---|
name_prefix |
String awalan untuk diawali ke nama sumber daya. |
pipelines_development |
Apakah alur berada dalam mode pengembangan atau tidak. Nilai yang valid adalah true atau false . |
trigger_pause_status |
Status jeda untuk diterapkan ke semua pemicu dan jadwal. Nilai yang valid adalah PAUSED atau UNPAUSED . |
jobs_max_concurrent_runs |
Jumlah maksimum eksekusi bersamaan yang diizinkan untuk pekerjaan. |
tags |
Sekumpulan tag kunci:nilai yang berlaku untuk semua sumber daya yang mendukung tag, yang mencakup pekerjaan dan eksperimen. Bundel Aset Databricks tidak mendukung tag untuk schema sumber daya. |
Catatan
Jika keduanya mode
dan presets
diatur, prasetel mengambil alih perilaku mode default, dan pengaturan sumber daya individual mengambil alih prasetel. Misalnya, jika jadwal diatur ke UNPAUSED
, tetapi trigger_pause_status
prasetel diatur ke PAUSED
, jadwal tidak digunakan.
Contoh berikut menunjukkan konfigurasi prasetel kustom untuk target bernama dev
:
targets:
dev:
presets:
name_prefix: "testing_" # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance