Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Databricks merekomendasikan agar Anda menggunakan Bundel Otomatisasi Deklaratif alih-alih dbx oleh Databricks Labs. Artikel terkait tentang dbx telah dihentikan dan mungkin tidak diperbarui.
Artikel ini menjelaskan cara memindahkan proyek yang dikembangkan oleh Databricks Labs ke Bundel Automasi Deklaratif. Lihat Pengantar dbx oleh Databricks Labs dan Apa itu Bundel Otomatisasi Deklaratif?.
Sebelum Anda bermigrasi, perhatikan batasan dan perbandingan fitur berikut antara dbx oleh Databricks Labs dan Bundel Otomatisasi Deklaratif.
Perbandingan fitur
Sebelum Anda bermigrasi, perhatikan bagaimana fitur berikut untuk dbx oleh Databricks Labs diimplementasikan dalam Bundel Automasi Deklaratif.
Templat dan proyek
dbx memberikan dukungan untuk templat Jinja. Anda dapat menyertakan templat Jinja dalam konfigurasi penyebaran dan meneruskan variabel lingkungan baik sebaris atau melalui file variabel. Meskipun tidak disarankan, dbx berikan juga dukungan eksperimental untuk fungsi pengguna kustom.
Paket menyediakan dukungan untuk templat Go untuk penggunaan ulang konfigurasi. Pengguna dapat membuat bundel berdasarkan templat bawaan. Ada kesetaraan hampir penuh untuk sistem templat, kecuali untuk fungsi khusus pengguna.
Manajemen Pembangunan
dbx menyediakan dukungan build melalui pip wheel, Poetry, dan Flit. Pengguna dapat menentukan opsi build di bagian build file proyek deployment.yml .
Bundel memungkinkan pengguna untuk membangun, menyebarkan, dan menjalankan file roda Python. Pengguna dapat memanfaatkan entri bawaan whl dalam file bundel databricks.yml .
Menyinkronkan, menyebarkan, dan menjalankan kode
dbx memungkinkan pengunggahan kode secara terpisah dari pembuatan sumber daya ruang kerja seperti Pekerjaan Lakeflow.
Bundel selalu mengunggah kode dan membuat atau memperbarui sumber daya ruang kerja secara bersamaan. Ini menyederhanakan pendistribusian dan menghindari kondisi pemblokiran untuk pekerjaan yang sudah sedang berlangsung.
Memigrasikan proyek dbx ke bundel
Setelah Anda mencatat batasan sebelumnya dan perbandingan fitur antara dbx oleh Databricks Labs dan Bundel Otomatisasi Deklaratif, Anda siap untuk bermigrasi dari dbx ke bundel.
Databricks merekomendasikan bahwa untuk memulai dbx migrasi proyek, Anda menyimpan proyek Anda dbx di folder aslinya dan bahwa Anda memiliki folder kosong terpisah tempat Anda menyalin konten proyek asli dbx Anda. Folder terpisah ini akan menjadi bundel baru Anda. Anda dapat mengalami masalah tak terduga jika Anda mulai mengonversi proyek Anda dbx di folder aslinya menjadi bundel dan kemudian membuat beberapa kesalahan atau ingin memulai kembali dari awal,
Langkah 1: Instal dan siapkan Databricks CLI
Bundel Automasi Deklaratif umumnya tersedia di Databricks CLI versi 0.218.0 ke atas. Jika Anda telah menginstal dan menyiapkan Databricks CLI versi 0.218.0 atau lebih tinggi, lewati ke Langkah 2.
Catatan
Bundel tidak kompatibel dengan Databricks CLI versi 0.18 ke bawah.
- Instal atau perbarui ke Databricks CLI versi 0.218.0 atau lebih tinggi. Lihat Instal atau perbarui Databricks CLI.
- Siapkan Databricks CLI untuk autentikasi dengan ruang kerja Azure Databricks target Anda, misalnya dengan menggunakan autentikasi token akses pribadi (lama). Untuk jenis autentikasi Azure Databricks lainnya, lihat Authentication untuk Databricks CLI.
Langkah 2: Membuat file konfigurasi bundel
Jika Anda menggunakan IDE seperti Visual Studio Code, PyCharm Professional atau IntelliJ IDEA Ultimate yang menyediakan dukungan untuk file YAML dan file skema JSON, Anda dapat menggunakan IDE Anda tidak hanya untuk membuat file konfigurasi bundel tetapi juga untuk memeriksa sintaks file dan memformat dan memberikan petunjuk penyelesaian kode, sebagai berikut.
Visual Studio Code
Tambahkan dukungan server bahasa YAML ke Visual Studio Code, misalnya dengan menginstal ekstensi YAML dari Visual Studio Code Marketplace.
Buat file skema JSON konfigurasi bundel dengan menggunakan Databricks CLI untuk menjalankan
bundle schemaperintah dan mengalihkan output ke file JSON. Misalnya, buat file bernamabundle_config_schema.jsondalam direktori saat ini, sebagai berikut:databricks bundle schema > bundle_config_schema.jsonGunakan Visual Studio Code untuk membuat atau membuka file konfigurasi bundel dalam direktori saat ini. Menurut konvensi, file ini diberi nama
databricks.yml.Tambahkan komentar berikut ke awal file konfigurasi bundel Anda:
# yaml-language-server: $schema=bundle_config_schema.jsonCatatan
Di komentar sebelumnya, jika file skema JSON konfigurasi bundel Anda berada di jalur yang berbeda, ganti
bundle_config_schema.jsondengan jalur lengkap ke file skema Anda.Gunakan fitur server bahasa YAML yang Anda tambahkan sebelumnya. Untuk informasi selengkapnya, lihat dokumentasi server bahasa YAML Anda.
PyCharm Professional
Buat file skema JSON konfigurasi bundel dengan menggunakan Databricks CLI untuk menjalankan
bundle schemaperintah dan mengalihkan output ke file JSON. Misalnya, buat file bernamabundle_config_schema.jsondalam direktori saat ini, sebagai berikut:databricks bundle schema > bundle_config_schema.jsonKonfigurasikan PyCharm untuk mengenali file skema JSON konfigurasi bundel, lalu selesaikan pemetaan skema JSON, dengan mengikuti instruksi dalam Mengonfigurasi skema JSON kustom.
Gunakan PyCharm untuk membuat atau membuka file konfigurasi bundel. Menurut konvensi, file ini diberi nama
databricks.yml. Saat Anda mengetik, PyCharm memeriksa sintaks dan pemformatan skema JSON dan menyediakan petunjuk penyelesaian kode.
IntelliJ IDEA Ultimate
Buat file skema JSON konfigurasi bundel dengan menggunakan Databricks CLI untuk menjalankan
bundle schemaperintah dan mengalihkan output ke file JSON. Misalnya, buat file bernamabundle_config_schema.jsondalam direktori saat ini, sebagai berikut:databricks bundle schema > bundle_config_schema.jsonKonfigurasikan IntelliJ IDEA untuk mengenali file skema JSON konfigurasi bundel, lalu selesaikan pemetaan skema JSON, dengan mengikuti instruksi dalam Mengonfigurasi skema JSON kustom.
Gunakan IntelliJ IDEA untuk membuat atau membuka file konfigurasi bundel. Menurut konvensi, file ini diberi nama
databricks.yml. Saat Anda mengetik, IntelliJ IDEA memeriksa sintaks dan pemformatan skema JSON dan memberikan petunjuk penyelesaian kode.
Langkah 3: Mengonversi pengaturan proyek dbx ke databricks.yml
Konversikan pengaturan dalam file proyek dbx Anda .dbx/project.json ke pengaturan yang setara dalam file bundel databricks.yml Anda. Untuk detailnya, lihat Mengonversi pengaturan proyek dbx ke databricks.yml.
Langkah 4: Mengonversi pengaturan penyebaran dbx ke databricks.yml
Konversikan pengaturan di dbx folder proyek Anda conf ke pengaturan yang setara dalam databricks.yml file bundel Anda. Untuk detailnya, lihat Mengonversi pengaturan penyebaran dbx ke databricks.yml.
Langkah 5: Memvalidasi bundel
Sebelum Anda menyebarkan artefak atau menjalankan pekerjaan Azure Databricks, alur :, atau MLOps, Anda harus memastikan bahwa file konfigurasi bundel Anda benar secara sintis. Untuk melakukan ini, jalankan perintah bundle validate dari akar bundel.
databricks bundle validate
Untuk informasi lebih lanjut tentang bundle validate, lihat databricks bundle validate.
Langkah 6: Sebarkan bundel
Untuk mengirimkan artefak lokal yang ditentukan ke ruang kerja jarak jauh, jalankan perintah bundle deploy dari root bundle. Jika tidak ada opsi perintah yang ditentukan, target default yang dideklarasikan dalam file konfigurasi bundel digunakan:
databricks bundle deploy
Untuk menyebarkan artefak dalam konteks target tertentu, tentukan -t opsi (atau --target) bersama dengan nama target seperti yang dinyatakan dalam file konfigurasi bundel. Misalnya, untuk target yang dideklarasikan dengan nama development:
databricks bundle deploy -t development
Untuk informasi tentang bundle deploy, lihat databricks bundle deploy.
Petunjuk / Saran
Anda dapat menautkan pekerjaan dan alur yang didefinisikan oleh bundel ke pekerjaan dan alur yang ada di ruang kerja Azure Databricks untuk menjaga agar tetap sinkron. Lihat databricks bundle deployment bind.
Langkah 7: Jalankan bundel
Untuk menjalankan pekerjaan atau alur tertentu, jalankan perintah bundle run dari direktori root bundel. Anda harus menentukan pekerjaan atau alur yang dideklarasikan dalam file konfigurasi bundel.
-t Jika opsi tidak ditentukan, target default seperti yang dinyatakan dalam file konfigurasi bundel digunakan. Misalnya, untuk menjalankan pekerjaan bernama hello_job dalam konteks target default:
databricks bundle run hello_job
Untuk menjalankan pekerjaan bernama hello_job dalam konteks target yang dideklarasikan dengan nama development:
databricks bundle run -t development hello_job
Untuk informasi tentang bundle run, lihat jalankan bundel Databricks.
(Opsional) Langkah 8: Mengonfigurasi bundel untuk CI/CD dengan GitHub
Jika Anda menggunakan GitHub untuk CI/CD, Anda dapat menggunakan GitHub Actions untuk menjalankan perintah databricks bundle deploy dan databricks bundle run secara otomatis, berdasarkan peristiwa alur kerja GitHub tertentu dan kriteria lainnya. Lihat GitHub Actions.
Mengonversi pengaturan proyek dbx ke databricks.yml
Untuk dbx, pengaturan proyek secara default dalam file bernama project.json di folder proyek .dbx . Lihat referensi file Project.
Untuk bundel, konfigurasi bundel secara default dalam file bernama databricks.yml dalam folder akar bundel. Lihat Konfigurasi Bundel Otomatisasi Deklaratif.
Untuk sebuah file conf/project.json dengan contoh konten berikut:
{
"environments": {
"default": {
"profile": "charming-aurora",
"storage_type": "mlflow",
"properties": {
"workspace_directory": "/Workspace/Shared/dbx/charming_aurora",
"artifact_location": "/Workspace/Shared/dbx/projects/charming_aurora"
}
}
},
"inplace_jinja_support": true
}
File yang databricks.yml sesuai adalah sebagai berikut:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
profile: charming-aurora
root_path: /Shared/dbx/charming_aurora
artifact_path: /Shared/dbx/projects/charming_aurora
resources:
# See an example "resources" mapping in the following section.
Objek berikut dalam contoh file sebelumnya conf/project.json ini tidak didukung dalam databricks.yml file dan tidak memiliki solusi:
inplace_jinja_supportstorage_type
Objek tambahan yang diizinkan berikut dalam conf/project.json file tidak didukung dalam databricks.yml file dan tidak memiliki solusi:
enable-context-based-upload-for-executeenable-failsafe-cluster-reuse-with-assets
Mengonversi pengaturan penyebaran dbx ke databricks.yml
Untuk dbx, pengaturan penyebaran secara bawaan disimpan dalam file di folder proyek conf. Lihat Referensi penggelaran file. File pengaturan penyebaran secara default memiliki salah satu nama file berikut:
deployment.ymldeployment.yamldeployment.jsondeployment.yml.j2deployment.yaml.j2deployment.json.j2
Untuk bundel, pengaturan penyebaran secara default dalam file bernama databricks.yml dalam folder akar bundel. Lihat Konfigurasi Bundel Otomatisasi Deklaratif.
Untuk sebuah file conf/deployment.yml dengan contoh konten berikut:
build:
python: 'pip'
environments:
default:
workflows:
- name: 'workflow1'
tasks:
- task_key: 'task1'
python_wheel_task:
package_name: 'some-pkg'
entry_point: 'some-ep'
File yang databricks.yml sesuai adalah sebagai berikut:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
# See an example "workspace" mapping in the preceding section.
resources:
jobs:
workflow1:
tasks:
- task_key: task1
python_wheel_task:
package_name: some-pkg
entry_point: some-ep
Objek berikut dalam contoh file sebelumnya conf/deployment.yml ini tidak didukung dalam databricks.yml file dan tidak memiliki solusi:
-
build(meskipun lihat Bangun file wheel Python menggunakan Bundel Otomatisasi Deklaratif)
Objek dan fungsionalitas tambahan yang diizinkan berikut dalam conf/deployment.yml file tidak didukung dalam databricks.yml file dan tidak memiliki solusi kecuali dinyatakan lain:
access_control_list-
custom(gunakan jangkar YAML standar sebagai gantinya) deployment_config- Format Lakeflow Jobs 2.0 (gunakan format Jobs 2.1 sebagai gantinya)
-
dbxFitur Jinja - Properti berbasis nama