Templat proyek Bundel Aset Databricks
Artikel ini menguraikan sintaks untuk templat Bundel Aset Databricks. Bundel memungkinkan manajemen terprogram alur kerja Azure Databricks. Lihat Apa itu Bundel Aset Databricks?
Templat bundel memungkinkan pengguna membuat bundel dengan cara yang konsisten dan dapat diulang, dengan membuat struktur folder, membuat langkah dan tugas, pengujian, dan atribut infrastruktur sebagai kode (IaC) DevOps lainnya yang umum di seluruh alur penyebaran lingkungan pengembangan.
Misalnya, jika Anda secara rutin menjalankan pekerjaan Databricks yang memerlukan paket kustom dengan langkah kompilasi yang memakan waktu setelah penginstalan, Anda dapat mempercepat perulangan pengembangan dengan membuat templat bundel yang mendukung lingkungan kontainer kustom.
Templat bundel menentukan struktur direktori bundel yang akan dibuat, dan menyertakan databricks.yml.tmpl
templat file konfigurasi serta file yang databricks_template_schema.json
berisi variabel permintaan pengguna.
Menggunakan templat bundel default
Untuk menggunakan templat bundel default Azure Databricks untuk membuat bundel Anda, gunakan perintah Databricks CLIbundle init
, menentukan nama templat default yang akan digunakan. Misalnya, perintah berikut membuat bundel menggunakan templat bundel Python default:
databricks bundle init default-python
Jika Anda tidak menentukan templat default, bundle init
perintah menyajikan sekumpulan templat yang tersedia yang dapat Anda pilih.
Azure Databricks menyediakan templat bundel default berikut:
Templat | Deskripsi |
---|---|
default-python |
Templat untuk menggunakan Python dengan Databricks. Templat ini membuat bundel dengan pekerjaan dan alur Delta Live Tables. Lihat default-python. |
default-sql |
Templat untuk menggunakan SQL dengan Databricks. Templat ini berisi file konfigurasi yang menentukan pekerjaan yang menjalankan kueri SQL pada gudang SQL. Lihat default-sql. |
dbt-sql |
Templat yang memanfaatkan dbt-core untuk pengembangan dan bundel lokal untuk penyebaran. Templat ini berisi konfigurasi yang menentukan pekerjaan dengan tugas dbt, serta file konfigurasi yang menentukan profil dbt untuk pekerjaan dbt yang disebarkan. Lihat dbt-sql. |
mlops-stacks |
Templat tumpukan penuh tingkat lanjut untuk memulai proyek MLOps Stacks baru. Lihat mlops-stacks dan Databricks Asset Bundles untuk MLOps Stacks. |
Menggunakan templat bundel kustom
Untuk menggunakan templat bundel selain templat bundel default Azure Databricks, teruskan jalur lokal atau URL jarak jauh templat ke perintah Databricks CLIbundle init
.
Misalnya, perintah berikut menggunakan templat yang dab-container-template
dibuat dalam Tutorial Templat Bundel Kustom:
databricks bundle init /projects/my-custom-bundle-templates/dab-container-template
Membuat templat bundel kustom
Templat bundel menggunakan sintaks templat paket Go. Lihat dokumentasi templat paket Go.
Minimal, proyek templat bundel harus memiliki:
- File
databricks_template_schema.json
di akar proyek yang menentukan satu variabel permintaan pengguna untuk nama proyek bundel. - File
databricks.yml.tmpl
yangtemplate
terletak di folder yang menentukan konfigurasi untuk bundel apa pun yang dibuat dengan templat. Jika file Andadatabricks.yml.tmpl
mereferensikan templat konfigurasi tambahan*.yml.tmpl
, tentukan lokasinya dalaminclude
pemetaan.
Anda dapat secara opsional menambahkan sub-folder dan file ke template
folder yang ingin Anda cerminkan dalam bundel yang dibuat oleh templat.
Menentukan variabel permintaan pengguna
Langkah pertama dalam membangun templat bundel dasar adalah membuat folder proyek templat dan file bernama databricks_template_schema.json
di akar proyek. File ini berisi variabel yang disediakan pengguna nilai input ketika mereka menggunakan templat untuk membuat bundel menggunakan bundle init
. Format file ini mengikuti Spesifikasi Skema JSON.
mkdir basic-bundle-template
touch basic-bundle-template/databricks_template_schema.json
Tambahkan yang berikut ini ke databricks_template_schema.json
file, lalu simpan file:
{
"properties": {
"project_name": {
"type": "string",
"default": "basic_bundle",
"description": "What is the name of the bundle you want to create?",
"order": 1
}
},
"success_message": "\nYour bundle '{{.project_name}}' has been created."
}
Dalam berkas ini:
project_name
adalah satu-satunya nama variabel input.default
adalah nilai default opsional jika nilai tidak disediakan oleh pengguna sebagai--config-file
bagianbundle init
dari perintah, atau ditimpa oleh pengguna pada prompt perintah.description
adalah perintah pengguna yang terkait dengan variabel input, jika nilai tidak disediakan oleh pengguna sebagai--config-file
bagianbundle init
dari perintah.order
adalah urutan opsional di mana setiap permintaan pengguna muncul jika nilai tidak disediakan oleh pengguna sebagai--config-file
bagianbundle init
dari perintah. Jikaorder
tidak disediakan, maka permintaan pengguna ditampilkan dalam urutan di mana mereka tercantum dalam skema.success_message
adalah pesan opsional yang ditampilkan setelah pembuatan proyek berhasil.
Membangun struktur folder
Selanjutnya, buat folder yang diperlukan template
dan buat struktur folder di dalamnya. Struktur ini akan dicerminkan oleh bundel yang dibuat dengan templat ini. Selain itu, letakkan file apa pun yang ingin Anda sertakan ke dalam folder tersebut. Templat bundel dasar ini menyimpan file dalam src
folder dan menyertakan satu buku catatan sederhana.
mkdir -p basic-bundle-template/template/src
touch basic-bundle-template/template/src/simple_notebook.ipynb
Tambahkan yang berikut ini ke simple_notebook.ipynb
file:
print("Hello World!")
Mengisi file templat konfigurasi
Sekarang buat file yang diperlukan databricks.yml.tmpl
di template
folder:
touch basic-bundle-template/template/databricks.yml.tmpl
Isi file ini dengan YAML templat konfigurasi dasar. Templat konfigurasi ini menetapkan nama bundel, satu pekerjaan menggunakan file notebook yang ditentukan, dan dua lingkungan target untuk bundel yang dibuat menggunakan templat ini. Ini juga memanfaatkan substitusi bundel, yang sangat direkomendasikan. Lihat substitusi bundel.
# This is the configuration for the Databricks Asset Bundle {{.project_name}}.
bundle:
name: {{.project_name}}
# The main job for {{.project_name}}
resources:
jobs:
{{.project_name}}_job:
name: {{.project_name}}_job
tasks:
- task_key: notebook_task
job_cluster_key: job_cluster
notebook_task:
notebook_path: ../src/simple_notebook.ipynb
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
targets:
# The deployment targets. See https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html
dev:
mode: development
default: true
workspace:
host: {{workspace_host}}
prod:
mode: production
workspace:
host: {{workspace_host}}
root_path: /Shared/.bundle/prod/${bundle.name}
{{- if not is_service_principal}}
run_as:
# This runs as {{user_name}} in production. Alternatively,
# a service principal could be used here using service_principal_name
user_name: {{user_name}}
{{end -}}
Menguji templat bundel
Terakhir, uji templat Anda. Buat folder proyek bundel baru, lalu gunakan Databricks CLI untuk menginisialisasi bundel baru menggunakan templat:
mkdir my-test-bundle
cd my-test-bundle
databricks bundle init ../basic-bundle-template
Untuk perintah, What is your bundle project name?
, ketik my_test_bundle
.
Setelah bundel pengujian dibuat, pesan keberhasilan dari file skema adalah output. Jika Anda memeriksa konten my-test-bundle
folder, Anda akan melihat hal berikut:
my-test-bundle
├── databricks.yml
└── src
└── simple_notebook.ipynb
Dan file databricks.yml sekarang disesuaikan:
# This is the configuration for the Databricks Asset Bundle my-test-bundle.
bundle:
name: my-test-bundle
# The main job for my-test-bundle
resources:
jobs:
my-test-bundle_job:
name: my-test-bundle_job
tasks:
- task_key: notebook_task
job_cluster_key: job_cluster
notebook_task:
notebook_path: ../src/simple_notebook.ipynb
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
targets:
# The 'dev' target, used for development purposes. See [_](https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html#development-mode)
dev:
mode: development
default: true
workspace:
host: https://my-host.cloud.databricks.com
# The 'prod' target, used for production deployment. See [_](https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html#production-mode)
prod:
mode: production
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/.bundle/prod/${bundle.name}
run_as:
# This runs as someone@example.com in production. Alternatively,
# a service principal could be used here using service_principal_name
user_name: someone@example.com
Berbagi templat
Jika Anda ingin berbagi templat bundel ini dengan orang lain, Anda dapat menyimpannya dalam kontrol versi dengan penyedia apa pun yang didukung Git dan yang dapat diakses pengguna Anda. Untuk menjalankan bundle init
perintah dengan URL Git, pastikan file databricks_template_schema.json
berada di lokasi akar relatif terhadap URL Git tersebut.
Tip
Anda dapat menempatkan file di databricks_template_schema.json
folder yang berbeda, relatif terhadap akar bundel. Anda kemudian dapat menggunakan bundle init
opsi perintah --template-dir
untuk mereferensikan folder tersebut databricks_template_schema.json
, yang berisi file.
Langkah berikutnya
- Telusuri templat tambahan yang dibuat dan dikelola oleh Databricks. Lihat repositori sampel bundel di GitHub.
- Untuk menggunakan Tumpukan MLOps dengan templat Bundel Aset Databricks, lihat Bundel Aset Databricks untuk Tumpukan MLOps.
- Pelajari selengkapnya tentang templat paket Go. Lihat dokumentasi templat paket Go.