Migrasi dari dbx ke bundel

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.

  1. Instal atau perbarui ke Databricks CLI versi 0.218.0 atau lebih tinggi. Lihat Instal atau perbarui Databricks CLI.
  2. 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

  1. Tambahkan dukungan server bahasa YAML ke Visual Studio Code, misalnya dengan menginstal ekstensi YAML dari Visual Studio Code Marketplace.

  2. Buat file skema JSON konfigurasi bundel dengan menggunakan Databricks CLI untuk menjalankan bundle schema perintah dan mengalihkan output ke file JSON. Misalnya, buat file bernama bundle_config_schema.json dalam direktori saat ini, sebagai berikut:

    databricks bundle schema > bundle_config_schema.json
    
  3. Gunakan Visual Studio Code untuk membuat atau membuka file konfigurasi bundel dalam direktori saat ini. Menurut konvensi, file ini diberi nama databricks.yml.

  4. Tambahkan komentar berikut ke awal file konfigurasi bundel Anda:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Catatan

    Di komentar sebelumnya, jika file skema JSON konfigurasi bundel Anda berada di jalur yang berbeda, ganti bundle_config_schema.json dengan jalur lengkap ke file skema Anda.

  5. Gunakan fitur server bahasa YAML yang Anda tambahkan sebelumnya. Untuk informasi selengkapnya, lihat dokumentasi server bahasa YAML Anda.

PyCharm Professional

  1. Buat file skema JSON konfigurasi bundel dengan menggunakan Databricks CLI untuk menjalankan bundle schema perintah dan mengalihkan output ke file JSON. Misalnya, buat file bernama bundle_config_schema.json dalam direktori saat ini, sebagai berikut:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurasikan PyCharm untuk mengenali file skema JSON konfigurasi bundel, lalu selesaikan pemetaan skema JSON, dengan mengikuti instruksi dalam Mengonfigurasi skema JSON kustom.

  3. 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

  1. Buat file skema JSON konfigurasi bundel dengan menggunakan Databricks CLI untuk menjalankan bundle schema perintah dan mengalihkan output ke file JSON. Misalnya, buat file bernama bundle_config_schema.json dalam direktori saat ini, sebagai berikut:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurasikan IntelliJ IDEA untuk mengenali file skema JSON konfigurasi bundel, lalu selesaikan pemetaan skema JSON, dengan mengikuti instruksi dalam Mengonfigurasi skema JSON kustom.

  3. 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_support
  • storage_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-execute
  • enable-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.yml
  • deployment.yaml
  • deployment.json
  • deployment.yml.j2
  • deployment.yaml.j2
  • deployment.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:

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)
  • dbx Fitur Jinja
  • Properti berbasis nama