Bagikan melalui


Menjadwalkan dan mengatur Alur Kerja

Alur Kerja Databricks menyediakan kumpulan alat yang memungkinkan Anda menjadwalkan dan mengatur tugas pemrosesan data di Azure Databricks. Anda menggunakan Alur Kerja Databricks untuk mengonfigurasi Pekerjaan Databricks.

Artikel ini memperkenalkan konsep yang terkait dengan pengelolaan beban kerja produksi menggunakan Databricks Jobs.

Catatan

Tabel Langsung Delta menyediakan sintaksis deklaratif untuk membuat alur pemrosesan data. Lihat Apa itu Tabel Langsung Delta?.

Apa itu pekerjaan Databricks?

Pekerjaan Databricks memungkinkan Anda mengonfigurasi tugas untuk dijalankan di lingkungan komputasi tertentu pada jadwal tertentu. Bersama dengan alur Delta Live Tables, pekerjaan adalah alat utama yang digunakan pada Azure Databricks untuk menyebarkan pemrosesan data dan logika ML ke dalam produksi.

Pekerjaan dapat bervariasi dalam kompleksitas dari satu tugas yang menjalankan buku catatan Databricks ke ribuan tugas yang berjalan dengan logika dan dependensi bersyarkat.

Bagaimana cara mengonfigurasi dan menjalankan pekerjaan?

Anda dapat membuat dan menjalankan pekerjaan menggunakan UI Pekerjaan, Databricks CLI, atau dengan memanggil JOBS API. Anda dapat memperbaiki dan menjalankan kembali pekerjaan yang gagal atau dibatalkan menggunakan UI atau API. Anda dapat memantau hasil eksekusi pekerjaan menggunakan UI, CLI, API, dan pemberitahuan (misalnya, email, tujuan webhook, atau pemberitahuan Slack).

Untuk mempelajari tentang menggunakan Databricks CLI, lihat Apa itu Databricks CLI?. Untuk mempelajari tentang menggunakan JOBS API, lihat JOBS API.

Apa konfigurasi minimum yang diperlukan untuk pekerjaan?

Semua pekerjaan di Azure Databricks memerlukan hal berikut:

  • Kode sumber yang berisi logika yang akan dijalankan.
  • Sumber daya komputasi untuk menjalankan logika. Sumber daya komputasi dapat berupa komputasi tanpa server, komputasi pekerjaan klasik, atau komputasi serba guna. Lihat Menggunakan komputasi Azure Databricks dengan pekerjaan Anda.
  • Jadwal yang ditentukan untuk kapan pekerjaan harus dijalankan atau pemicu manual.
  • Nama yang unik.

Catatan

Jika Anda mengembangkan kode Anda di buku catatan Databricks, Anda bisa menggunakan tombol Jadwalkan untuk mengonfigurasi buku catatan tersebut sebagai pekerjaan. Lihat Membuat dan mengelola pekerjaan buku catatan terjadwal.

Apa itu tugas?

Tugas mewakili satuan logika dalam pekerjaan. Tugas dapat berkisar dalam kompleksitas dan menyertakan yang berikut ini:

  • Notebook
  • A JAR
  • Kueri SQL
  • Alur DLT
  • Pekerjaan lain
  • Tugas alur kontrol

Anda mengontrol urutan eksekusi tugas dengan menentukan dependensi antar tugas. Anda dapat mengonfigurasi tugas untuk dijalankan secara berurutan atau paralel.

Pekerjaan berinteraksi dengan informasi status dan metadata tugas, tetapi cakupan tugas terisolasi. Anda dapat menggunakan nilai tugas untuk berbagi konteks antara tugas terjadwal. Lihat Berbagi informasi antar tugas dalam pekerjaan Azure Databricks.

Opsi alur kontrol apa yang tersedia untuk pekerjaan?

Saat mengonfigurasi pekerjaan dan tugas dalam pekerjaan, Anda dapat menyesuaikan pengaturan yang mengontrol cara seluruh pekerjaan dan tugas individual berjalan.

Jenis pemicu

Anda harus menentukan jenis pemicu saat mengonfigurasi pekerjaan. Anda dapat memilih dari jenis pemicu berikut:

