Mengotomatiskan pembuatan dan manajemen pekerjaan
Artikel ini menunjukkan kepada Anda cara memulai alat pengembang untuk mengotomatiskan pembuatan dan manajemen pekerjaan. Ini memperkenalkan Anda ke Databricks CLI, Databricks SDK, dan REST API.
Nota
Artikel ini menyediakan contoh untuk membuat dan mengelola pekerjaan menggunakan Databricks CLI, Databricks Python SDK, dan REST API sebagai pengantar yang mudah untuk alat-alat tersebut. Untuk mengelola pekerjaan secara terprogram sebagai bagian dari CI/CD, gunakan Databricks Asset Bundles (DAB) atau penyedia Databricks Terraform .
Membandingkan alat
Tabel berikut membandingkan Databricks CLI, Databricks SDK, dan REST API untuk membuat dan mengelola pekerjaan secara terprogram. Untuk mempelajari tentang semua alat pengembang yang tersedia, lihat Alat pengembangan lokal.
Alat | Deskripsi |
---|---|
Databricks CLI | Akses fungsionalitas Databricks menggunakan antarmuka baris perintah (CLI) Databricks, yang membungkus REST API. Gunakan CLI untuk tugas satu kali seperti percobaan, pembuatan skrip shell, dan mengakses REST API secara langsung. |
Databricks SDK | Mengembangkan aplikasi dan membuat alur kerja Databricks kustom menggunakan Databricks SDK, tersedia untuk Python, Java, Go, atau R. Alih-alih mengirim panggilan REST API secara langsung menggunakan curl atau Postman, Anda dapat menggunakan SDK untuk berinteraksi dengan Databricks. |
Databricks REST API | Jika tidak ada opsi di atas yang berfungsi untuk kasus penggunaan spesifik Anda, Anda dapat menggunakan Databricks REST API secara langsung. Gunakan REST API secara langsung untuk kasus penggunaan seperti mengotomatiskan proses di mana SDK dalam bahasa pemrograman pilihan Anda saat ini tidak tersedia. |
Mulai menggunakan Databricks CLI
Untuk menginstal dan mengonfigurasi autentikasi untuk Databricks CLI, lihat Menginstal atau memperbarui Databricks CLI dan Autentikasi untuk Databricks CLI.
Databricks CLI memiliki grup perintah untuk fitur Databricks, termasuk satu untuk pekerjaan, yang berisi sekumpulan perintah terkait, yang juga dapat berisi subperintah. Grup perintah jobs
memungkinkan Anda mengelola pekerjaan dan jalannya pekerjaan dengan tindakan seperti create
, delete
, dan get
. Karena CLI menggunakan Databricks REST API, sebagian besar perintah CLI sesuai dengan permintaan REST API. Misalnya, databricks jobs get
dipetakan ke GET/api/2.2/jobs/get
.
Untuk menghasilkan informasi penggunaan dan sintaks yang lebih terperinci untuk grup perintah pekerjaan, perintah individual, atau subperintah, gunakan bendera h
:
databricks jobs -h
databricks jobs <command-name> -h
databricks jobs <command-name> <subcommand-name> -h
Contoh: Mengambil tugas Databricks menggunakan CLI
Untuk mencetak informasi tentang pekerjaan individual di ruang kerja, jalankan perintah berikut:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
Perintah ini mengembalikan JSON:
{
"created_time":1730983530082,
"creator_user_name":"someone@example.com",
"job_id":478701692316314,
"run_as_user_name":"someone@example.com",
"settings": {
"email_notifications": {
"no_alert_for_skipped_runs":false
},
"format":"MULTI_TASK",
"max_concurrent_runs":1,
"name":"job_name",
"tasks": [
{
"email_notifications": {},
"notebook_task": {
"notebook_path":"/Workspace/Users/someone@example.com/directory",
"source":"WORKSPACE"
},
"run_if":"ALL_SUCCESS",
"task_key":"success",
"timeout_seconds":0,
"webhook_notifications": {}
},
{
"depends_on": [
{
"task_key":"success"
}
],
"disable_auto_optimization":true,
"email_notifications": {},
"max_retries":3,
"min_retry_interval_millis":300000,
"notebook_task": {
"notebook_path":"/Workspace/Users/someone@example.com/directory",
"source":"WORKSPACE"
},
"retry_on_timeout":false,
"run_if":"ALL_SUCCESS",
"task_key":"fail",
"timeout_seconds":0,
"webhook_notifications": {}
}
],
"timeout_seconds":0,
"webhook_notifications": {}
}
}
Contoh: Membuat pekerjaan Databricks menggunakan CLI
Contoh berikut menggunakan Databricks CLI untuk membuat tugas Databricks. Pekerjaan ini berisi satu tugas yang menjalankan buku catatan yang ditentukan. Notebook ini memiliki dependensi pada versi tertentu dari paket PyPI wheel
. Untuk menjalankan tugas ini, pekerjaan untuk sementara membuat kluster yang mengekspor variabel lingkungan bernama PYSPARK_PYTHON
. Setelah pekerjaan selesai dijalankan, kluster dihentikan.
Salin dan tempel JSON berikut ke dalam file. Anda dapat mengakses format JSON dari pekerjaan yang ada dengan memilih opsi Tampilkan JSON dari UI halaman pekerjaan.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }
Jalankan perintah berikut, ganti
<file-path>
dengan jalur dan nama file yang baru saja Anda buat.databricks jobs create --json @<file-path>
Mulai menggunakan Databricks SDK
Databricks menyediakan SDK yang memungkinkan Anda mengotomatiskan operasi menggunakan bahasa pemrograman populer seperti Python, Java, dan Go. Bagian ini menunjukkan kepada Anda cara mulai menggunakan Python SDK untuk membuat dan mengelola pekerjaan Databricks.
Anda dapat menggunakan Databricks SDK dari notebook Databricks Anda atau dari komputer pengembangan lokal Anda. Jika Anda menggunakan komputer pengembangan lokal, pastikan Anda terlebih dahulu menyelesaikan Mulai menggunakan Databricks SDK untuk Python.
Nota
Jika Anda mengembangkan dari notebook Databricks dan menggunakan kluster yang menggunakan Databricks Runtime 12.2 LTS dan di bawahnya, Anda harus menginstal Databricks SDK untuk Python terlebih dahulu. Lihat Menginstal atau meningkatkan Databricks SDK untuk Python.
Contoh: Membuat pekerjaan Databricks menggunakan Python SDK
Contoh kode buku catatan berikut membuat pekerjaan Databricks yang menjalankan buku catatan yang sudah ada. Ini mengambil jalur buku catatan yang ada dan pengaturan pekerjaan terkait dengan perintah.
Pertama, pastikan bahwa versi SDK yang benar telah diinstal:
%pip install --upgrade databricks-sdk==0.40.0
%restart_python
Selanjutnya, untuk membuat pekerjaan dengan tugas buku catatan, jalankan yang berikut ini, menjawab perintah:
from databricks.sdk.service.jobs import JobSettings as Job
from databricks.sdk import WorkspaceClient
job_name = input("Provide a short name for the job, for example, my-job: ")
notebook_path = input("Provide the workspace path of the notebook to run, for example, /Users/someone@example.com/my-notebook: ")
task_key = input("Provide a unique key to apply to the job's tasks, for example, my-key: ")
test_sdk = Job.from_dict(
{
"name": job_name ,
"tasks": [
{
"task_key": task_key,
"notebook_task": {
"notebook_path": notebook_path,
"source": "WORKSPACE",
},
},
],
}
)
w = WorkspaceClient()
j = w.jobs.create(**test_sdk.as_shallow_dict())
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Mulai menggunakan Databricks REST API
Nota
Databricks merekomendasikan penggunaan databricks CLI dan Databricks SDK, kecuali Anda menggunakan bahasa pemrograman yang tidak memiliki Databricks SDK yang sesuai.
Contoh berikut membuat permintaan ke Databricks REST API untuk mengambil detail untuk satu pekerjaan. Ini mengasumsikan variabel lingkungan DATABRICKS_HOST
dan DATABRICKS_TOKEN
telah ditetapkan seperti yang dijelaskan dalam Melakukan autentikasi token akses pribadi Azure Databricks.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Untuk informasi tentang menggunakan Databricks REST API, lihat dokumentasi referensi Databricks REST API.
Bersihkan
Untuk menghapus pekerjaan apa pun yang baru saja Anda buat, jalankan databricks jobs delete <job-id>
dari Databricks CLI atau hapus pekerjaan langsung dari UI ruang kerja Databricks.
Langkah berikutnya
- Untuk mempelajari selengkapnya tentang Databricks CLI, lihat Apa itu Databricks CLI? dan perintah Databricks CLI untuk mempelajari tentang grup perintah lainnya.
- Untuk mempelajari selengkapnya tentang Databricks SDK, lihat Menggunakan SDK dengan Azure Databricks.
- Untuk mempelajari lebih lanjut tentang CI/CD dengan menggunakan Databricks, Anda bisa merujuk ke Bundel Aset Databricks dan penyedia Databricks Terraform serta Terraform CDKTF untuk Databricks.
- Untuk gambaran umum komprehensif semua alat pengembang, lihat Alat pengembangan lokal.