Bagikan melalui


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

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.

  1. 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, misalnya https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. 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 perintah databricks auth env --profile <profile-name>.

  3. Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.

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

  1. Gunakan terminal atau perintah Anda untuk beralih ke direktori pada komputer pengembangan lokal Anda yang akan berisi bundel templat yang dihasilkan.

  2. Gunakan Databricks CLI untuk menjalankan bundle init perintah:

    databricks bundle init
    
  3. Untuk Template to use, biarkan nilai default-python default dengan menekan Enter.

  4. Untuk Unique name for this project, biarkan nilai my_projectdefault , atau ketik nilai yang berbeda, lalu tekan Enter. Ini menentukan nama direktori akar untuk bundel ini. Direktori akar ini dibuat di direktori kerja Anda saat ini.

  5. Untuk Include a stub (sample) notebook, pilih yes dan tekan Enter.

  6. Untuk Include a stub (sample) DLT pipeline, pilih no dan tekan Enter. Ini menginstruksikan Databricks CLI untuk tidak menentukan sampel alur Delta Live Tables di bundel Anda.

  7. Untuk Include a stub (sample) Python package, pilih no dan tekan Enter. 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.

  1. Dari direktori akar, gunakan Databricks CLI untuk menjalankan bundle validate perintah, sebagai berikut:

    databricks bundle validate
    
  2. 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.

  1. Dari akar bundel, gunakan Databricks CLI untuk menjalankan bundle deploy perintah sebagai berikut:

    databricks bundle deploy -t dev
    
  2. Periksa apakah buku catatan lokal disebarkan: Di bilah samping ruang kerja Azure Databricks Anda, klik Ruang Kerja.

  3. Klik folder src File dev .bundel> ><project-name>Pengguna.<your-username>>> > > Buku catatan harus berada di folder ini.

  4. Periksa apakah pekerjaan dibuat: Di bar samping ruang kerja Azure Databricks Anda, klik Alur Kerja.

  5. Pada tab Pekerjaan, klik [dev <your-username>] <project-name>_job.

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

  1. 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
    
  2. 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 Databricks

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

  1. Dari direktori akar, gunakan Databricks CLI untuk menjalankan bundle destroy perintah, sebagai berikut:

    databricks bundle destroy -t dev
    
  2. Konfirmasikan permintaan penghapusan pekerjaan: Ketika diminta untuk menghancurkan sumber daya secara permanen, ketik y dan tekan Enter.

  3. Konfirmasikan permintaan penghapusan buku catatan: Ketika diminta untuk menghancurkan folder yang disebarkan sebelumnya secara permanen dan semua filenya, ketik y dan tekan Enter.

  4. 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:

  1. Di bar samping ruang kerja Azure Databricks Anda, klik Alur Kerja.

  2. Pada tab Pekerjaan, klik tautan Nama pekerjaan Anda.

  3. Di samping tombol Jalankan sekarang , klik kebab, lalu klik Beralih ke kode (YAML).

  4. Tambahkan YAML yang Anda salin ke file bundel databricks.yml Anda, atau buat file konfigurasi untuk pekerjaan Anda di resources direktori proyek bundel Anda dan referensikan dari file Anda databricks.yml . Lihat (/dev-tools/bundles/settings.md#resources).

  5. 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 di src 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:

  1. Ambil ID pekerjaan yang ada dari panel sisi Detail pekerjaan untuk pekerjaan di UI Pekerjaan, atau gunakan perintah Databricks CLI databricks jobs list .

  2. 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 ke src 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 berikutnya bundle deploy. Untuk informasi tentang bundle 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.