Anda juga dapat memilih untuk memicu pekerjaan Anda secara manual, tetapi ini sebagian besar dicadangkan untuk kasus penggunaan tertentu seperti:

  • Anda menggunakan alat orkestrasi eksternal untuk memicu pekerjaan menggunakan panggilan REST API.
  • Anda memiliki pekerjaan yang jarang berjalan yang memerlukan human-in-the-loop untuk validasi atau menyelesaikan masalah kualitas data.
  • Anda menjalankan beban kerja yang hanya perlu dijalankan sekali atau beberapa kali, seperti migrasi.

Lihat Memicu pekerjaan saat file baru tiba.

Percobaan kembali

Percobaan ulang menentukan berapa kali pekerjaan atau tugas tertentu harus dijalankan kembali jika pekerjaan gagal dengan pesan kesalahan. Kesalahan sering bersifat sementara dan diselesaikan melalui mulai ulang, dan beberapa fitur di Azure Databricks seperti evolusi skema dengan Streaming Terstruktur mengasumsikan bahwa Anda menjalankan pekerjaan dengan percobaan ulang untuk mengatur ulang lingkungan dan memungkinkan alur kerja untuk melanjutkan.

Opsi untuk mengonfigurasi percobaan ulang muncul di UI untuk konteks yang didukung. Manfaatnya meliputi:

  • Anda dapat menentukan percobaan ulang untuk seluruh pekerjaan, yang berarti seluruh pekerjaan dimulai ulang jika ada tugas yang gagal.
  • Anda dapat menentukan percobaan ulang untuk tugas, dalam hal ini tugas dimulai ulang hingga jumlah yang ditentukan jika mengalami kesalahan.

Saat berjalan dalam mode pemicu berkelanjutan, Databricks secara otomatis mencoba kembali dengan backoff eksponensial. Lihat Bagaimana kegagalan ditangani untuk pekerjaan berkelanjutan?.

Jalankan jika tugas bersyariah

Anda bisa menggunakan jenis Jalankan jika tugas untuk menentukan kondisional untuk tugas selanjutnya berdasarkan hasil tugas lain. Anda menambahkan tugas ke pekerjaan Anda dan menentukan tugas yang bergantung pada upstream. Berdasarkan status tugas tersebut, Anda dapat mengonfigurasi satu atau beberapa tugas hilir untuk dijalankan. Pekerjaan mendukung dependensi berikut:

  • Semua berhasil
  • Setidaknya satu berhasil
  • Tidak ada yang gagal
  • Semua selesai
  • Setidaknya satu gagal
  • Semua gagal

Lihat Menjalankan tugas secara kondisional dalam pekerjaan Azure Databricks

Tugas bersyarah If/else

Anda dapat menggunakan jenis tugas If/else untuk menentukan kondisional berdasarkan beberapa nilai. Lihat Menambahkan logika pencabangan ke pekerjaan Anda dengan tugas kondisi If/else

taskValues Dukungan pekerjaan yang Anda tentukan dalam logika Anda dan memungkinkan Anda mengembalikan hasil beberapa komputasi atau status dari tugas ke lingkungan pekerjaan. Anda dapat menentukan kondisi If/else terhadap taskValues, parameter pekerjaan, atau nilai dinamis.

Azure Databricks mendukung operan berikut untuk kondisi tertentu:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Lihat juga:

Untuk setiap tugas

For each Gunakan tugas untuk menjalankan tugas lain dalam perulangan, meneruskan serangkaian parameter yang berbeda ke setiap perulangan tugas.

For each Menambahkan tugas ke pekerjaan memerlukan menentukan dua tugas: Tugas For each dan tugas berlapis. Tugas berlapis adalah tugas yang dijalankan untuk setiap iterasi For each tugas dan merupakan salah satu jenis tugas Azure Databricks Jobs standar. Beberapa metode didukung untuk meneruskan parameter ke tugas berlapis.

Lihat Menjalankan tugas pekerjaan Azure Databricks berparameter dalam perulangan.

Ambang durasi

Anda dapat menentukan ambang batas durasi untuk mengirim peringatan atau menghentikan tugas atau pekerjaan jika durasi yang ditentukan terlampaui. Contoh kapan Anda mungkin ingin mengonfigurasi pengaturan ini meliputi yang berikut ini:

  • Anda memiliki tugas yang rentan terjebak dalam keadaan menggantung.
  • Anda perlu memperingatkan teknisi jika SLA untuk alur kerja terlampaui.
  • Anda ingin gagal dalam pekerjaan yang dikonfigurasi dengan kluster besar untuk menghindari biaya tak terduga.

