Referensi kebijakan pemrosesan komputer

Nota

Halaman ini menggunakan contoh definisi kebijakan JSON. Anda dapat menentukan kebijakan menggunakan JSON, atau menggunakan UI kebijakan komputasi untuk mengonfigurasi definisi kebijakan menggunakan menu dropdown dan elemen UI lainnya.

Halaman ini adalah referensi untuk definisi kebijakan komputasi, termasuk daftar atribut kebijakan dan jenis batasan yang tersedia. Ada juga contoh kebijakan yang dapat Anda referensikan untuk kasus penggunaan umum.

Apa itu definisi kebijakan?

Definisi kebijakan adalah aturan kebijakan individual yang dinyatakan dalam JSON.

Definisi dapat menambahkan aturan ke salah satu atribut yang dikontrol dengan Clusters API. Misalnya, definisi ini menetapkan waktu penghentian otomatis default, melarang pengguna untuk menggunakan kumpulan, dan menegakkan penggunaan Photon.

{
  "autotermination_minutes": {
    "type": "unlimited",
    "defaultValue": 4320,
    "isOptional": true
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "runtime_engine": {
    "type": "fixed",
    "value": "PHOTON",
    "hidden": true
  }
}

Hanya boleh ada satu batasan per atribut. Jalur atribut mencerminkan nama atribut API. Untuk atribut berlapis, jalur menggabungkan nama atribut berlapis menggunakan titik. Atribut yang tidak ditentukan dalam definisi kebijakan tidak akan dibatasi.

Mengonfigurasi definisi kebijakan menggunakan elemen UI

Formulir kebijakan memungkinkan Anda mengonfigurasi definisi kebijakan menggunakan menu dropdown dan elemen UI lainnya. Ini berarti admin dapat menulis kebijakan tanpa harus mempelajari atau mereferensikan sintaks kebijakan.

Formulir ini juga mendukung pengeditan definisi kebijakan lengkap secara langsung sebagai JSON. Untuk mengedit JSON:

  • Klik tombol Edit definisi sebagai JSON di opsi Tingkat Lanjut bagian Definisi untuk membuka editor JSON.
  • Klik tab JSON untuk melihat definisi JSON. Dari tab ini, Anda juga dapat mengklik Edit definisi sebagai JSON untuk membuka editor.

Selain itu, aturan JSON individual dapat ditambahkan ke bidang JSON Kustom di bawah Opsi tingkat lanjut.

Formulir kebijakan komputasi baru

Batasan yang telah diidentifikasi saat menggunakan formulir kebijakan baru

Jika kebijakan tidak didukung oleh formulir kebijakan komputasi baru, definisi yang tidak kompatibel akan muncul di bidang JSON kustom di bagian Opsi tingkat lanjut . Untuk bidang di bawah ini, hanya subset kebijakan yang valid yang didukung:

  • workload_type: Kebijakan harus menentukan baik workload_type.clients.notebooks maupun workload_type.clients.jobs. Masing-masing aturan ini harus diperbaiki ke true atau false.
  • dbus_per_hour: Hanya kebijakan rentang yang menetapkan maxValue dan tidak menetapkan minValue yang didukung.
  • ssh_public_keys: Hanya kebijakan tetap yang didukung. Kebijakan ssh_public_keys tidak boleh melewati indeks apa pun. Misalnya, ssh_public_keys.0, , ssh_public_keys.1ssh_public_keys.2 valid, tetapi ssh_public_keys.0, ssh_public_keys.2, ssh_public_keys.3 tidak valid.
  • cluster_log_conf: cluster_log_conf.path Tidak dapat menjadi daftar yang diizinkan atau daftar blokir.
  • init_scripts: Kebijakan terindeks (yaitu, init_scripts.0.volumes.destination) harus diperbaiki. Kebijakan kartubebas (yaitu, init_scripts.*.volumes.destination) harus dilarang. Kebijakan terindeks tidak boleh melewati indeks apa pun.

Atribut yang didukung

Kebijakan mendukung semua atribut yang dikontrol dengan Clusters API. Jenis pembatasan yang dapat Anda tempatkan pada atribut dapat bervariasi per pengaturan berdasarkan jenisnya dan kaitannya dengan elemen UI. Anda tidak dapat menggunakan kebijakan untuk menentukan izin komputasi.

Anda juga dapat menggunakan kebijakan untuk mengatur DBA maks per jam dan jenis kluster. Lihat jalur atribut virtual .

Tabel berikut mencantumkan jalur atribut kebijakan yang didukung:

Jalur atribut Jenis Deskripsi
autoscale.max_workers nomor opsional Saat disembunyikan, menghapus kolom jumlah pekerja maksimum dari UI.
autoscale.min_workers nomor opsional Ketika disembunyikan, elemen jumlah pekerja minimum dihapus dari UI.
autotermination_minutes angka Nilai 0 tidak mewakili penghentian otomatis. Saat disembunyikan, menghapus kotak centang penghentian otomatis dan input nilai dari UI.
azure_attributes.availability string Mengontrol apakah penggunaan komputasi menggunakan instans sesuai permintaan atau spot (SPOT_AZURE, ON_DEMAND_AZURE, atau SPOT_WITH_FALLBACK_AZURE).
azure_attributes.first_on_demand angka Mengontrol berapa banyak node kluster yang menggunakan instans sesuai permintaan, dimulai dengan simpul driver. Misalnya, nilai 1 mengatur simpul driver menjadi sesuai dengan permintaan. Sebuah nilai 2 menetapkan simpul driver dan satu simpul pekerja menjadi sesuai permintaan.
azure_attributes.spot_bid_max_price angka Mengatur harga maksimum untuk spot instance Azure.
cluster_log_conf.path string URL tujuan dari file log.
cluster_log_conf.type string Jenis tujuan log. DBFS dan VOLUMES adalah satu-satunya nilai yang dapat diterima.
cluster_name string Nama kluster.
custom_tags.* string Kontrol nilai tag tertentu dengan menambahkan nama tag, misalnya: custom_tags.<mytag>.
data_security_mode string Mengatur mode akses kluster. Katalog Unity memerlukan SINGLE_USER atau USER_ISOLATION (mode akses Standar di UI). Nilai NONE berarti tidak ada fitur keamanan yang diaktifkan.
docker_image.basic_auth.password string Kata sandi untuk autentikasi dasar citra Databricks Container Services.
docker_image.basic_auth.username string Nama pengguna untuk autentikasi dasar citra di Databricks Container Services.
docker_image.url string Mengontrol URL gambar layanan kontainer Databricks. Saat disembunyikan, menghapus bagian Layanan Kontainer Databricks dari UI.
driver_node_type_id teks opsional Ketika disembunyikan, menghapus pilihan jenis node driver dari UI.
driver_node_type_flexibility.alternate_node_type_ids string Menentukan jenis simpul alternatif untuk simpul driver. Hanya kebijakan tetap yang didukung. Lihat Jenis node fleksibel.
enable_local_disk_encryption Boolean Atur ke true untuk mengaktifkan, atau false untuk menonaktifkan, mengenkripsi disk yang dilampirkan secara lokal ke kluster (seperti yang ditentukan melalui API).
init_scripts.*.workspace.destination init_scripts.*.volumes.destination init_scripts.*.abfss.destination init_scripts.*.file.destination string * mengacu pada indeks dari skrip inisiasi dalam array atribut. Lihat kebijakan penulisan untuk atribut array.
instance_pool_id string Mengontrol pool yang digunakan oleh node pekerja jika driver_instance_pool_id sudah ditentukan, atau untuk semua node klaster jika tidak. Jika Anda menggunakan kumpulan untuk simpul pekerja, Anda juga harus menggunakan kumpulan untuk simpul penggerak. Saat disembunyikan, menghapus pilihan kumpulan dari UI.
driver_instance_pool_id string Jika ditentukan, konfigurasikan kumpulan yang berbeda untuk node pengendali dibandingkan dengan node pekerja. Jika tidak ditentukan, akan otomatis menggunakan instance_pool_id. Jika Anda menggunakan kumpulan untuk simpul pekerja, Anda juga harus menggunakan kumpulan untuk simpul penggerak. Saat disembunyikan, menghapus pilihan kumpulan driver dari UI.
is_single_node Boolean Ketika diatur ke true, komputasi harus menggunakan node tunggal. Atribut ini hanya didukung ketika pengguna menggunakan formulir sederhana.
node_type_id string Saat disembunyikan, menghapus pilihan jenis node pekerja dari UI.
worker_node_type_flexibility.alternate_node_type_ids string Menentukan tipe node alternatif untuk node pekerja. Hanya kebijakan tetap yang didukung. Lihat Jenis node fleksibel.
num_workers nomor opsional Saat disembunyikan, menghapus spesifikasi nomor pekerja dari UI.
runtime_engine string Menentukan apakah kluster menggunakan Photon atau tidak. Nilai yang mungkin PHOTON atau STANDARD.
single_user_name string Mengontrol pengguna atau grup mana yang dapat ditetapkan ke sumber daya komputasi.
spark_conf.* teks opsional Mengontrol nilai konfigurasi tertentu dengan menambahkan nama kunci konfigurasi, misalnya: spark_conf.spark.executor.memory.
spark_env_vars.* teks opsional Mengontrol nilai variabel lingkungan Spark tertentu dengan menambahkan variabel lingkungan, misalnya: spark_env_vars.<environment variable name>.
spark_version string Nama versi gambar Spark seperti yang ditentukan melalui API (Databricks Runtime). Anda juga dapat menggunakan nilai kebijakan khusus yang secara dinamis memilih Databricks Runtime. Lihat nilai kebijakan khusus untuk pemilihan Databricks Runtime.
use_ml_runtime Boolean Mengontrol apakah versi ML dari Databricks Runtime harus digunakan. Atribut ini hanya didukung ketika pengguna menggunakan formulir sederhana.
workload_type.clients.jobs Boolean Menentukan apakah sumber daya komputasi dapat digunakan untuk pekerjaan. Lihat Pencegahan penggunaan komputasi dalam pekerjaan.
workload_type.clients.notebooks Boolean Menentukan apakah sumber daya komputasi dapat digunakan dengan notebook. Lihat Pencegahan penggunaan komputasi dalam pekerjaan.

Jalur atribut virtual

Tabel ini mencakup dua atribut sintetis tambahan yang didukung oleh kebijakan. Jika Anda menggunakan formulir kebijakan baru, atribut ini dapat diatur di bagian Opsi tingkat lanjut .

Jalur atribut Jenis Deskripsi
dbus_per_hour angka Atribut terhitung yang mewakili DBA maksimum yang dapat digunakan sumber daya setiap jam termasuk simpul driver. Metrik ini adalah cara langsung untuk mengontrol biaya pada tingkat komputasi individual. Gunakan dengan batasan rentang.
cluster_type string Mewakili jenis kluster yang dapat dibuat:
  • all-purpose untuk komputasi serba guna Azure Databricks
  • job untuk komputasi tugas yang dibuat oleh penjadwal tugas
  • dlt untuk komputasi yang dibuat untuk Alur Deklaratif Lakeflow Spark

Izinkan atau blokir jenis komputasi tertentu untuk dibuat dari kebijakan tersebut. Jika nilai all-purpose tidak diizinkan, kebijakan tidak ditampilkan di antarmuka pembuatan komputasi serbaguna. Jika nilai job tidak diizinkan, kebijakan tidak ditampilkan di UI pembuatan tugas komputasi.

Jenis node fleksibel

Atribut jenis node fleksibel memungkinkan Anda menentukan jenis node alternatif yang dapat digunakan sumber daya komputasi jika jenis node utama tidak tersedia. Atribut ini memiliki persyaratan kebijakan khusus:

  • Hanya kebijakan tetap yang didukung. Semua jenis kebijakan lainnya tidak diizinkan dan akan ditolak pada waktu pembuatan kebijakan.
  • Dalam kebijakan, string kosong diterjemahkan menjadi daftar kosong dari jenis node pengganti, secara efektif menonaktifkan jenis node fleksibel.

Perbaikan pada daftar tipe node tertentu

Tidak seperti bidang API Kluster yang sesuai yang menggunakan array string, atribut kebijakan komputasi menggunakan nilai string tunggal yang mengodekan array jenis node sebagai daftar yang dipisahkan koma. Misalnya:

{
  "worker_node_type_flexibility.alternate_node_type_ids": {
    "type": "fixed",
    "value": "nodeA,nodeB"
  }
}

Jika Anda menggunakan API Kluster untuk membuat sumber daya komputasi dengan kebijakan yang ditetapkan, Databricks merekomendasikan untuk tidak mengatur worker_node_type_flexibility bidang atau driver_node_type_flexibility . Jika Anda mengatur bidang ini, jenis node dan urutan array harus cocok tepat dengan daftar kebijakan yang dipisahkan koma, jika tidak, perhitungan tidak dapat dilakukan. Misalnya, definisi kebijakan dari atas akan ditetapkan sebagai:

"worker_node_type_flexibility": {
  "alternate_node_type_ids": ["nodeA", "nodeB"]
}

Menonaktifkan jenis node fleksibel

Untuk menonaktifkan jenis node fleksibel, atur nilai ke string kosong. Misalnya:

{
  "worker_node_type_flexibility.alternate_node_type_ids": {
    "type": "fixed",
    "value": ""
  }
}

Nilai kebijakan khusus untuk pemilihan Databricks Runtime

Atribut spark_version mendukung nilai khusus yang secara dinamis memetakan ke versi Databricks Runtime berdasarkan kumpulan versi Databricks Runtime yang didukung saat ini.

Nilai berikut dapat digunakan dalam atribut spark_version:

  • auto:latest: Memetakan ke versi terbaru GA Databricks Runtime.
  • auto:latest-ml: Memetakan ke versi ML Databricks Runtime terbaru.
  • auto:latest-lts: Memetakan ke versi Runtime Databricks terbaru yang memiliki dukungan jangka panjang (LTS).
  • auto:latest-lts-ml: Memetakan ke versi terbaru ML Databricks Runtime LTS.
  • auto:prev-major: Memetakan ke versi GA Databricks Runtime terbaru kedua. Misalnya, jika auto:latest adalah 14,2, maka auto:prev-major adalah 13,3.
  • auto:prev-major-ml: Memetakan ke versi terbaru kedua dari ML Runtime GA Databricks. Misalnya, jika auto:latest adalah 14,2, maka auto:prev-major adalah 13,3.
  • auto:prev-lts: Memetakan ke versi LTS Databricks Runtime terbaru yang kedua. Misalnya, jika auto:latest-lts adalah 13,3, maka auto:prev-lts adalah 12,2.
  • auto:prev-lts-ml: Memetakan ke versi ML Databricks Runtime LTS terbaru kedua. Misalnya, jika auto:latest-lts adalah 13,3, maka auto:prev-lts adalah 12,2.

Nota

Menggunakan nilai-nilai ini tidak membuat komputasi pembaruan otomatis saat versi runtime baru dirilis. Pengguna harus secara eksplisit mengedit komputasi agar versi Databricks Runtime berubah.

Jenis kebijakan yang didukung

Bagian ini mencakup referensi untuk setiap jenis kebijakan yang tersedia. Ada dua kategori jenis kebijakan: kebijakan tetap dan kebijakan pembatasan.

Kebijakan tetap mencegah konfigurasi pengguna pada atribut. Dua jenis kebijakan tetap adalah:

Membatasi kebijakan membatasi opsi pengguna untuk mengonfigurasi atribut. Membatasi kebijakan juga memungkinkan Anda mengatur nilai default dan membuat atribut opsional. Lihat Bidang kebijakan pembatasan tambahan.

Opsi Anda untuk membatasi kebijakan adalah:

Kebijakan tetap

Kebijakan tetap membatasi atribut ke nilai yang ditentukan. Untuk nilai atribut selain numerik dan boolean, nilai harus diwakili oleh atau dikonversi ke string.

Dengan kebijakan tetap, Anda juga dapat menyembunyikan atribut dari UI dengan mengatur bidang hidden ke true.

interface FixedPolicy {
    type: "fixed";
    value: string | number | boolean;
    hidden?: boolean;
}

Contoh kebijakan ini memperbaiki versi Databricks Runtime dan menyembunyikan bidang dari UI pengguna:

{
  "spark_version": { "type": "fixed", "value": "auto:latest-lts", "hidden": true }
}

Kebijakan Terlarang

Kebijakan terlarang mencegah pengguna mengonfigurasi atribut. Kebijakan terlarang hanya kompatibel dengan atribut opsional.

interface ForbiddenPolicy {
    type: "forbidden";
}

Kebijakan ini melarang menghubungkan pool ke komputasi untuk node pekerja. Pool juga dilarang pada node driver, karena driver_instance_pool_id mewarisi kebijakan.

{
  "instance_pool_id": { "type": "forbidden" }
}

kebijakan daftar izin

Kebijakan daftar izin menentukan daftar nilai yang dapat dipilih pengguna ketika mengonfigurasi atribut.

interface AllowlistPolicy {
  type: "allowlist";
  values: (string | number | boolean)[];
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

Contoh daftar izin ini memungkinkan pengguna untuk memilih antara dua versi Databricks Runtime:

{
  "spark_version": { "type": "allowlist", "values": ["13.3.x-scala2.12", "12.2.x-scala2.12"] }
}

Memaksa pengguna untuk memilih nilai dari daftar yang diizinkan

Jika Anda tidak menetapkan nilai default untuk kebijakan daftar yang diizinkan, antarmuka pengguna default ke nilai pertama dalam daftar yang diizinkan. Untuk memaksa pengguna memilih nilai secara manual, atur nilai default ke sesuatu yang tidak valid. Misalnya: defaultValue?: "SELECT A VALUE";.

Kebijakan Daftar Blokir

Kebijakan daftar blokir mencantumkan nilai yang tidak diizinkan. Karena nilai harus sama persis, kebijakan ini mungkin tidak berfungsi seperti yang diharapkan ketika atribut bersifat lenient dalam bagaimana nilai diwakili (misalnya, memungkinkan spasi di depan dan di belakang).

interface BlocklistPolicy {
  type: "blocklist";
  values: (string | number | boolean)[];
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

Contoh ini memblokir pengguna untuk memilih 7.3.x-scala2.12 sebagai Databricks Runtime.

{
  "spark_version": { "type": "blocklist", "values": ["7.3.x-scala2.12"] }
}

Kebijakan Regex

Kebijakan regex membatasi nilai yang tersedia untuk nilai yang cocok dengan regex. Untuk keamanan, pastikan regex Anda ditambatkan ke awal dan akhir dari nilai string.

interface RegexPolicy {
  type: "regex";
  pattern: string;
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

Contoh ini membatasi versi Databricks Runtime yang dapat dipilih pengguna dari:

{
  "spark_version": { "type": "regex", "pattern": "13\\.[3456].*" }
}

Kebijakan Jangkauan

Kebijakan rentang membatasi nilai ke rentang tertentu menggunakan bidang minValue dan maxValue. Nilai harus berupa angka desimal. Batas numerik harus dapat diwakili sebagai nilai titik mengambang ganda. Untuk menunjukkan kurangnya batas tertentu, Anda dapat menghilangkan minValue atau maxValue.

interface RangePolicy {
  type: "range";
  minValue?: number;
  maxValue?: number;
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

Contoh ini membatasi jumlah maksimum pekerja hingga 10:

{
  "num_workers": { "type": "range", "maxValue": 10 }
}

Kebijakan Tidak Terbatas

Kebijakan tidak terbatas digunakan untuk membuat atribut yang diperlukan atau untuk mengatur nilai default di UI.

interface UnlimitedPolicy {
  type: "unlimited";
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

Contoh ini menambahkan tag COST_BUCKET ke komputasi:

{
  "custom_tags.COST_BUCKET": { "type": "unlimited" }
}

Untuk mengatur nilai default untuk variabel konfigurasi Spark, tetapi juga memungkinkan menghilangkan (menghapus) variabel tersebut:

{
  "spark_conf.spark.my.conf": { "type": "unlimited", "isOptional": true, "defaultValue": "my_value" }
}

Bidang kebijakan pembatasan tambahan

Untuk membatasi jenis kebijakan, Anda dapat menentukan dua bidang tambahan:

  • defaultValue - Nilai yang secara otomatis terisi di UI pembuatan komputasi.
  • isOptional - Kebijakan pembatasan pada atribut secara otomatis membuatnya diperlukan. Untuk membuat atribut opsional, atur bidang isOptional ke true.

Nota

Nilai default tidak secara otomatis diterapkan ke komputasi yang dibuat dengan API Kluster. Untuk menerapkan nilai default menggunakan API, tambahkan parameter apply_policy_default_values ke definisi komputasi dan atur ke true.

Contoh kebijakan ini menentukan nilai default id1 untuk kumpulan simpul pekerja, tetapi menjadikannya opsional. Saat membuat komputasi, Anda dapat memilih kumpulan yang berbeda atau memilih untuk tidak menggunakannya. Jika driver_instance_pool_id tidak ditentukan dalam kebijakan atau saat membuat komputasi, kumpulan yang sama digunakan untuk simpul pekerja dan simpul pengemudi.

{
  "instance_pool_id": { "type": "unlimited", "isOptional": true, "defaultValue": "id1" }
}

Menulis kebijakan untuk atribut array

Anda dapat menentukan kebijakan untuk atribut array dengan dua cara:

  • Batasan generik untuk semua elemen array. Batasan ini menggunakan simbol pengganti * dalam jalur kebijakan.
  • Batasan khusus untuk elemen array pada indeks tertentu. Pembatasan ini menggunakan angka pada jalur.

Nota

Atribut jenis simpul fleksibel (worker_node_type_flexibility.alternate_node_type_ids dan driver_node_type_flexibility.alternate_node_type_ids) adalah bidang jenis array di API Kluster, tetapi tidak mengikuti pola jalur wildcard/terindeks yang didokumenkan di sini. Atribut ini memerlukan satu aturan kebijakan yang menentukan daftar lengkap sebagai string yang dipisahkan koma. Lihat Jenis node fleksibel untuk detailnya.

Misalnya, untuk atribut array init_scripts, jalur generik dimulai dengan init_scripts.* dan jalur tertentu dengan init_scripts.<n>, di mana <n> adalah indeks bilangan bulat dalam array (dimulai dengan 0). Anda dapat menggabungkan batasan generik dan spesifik, dalam hal ini batasan generik berlaku untuk setiap elemen array yang tidak memiliki batasan tertentu. Dalam setiap kasus, hanya satu batasan kebijakan yang akan berlaku.

Bagian berikut menunjukkan contoh contoh umum yang menggunakan atribut array.

Memerlukan entri yang spesifik untuk inklusi

Anda tidak dapat memerlukan nilai tertentu tanpa menentukan urutan. Misalnya:

{
  "init_scripts.0.volumes.destination": {
    "type": "fixed",
    "value": "<required-script-1>"
  },
  "init_scripts.1.volumes.destination": {
    "type": "fixed",
    "value": "<required-script-2>"
  }
}

Memerlukan nilai tetap dari seluruh daftar

{
  "init_scripts.0.volumes.destination": {
    "type": "fixed",
    "value": "<required-script-1>"
  },
  "init_scripts.*.volumes.destination": {
    "type": "forbidden"
  }
}

Melarang penggunaan sama sekali

{
  "init_scripts.*.volumes.destination": {
    "type": "forbidden"
  }
}

Perbolehkan entri yang mengikuti pembatasan tertentu

{
  "init_scripts.*.volumes.destination": {
    "type": "regex",
    "pattern": ".*<required-content>.*"
  }
}

Memperbaiki sekumpulan skrip init tertentu

Dalam kasus jalur init_scripts, array dapat berisi salah satu dari beberapa struktur dimana berbagai varian yang mungkin perlu ditangani tergantung pada kasus penggunaannya. Misalnya, untuk memerlukan serangkaian skrip init tertentu, dan melarang varian apa pun dari versi lain, Anda dapat menggunakan pola berikut:

{
  "init_scripts.0.volumes.destination": {
    "type": "fixed",
    "value": "<volume-paths>"
  },
  "init_scripts.1.volumes.destination": {
    "type": "fixed",
    "value": "<volume-paths>"
  },
  "init_scripts.*.workspace.destination": {
    "type": "forbidden"
  },
  "init_scripts.*.abfss.destination": {
    "type": "forbidden"
  },
  "init_scripts.*.file.destination": {
    "type": "forbidden"
  }
}

Contoh kebijakan

Bagian ini mencakup contoh kebijakan yang dapat Anda gunakan sebagai referensi untuk membuat kebijakan Anda sendiri. Anda juga dapat menggunakan keluarga kebijakan yang disediakan Azure Databricks sebagai templat untuk kasus penggunaan kebijakan umum.

Kebijakan komputasi umum

Kebijakan komputasi tujuan umum dimaksudkan untuk memandu pengguna dan membatasi beberapa fungsionalitas, sambil memerlukan tag, membatasi jumlah maksimum instans, dan memberlakukan batas waktu.

{
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "spark_version": {
    "type": "regex",
    "pattern": "12\\.[0-9]+\\.x-scala.*"
  },
  "node_type_id": {
    "type": "allowlist",
    "values": ["Standard_L4s", "Standard_L8s", "Standard_L16s"],
    "defaultValue": "Standard_L16s_v2"
  },
  "driver_node_type_id": {
    "type": "fixed",
    "value": "Standard_L16s_v2",
    "hidden": true
  },
  "autoscale.min_workers": {
    "type": "fixed",
    "value": 1,
    "hidden": true
  },
  "autoscale.max_workers": {
    "type": "range",
    "maxValue": 25,
    "defaultValue": 5
  },
  "autotermination_minutes": {
    "type": "fixed",
    "value": 30,
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

Menentukan batas pada komputasi Alur Deklaratif Lakeflow Spark

Nota

Saat menggunakan kebijakan untuk mengonfigurasi Lakeflow Spark Declarative Pipelines compute, Databricks merekomendasikan untuk menerapkan satu kebijakan yang sama pada komputasi default dan maintenance.

Untuk mengonfigurasi kebijakan untuk komputasi pipeline, buat kebijakan dengan bidang cluster_type disetel ke dlt. Contoh berikut membuat kebijakan minimal untuk komputasi Alur Deklaratif Lakeflow Spark:

{
  "cluster_type": {
    "type": "fixed",
    "value": "dlt"
  },
  "num_workers": {
    "type": "unlimited",
    "defaultValue": 3,
    "isOptional": true
  },
  "node_type_id": {
    "type": "unlimited",
    "isOptional": true
  },
  "spark_version": {
    "type": "unlimited",
    "hidden": true
  }
}

Kebijakan berukuran sedang yang sederhana

Memungkinkan pengguna membuat komputasi berukuran sedang dengan konfigurasi minimal. Satu-satunya field yang wajib diisi saat pembuatan adalah nama komputasi; sisanya sudah diatur dan disembunyikan.

{
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "forbidden",
    "hidden": true
  },
  "autoscale.min_workers": {
    "type": "fixed",
    "value": 1,
    "hidden": true
  },
  "autoscale.max_workers": {
    "type": "fixed",
    "value": 10,
    "hidden": true
  },
  "autotermination_minutes": {
    "type": "fixed",
    "value": 60,
    "hidden": true
  },
  "node_type_id": {
    "type": "fixed",
    "value": "Standard_L8s_v2",
    "hidden": true
  },
  "driver_node_type_id": {
    "type": "fixed",
    "value": "Standard_L8s_v2",
    "hidden": true
  },
  "spark_version": {
    "type": "fixed",
    "value": "auto:latest-ml",
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

Kebijakan yang hanya berfokus pada pekerjaan

Memungkinkan pengguna membuat perhitungan tugas untuk menjalankan pekerjaan. Pengguna tidak dapat membuat komputasi semua tujuan menggunakan kebijakan ini.

{
  "cluster_type": {
    "type": "fixed",
    "value": "job"
  },
  "dbus_per_hour": {
    "type": "range",
    "maxValue": 100
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "num_workers": {
    "type": "range",
    "minValue": 1
  },
  "node_type_id": {
    "type": "regex",
    "pattern": "Standard_[DLS]*[1-6]{1,2}_v[2,3]"
  },
  "driver_node_type_id": {
    "type": "regex",
    "pattern": "Standard_[DLS]*[1-6]{1,2}_v[2,3]"
  },
  "spark_version": {
    "type": "unlimited",
    "defaultValue": "auto:latest-lts"
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

Kebijakan metastore eksternal

Memungkinkan pengguna membuat komputasi dengan metastore yang sudah ditentukan oleh admin dan terlampir. Ini berguna untuk memungkinkan pengguna membuat komputasi mereka sendiri tanpa memerlukan konfigurasi tambahan.

{
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionURL": {
    "type": "fixed",
    "value": "jdbc:sqlserver://<jdbc-url>"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionDriverName": {
    "type": "fixed",
    "value": "com.microsoft.sqlserver.jdbc.SQLServerDriver"
  },
  "spark_conf.spark.databricks.delta.preview.enabled": {
    "type": "fixed",
    "value": "true"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionUserName": {
    "type": "fixed",
    "value": "<metastore-user>"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionPassword": {
    "type": "fixed",
    "value": "<metastore-password>"
  }
}

Memastikan sumber daya komputasi tidak digunakan dengan pekerjaan

Kebijakan ini mencegah pengguna menggunakan komputasi untuk menjalankan pekerjaan. Pengguna hanya akan dapat menggunakan komputasi dengan notebook.

{
  "workload_type.clients.notebooks": {
    "type": "fixed",
    "value": true
  },
  "workload_type.clients.jobs": {
    "type": "fixed",
    "value": false
  }
}

Menghapus kebijakan penskalakan otomatis

Kebijakan ini menonaktifkan penskalaan otomatis dan memungkinkan pengguna untuk mengatur jumlah pekerja dalam rentang tertentu.

{
  "num_workers": {
    "type": "range",
    "maxValue": 25,
    "minValue": 1,
    "defaultValue": 5
  }
}

Penerapan tag kustom

Untuk menambahkan aturan tag komputasi ke kebijakan, gunakan atribut custom_tags.<tag-name>.

Misalnya, setiap pengguna yang menggunakan kebijakan ini perlu mengisi tag COST_CENTER dengan 9999, 9921, atau 9531 agar komputasi diluncurkan:

{ "custom_tags.COST_CENTER": { "type": "allowlist", "values": ["9999", "9921", "9531"] } }