Mengembangkan pekerjaan di Azure Databricks menggunakan Bundel Aset Databricks
Bundel Aset Databricks, juga dikenal sebagai bundel, berisi artefak yang ingin Anda sebarkan dan pengaturan untuk sumber daya Azure Databricks seperti pekerjaan yang ingin Anda jalankan, dan memungkinkan Anda memvalidasi, menyebarkan, dan menjalankannya secara terprogram. Lihat Apa itu Bundel Aset Databricks?.
Artikel ini menjelaskan cara membuat bundel untuk mengelola pekerjaan secara terprogram. Lihat Menjadwalkan dan mengatur alur kerja. Bundel dibuat menggunakan templat bundel default Bundel Aset Databricks untuk Python, yang terdiri dari notebook yang dipasangkan dengan definisi pekerjaan untuk menjalankannya. Anda kemudian memvalidasi, menyebarkan, dan menjalankan pekerjaan yang disebarkan di ruang kerja Azure Databricks Anda.
Tip
Jika Anda memiliki pekerjaan yang sudah ada yang dibuat menggunakan antarmuka pengguna atau API Azure Databricks Jobs yang ingin Anda pindahkan ke bundel, Anda harus menentukannya dalam file konfigurasi bundel. Databricks merekomendasikan agar Anda terlebih dahulu membuat bundel menggunakan langkah-langkah di bawah ini lalu memvalidasi apakah bundel berfungsi. Anda kemudian dapat menambahkan definisi pekerjaan tambahan, notebook, dan sumber lain ke bundel. Lihat Menambahkan definisi pekerjaan yang sudah ada ke bundel.
Persyaratan
- Databricks CLI versi 0.218.0 atau lebih tinggi. Untuk memeriksa versi Databricks CLI yang diinstal, jalankan perintah
databricks -v
. Untuk menginstal Databricks CLI, lihat Menginstal atau memperbarui Databricks CLI. - Ruang kerja Databricks jarak jauh harus mengaktifkan file ruang kerja. Lihat Apa itu file ruang kerja?.
Membuat bundel menggunakan templat proyek
Pertama, buat bundel menggunakan templat Python default Bundel Aset Databricks. Untuk informasi selengkapnya tentang templat bundel, lihat Templat proyek Bundel Aset Databricks.
Jika Anda ingin membuat bundel dari awal, lihat Membuat bundel secara manual.
Langkah 1: Menyiapkan autentikasi
Dalam langkah ini, Anda menyiapkan autentikasi antara Databricks CLI di komputer pengembangan dan ruang kerja Azure Databricks Anda. Artikel ini mengasumsikan bahwa Anda ingin menggunakan autentikasi pengguna-ke-mesin (U2M) OAuth dan profil konfigurasi Azure Databricks terkait bernama DEFAULT
untuk autentikasi.
Catatan
Autentikasi U2M sesuai untuk mencoba langkah-langkah ini secara real time. Untuk alur kerja yang sepenuhnya otomatis, Databricks menyarankan agar Anda menggunakan autentikasi mesin-ke-mesin (M2M) OAuth sebagai gantinya. Lihat instruksi penyiapan autentikasi M2M di Autentikasi.
Gunakan Databricks CLI untuk memulai manajemen token OAuth secara lokal dengan menjalankan perintah berikut untuk setiap ruang kerja target.
Dalam perintah berikut, ganti
<workspace-url>
dengan URL per ruang kerja Azure Databricks Anda, misalnyahttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI meminta Anda untuk menyimpan informasi yang Anda masukkan sebagai profil konfigurasi Azure Databricks. Tekan
Enter
untuk menerima nama profil yang disarankan, atau masukkan nama profil baru atau yang sudah ada. Profil yang ada dengan nama yang sama ditimpa dengan informasi yang Anda masukkan. Anda dapat menggunakan profil untuk mengalihkan konteks autentikasi dengan cepat di beberapa ruang kerja.Untuk mendapatkan daftar profil yang ada, di terminal atau prompt perintah terpisah, gunakan Databricks CLI untuk menjalankan perintah
databricks auth profiles
. Untuk melihat pengaturan profil tertentu yang sudah ada, jalankan perintahdatabricks auth env --profile <profile-name>
.Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.
Untuk melihat nilai token OAuth profil saat ini dan tanda waktu kedaluwarsa token yang akan datang, jalankan salah satu perintah berikut:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Jika Anda memiliki beberapa profil dengan nilai yang sama
--host
, Anda mungkin perlu menentukan--host
opsi dan-p
bersama-sama untuk membantu Databricks CLI menemukan informasi token OAuth yang cocok dengan benar.
Langkah 2: Menginisialisasi bundel
Menginisialisasi bundel menggunakan templat proyek bundel Python default.
Gunakan terminal atau perintah Anda untuk beralih ke direktori pada komputer pengembangan lokal Anda yang akan berisi bundel templat yang dihasilkan.
Gunakan Databricks CLI untuk menjalankan
bundle init
perintah:databricks bundle init
Untuk
Template to use
, biarkan nilaidefault-python
default dengan menekanEnter
.Untuk
Unique name for this project
, biarkan nilaimy_project
default , atau ketik nilai yang berbeda, lalu tekanEnter
. Ini menentukan nama direktori akar untuk bundel ini. Direktori akar ini dibuat di direktori kerja Anda saat ini.Untuk
Include a stub (sample) notebook
, pilihyes
dan tekanEnter
.Untuk
Include a stub (sample) DLT pipeline
, pilihno
dan tekanEnter
. Ini menginstruksikan Databricks CLI untuk tidak menentukan sampel alur Delta Live Tables di bundel Anda.Untuk
Include a stub (sample) Python package
, pilihno
dan tekanEnter
. Ini menginstruksikan Databricks CLI untuk tidak menambahkan sampel file paket roda Python atau instruksi build terkait ke bundel Anda.
Langkah 3: Jelajahi bundel
Untuk melihat file yang dihasilkan templat, beralihlah ke direktori akar bundel yang baru Dibuat. File yang menarik meliputi yang berikut ini:
databricks.yml
: File ini menentukan nama terprogram bundel, menyertakan referensi ke definisi pekerjaan, dan menentukan pengaturan tentang ruang kerja target.resources/<project-name>_job.yml
: File ini menentukan pengaturan pekerjaan, termasuk tugas buku catatan default.src/notebook.ipynb
: File ini adalah contoh notebook yang, saat dijalankan, hanya menginisialisasi RDD yang berisi angka 1 hingga 10.
Untuk menyesuaikan pekerjaan, pemetaan dalam deklarasi pekerjaan sesuai dengan payload permintaan, yang dinyatakan dalam format YAML, dari operasi buat pekerjaan seperti yang didokumentasikan dalam POST /api/2.1/jobs/create dalam referensi REST API.
Tip
Anda dapat menentukan, menggabungkan, dan mengambil alih pengaturan untuk kluster pekerjaan baru dalam bundel dengan menggunakan teknik yang dijelaskan dalam Mengambil alih pengaturan kluster di Bundel Aset Databricks.
Langkah 4: Memvalidasi file konfigurasi bundel proyek
Dalam langkah ini, Anda memeriksa apakah konfigurasi bundel valid.
Dari direktori akar, gunakan Databricks CLI untuk menjalankan
bundle validate
perintah, sebagai berikut:databricks bundle validate
Jika ringkasan konfigurasi bundel dikembalikan, maka validasi berhasil. Jika ada kesalahan yang dikembalikan, perbaiki kesalahan, lalu ulangi langkah ini.
Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah ini untuk memeriksa apakah konfigurasi bundel Anda masih valid.
Langkah 5: Sebarkan proyek lokal ke ruang kerja jarak jauh
Dalam langkah ini, Anda menyebarkan notebook lokal ke ruang kerja Azure Databricks jarak jauh dan membuat pekerjaan Azure Databricks di dalam ruang kerja Anda.
Dari akar bundel, gunakan Databricks CLI untuk menjalankan
bundle deploy
perintah sebagai berikut:databricks bundle deploy -t dev
Periksa apakah buku catatan lokal disebarkan: Di bilah samping ruang kerja Azure Databricks Anda, klik Ruang Kerja.
Klik folder src File dev .bundel> >
<project-name>
Pengguna.<your-username>
>> > > Buku catatan harus berada di folder ini.Periksa apakah pekerjaan dibuat: Di bar samping ruang kerja Azure Databricks Anda, klik Alur Kerja.
Pada tab Pekerjaan, klik [dev
<your-username>
]<project-name>_job
.Klik tab Tugas . Harus ada satu tugas: notebook_task.
Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 4-5 untuk memeriksa apakah konfigurasi bundel Anda masih valid lalu menyebarkan ulang proyek.
Langkah 6: Jalankan proyek yang disebarkan
Dalam langkah ini, Anda memicu eksekusi pekerjaan Azure Databricks di ruang kerja Anda dari baris perintah.
Dari direktori akar, gunakan Databricks CLI untuk menjalankan
bundle run
perintah, sebagai berikut, mengganti<project-name>
dengan nama proyek Anda dari Langkah 2:databricks bundle run -t dev <project-name>_job
Salin nilai
Run URL
yang muncul di terminal Anda dan tempelkan nilai ini ke browser web Anda untuk membuka ruang kerja Azure Databricks Anda. Lihat Menampilkan dan menjalankan pekerjaan yang dibuat dengan Bundel Aset DatabricksDi ruang kerja Azure Databricks Anda, setelah tugas pekerjaan berhasil diselesaikan dan memperlihatkan bilah judul hijau, klik tugas pekerjaan untuk melihat hasilnya.
Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 4-6 untuk memeriksa apakah konfigurasi bundel Anda masih valid, menyebarkan ulang proyek, dan menjalankan proyek yang disebarkan ulang.
Langkah 7: Bersihkan
Dalam langkah ini, Anda menghapus notebook dan pekerjaan yang disebarkan dari ruang kerja Anda.
Dari direktori akar, gunakan Databricks CLI untuk menjalankan
bundle destroy
perintah, sebagai berikut:databricks bundle destroy -t dev
Konfirmasikan permintaan penghapusan pekerjaan: Ketika diminta untuk menghancurkan sumber daya secara permanen, ketik
y
dan tekanEnter
.Konfirmasikan permintaan penghapusan buku catatan: Ketika diminta untuk menghancurkan folder yang disebarkan sebelumnya secara permanen dan semua filenya, ketik
y
dan tekanEnter
.Jika Anda juga ingin menghapus bundel dari komputer pengembangan, Anda sekarang dapat menghapus direktori lokal dari Langkah 2.
Menambahkan definisi pekerjaan yang sudah ada ke bundel
Anda dapat menggunakan pekerjaan yang ada sebagai dasar untuk menentukan pekerjaan dalam file konfigurasi bundel. Untuk mendapatkan definisi pekerjaan yang ada, Anda dapat mengambilnya secara manual menggunakan UI, atau Anda dapat membuatnya secara terprogram menggunakan Databricks CLI.
Untuk informasi tentang definisi pekerjaan dalam bundel, lihat pekerjaan.
Mendapatkan definisi pekerjaan yang sudah ada menggunakan UI
Untuk mendapatkan representasi YAML dari definisi pekerjaan yang ada dari antarmuka pengguna ruang kerja Azure Databricks:
Di bar samping ruang kerja Azure Databricks Anda, klik Alur Kerja.
Pada tab Pekerjaan, klik tautan Nama pekerjaan Anda.
Di samping tombol Jalankan sekarang , klik kebab, lalu klik Beralih ke kode (YAML).
Tambahkan YAML yang Anda salin ke file bundel
databricks.yml
Anda, atau buat file konfigurasi untuk pekerjaan Anda diresources
direktori proyek bundel Anda dan referensikan dari file Andadatabricks.yml
. Lihat (/dev-tools/bundles/settings.md#resources).Unduh dan tambahkan file dan notebook Python apa pun yang dirujuk dalam pekerjaan yang ada ke sumber proyek bundel. Biasanya artefak bundel berada di
src
direktori dalam bundel.Tip
Anda bisa mengekspor buku catatan yang sudah ada dari ruang kerja Azure Databricks ke dalam
.ipynb
format dengan mengklik Ekspor > File > IPython Notebook dari antarmuka pengguna buku catatan Azure Databricks.Setelah Anda menambahkan buku catatan, file Python, dan artefak lainnya ke bundel, pastikan definisi pekerjaan Anda mereferensikannya dengan benar. Misalnya, untuk buku catatan bernama
hello.ipynb
yang ada disrc
direktori bundel:resources: jobs: hello-job: name: hello-job tasks: - task_key: hello-task notebook_task: notebook_path: ../src/hello.ipynb
Membuat definisi pekerjaan yang ada menggunakan Databricks CLI
Untuk menghasilkan konfigurasi bundel secara terprogram untuk pekerjaan yang ada:
Ambil ID pekerjaan yang ada dari panel sisi Detail pekerjaan untuk pekerjaan di UI Pekerjaan, atau gunakan perintah Databricks CLI
databricks jobs list
.Jalankan
bundle generate job
perintah Databricks CLI, atur ID pekerjaan:databricks bundle generate job --existing-job-id 6565621249
Perintah ini membuat file konfigurasi bundel untuk pekerjaan di folder bundel
resources
dan mengunduh artefak yang dirujuk kesrc
folder.Tip
Jika Anda pertama kali menggunakan
bundle deployment bind
untuk mengikat sumber daya dalam bundel ke sumber daya di ruang kerja, sumber daya di ruang kerja diperbarui berdasarkan konfigurasi yang ditentukan dalam bundel yang terikat setelah berikutnyabundle deploy
. Untuk informasi tentangbundle deployment bind
, lihat Mengikat sumber daya bundel.
Mengonfigurasi pekerjaan yang menggunakan komputasi tanpa server
Contoh berikut menunjukkan konfigurasi bundel untuk membuat pekerjaan yang menggunakan komputasi tanpa server.
Untuk menggunakan komputasi tanpa server untuk menjalankan pekerjaan yang menyertakan tugas buku catatan, hilangkan job_clusters
konfigurasi dari file konfigurasi bundel.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job-serverless:
name: retrieve-filter-baby-names-job-serverless
tasks:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Untuk menggunakan komputasi tanpa server untuk menjalankan pekerjaan yang menyertakan tugas Python, sertakan environments
konfigurasi.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: serverless-python-tasks
resources:
jobs:
serverless-python-job:
name: serverless-job-with-python-tasks
tasks:
- task_key: wheel-task-1
python_wheel_task:
entry_point: main
package_name: wheel_package
environment_key: Default
environments:
- environment_key: Default
spec:
client: "1"
dependencies:
- workflows_authoring_toolkit==0.0.1
targets:
development:
workspace:
host: <workspace-url>
Lihat Menjalankan pekerjaan Azure Databricks Anda dengan komputasi tanpa server untuk alur kerja.