Konkurensi

Sebagian besar pekerjaan dikonfigurasi dengan konkurensi default dari 1 pekerjaan bersamaan. Ini berarti bahwa jika eksekusi pekerjaan sebelumnya belum selesai pada saat pekerjaan baru harus dipicu, eksekusi pekerjaan berikutnya dilewati.

Ada beberapa kasus penggunaan untuk peningkatan konkurensi, tetapi sebagian besar beban kerja tidak memerlukan perubahan pengaturan ini.

Untuk informasi selengkapnya tentang mengonfigurasi konkurensi, lihat Mengonfigurasi eksekusi bersamaan maksimum.

Bagaimana cara memantau pekerjaan?

Anda dapat menerima pemberitahuan saat pekerjaan atau tugas dimulai, selesai, atau gagal. Anda dapat mengirim pemberitahuan ke satu atau beberapa alamat email atau tujuan sistem. Lihat Menambahkan pemberitahuan email dan sistem untuk peristiwa pekerjaan.

Tabel sistem menyertakan lakeflow skema tempat Anda dapat melihat rekaman yang terkait dengan aktivitas pekerjaan di akun Anda. Lihat Referensi tabel sistem pekerjaan.

Anda juga dapat bergabung dengan tabel sistem pekerjaan dengan tabel penagihan untuk memantau biaya pekerjaan di seluruh akun Anda. Lihat Memantau biaya pekerjaan dengan tabel sistem.

Batasan

Keterbatasan berikut ada:

  • Ruang kerja dibatasi hingga 1000 eksekusi tugas bersamaan. Respons 429 Too Many Requests dikembalikan saat Anda meminta eksekusi yang tidak dapat segera dimulai.
  • Jumlah pekerjaan yang dapat dibuat ruang kerja dalam satu jam dibatasi hingga 10000 (termasuk “pengiriman eksekusi”). Batas ini juga memengaruhi tugas yang dibuat oleh REST API dan alur kerja notebook.
  • Ruang kerja dapat berisi hingga 12000 pekerjaan yang disimpan.
  • Pekerjaan dapat berisi hingga 100 tugas.

Bisakah saya mengelola alur kerja secara terprogram?

Databricks menyediakan alat dan API yang memungkinkan Anda menjadwalkan dan mengatur alur kerja Anda secara terprogram, termasuk yang berikut ini:

Untuk informasi selengkapnya tentang alat pengembang, lihat Alat pengembang dan panduan.

Orkestrasi alur kerja dengan Apache AirFlow

Anda dapat menggunakan Apache Airflow untuk mengelola dan menjadwalkan alur kerja data Anda. Dengan Airflow, Anda menentukan alur kerja Anda dalam file Python, dan Airflow mengelola penjadwalan dan menjalankan alur kerja. Lihat Mengatur pekerjaan Azure Databricks dengan Apache Airflow.

Orkestrasi alur kerja dengan Azure Data Factory

Azure Data Factory (ADF) adalah layanan integrasi data cloud yang memungkinkan Anda menyusun layanan penyimpanan, pergerakan, dan pemrosesan data ke dalam alur data otomatis. Anda dapat menggunakan ADF untuk mengatur pekerjaan Azure Databricks sebagai bagian dari alur ADF.

Untuk mempelajari cara menjalankan pekerjaan menggunakan aktivitas Web ADF, termasuk cara mengautentikasi ke Azure Databricks dari ADF, lihat Memanfaatkan orkestrasi pekerjaan Azure Databricks dari Azure Data Factory.

ADF juga menyediakan dukungan bawaan untuk menjalankan notebook Databricks, skrip Python, atau kode yang dipaketkan dalam JAR dalam alur ADF.

Untuk mempelajari cara menjalankan buku catatan Databricks di alur ADF, lihat Menjalankan buku catatan Databricks dengan aktivitas buku catatan Databricks di Azure Data Factory, diikuti dengan Mengubah data dengan menjalankan buku catatan Databricks.

Untuk mempelajari cara menjalankan skrip Python di alur ADF, lihat Mengubah data dengan menjalankan aktivitas Python di Azure Databricks.

Untuk mempelajari cara menjalankan kode yang dipaketkan dalam JAR dalam alur ADF, lihat Mengubah data dengan menjalankan aktivitas JAR di Azure Databricks.