Menjadwalkan dan mengatur alur kerja
Alur Kerja Databricks memiliki 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 dan pilihan yang terkait dengan pengelolaan beban kerja produksi menggunakan Pekerjaan Databricks.
Apa itu Pekerjaan Databricks?
Pekerjaan adalah unit utama untuk menjadwalkan dan mengatur beban kerja produksi di Azure Databricks. Pekerjaan terdiri dari satu atau beberapa tugas. Bersama-sama, tugas dan pekerjaan memungkinkan Anda mengonfigurasi dan menyebarkan hal berikut:
- Logika kustom, termasuk Spark, SQL, OSS Python, ML, dan kode arbitrer.
- Komputasi sumber daya dengan lingkungan dan pustaka kustom.
- Jadwal dan pemicu untuk menjalankan beban kerja.
- Logika kondisional untuk alur kontrol antar tugas.
Pekerjaan menyediakan pendekatan prosedural untuk menentukan hubungan antar tugas. Alur Tabel Langsung Delta menyediakan pendekatan deklaratif untuk menentukan hubungan antara himpunan data dan transformasi. Anda dapat menyertakan alur Tabel Langsung Delta sebagai tugas dalam pekerjaan. Lihat Tugas alur Delta Live Tables untuk pekerjaan.
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. Dengan menggunakan UI atau API, Anda dapat memperbaiki dan menjalankan kembali pekerjaan yang gagal atau dibatalkan. Anda dapat memantau hasil eksekusi pekerjaan menggunakan UI, CLI, API, dan pemberitahuan (misalnya, email, tujuan webhook, atau pemberitahuan Slack).
Jika Anda lebih suka pendekatan infrastructure-as-code (IaC) untuk mengonfigurasi dan mengatur Pekerjaan Anda, gunakan Bundel Aset Databricks (DAB). Bundel dapat berisi definisi YAML dari pekerjaan dan tugas, dikelola menggunakan Databricks CLI, dan dapat dibagikan dan dijalankan di ruang kerja target yang berbeda (seperti pengembangan, penahapan, dan produksi). Untuk mempelajari tentang menggunakan DAB untuk mengonfigurasi dan mengatur pekerjaan Anda, lihat Bundel Aset Databricks.
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 (seperti notebook Databricks) 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 Mengonfigurasi komputasi untuk pekerjaan.
- Jadwal yang ditentukan untuk kapan pekerjaan harus dijalankan. Secara opsional, Anda dapat menghilangkan pengaturan jadwal dan memicu pekerjaan secara 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 yang akan dijalankan sebagai langkah dalam pekerjaan. Tugas bisa berkisar dalam kompleksitas dan bisa 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 Menggunakan nilai tugas untuk meneruskan informasi antar tugas.
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. Opsi ini adalah:
- Memicu
- Percobaan kembali
- Jalankan jika tugas bersyariah
- Tugas bersyarah If/else
- Untuk setiap tugas
- Ambang durasi
- Pengaturan konkurensi
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 terutama dicadangkan untuk kasus penggunaan tertentu seperti:
- Anda menggunakan alat orkestrasi eksternal untuk memicu pekerjaan menggunakan panggilan REST API.
- Anda memiliki pekerjaan yang jarang berjalan dan memerlukan intervensi manual untuk validasi atau menyelesaikan masalah kualitas data.
- Anda menjalankan beban kerja yang hanya perlu dijalankan sekali atau beberapa kali, seperti migrasi.
Lihat Jenis pemicu untuk Pekerjaan Databricks.
Percobaan kembali
Coba lagi tentukan berapa kali tugas tertentu harus dijalankan kembali jika tugas gagal dengan pesan kesalahan. Kesalahan sering bersifat sementara dan diselesaikan melalui mulai ulang. Beberapa fitur di Azure Databricks, seperti evolusi skema dengan Streaming Terstruktur, asumsikan bahwa Anda menjalankan pekerjaan dengan percobaan ulang untuk mengatur ulang lingkungan dan memungkinkan alur kerja untuk melanjutkan.
Jika Anda menentukan percobaan ulang untuk tugas, tugas dimulai ulang hingga berapa kali yang ditentukan jika mengalami kesalahan. Tidak semua konfigurasi pekerjaan mendukung percobaan ulang tugas. Lihat Mengatur kebijakan coba lagi.
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 Mengonfigurasi dependensi tugas
Tugas bersyarah If/else
Anda dapat menggunakan jenis tugas If/else untuk menentukan kondisional berdasarkan beberapa nilai. Lihat Menambahkan logika pencabangan ke pekerjaan dengan tugas 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:
- Menggunakan nilai tugas untuk meneruskan informasi antar tugas
- Apa itu referensi nilai dinamis?
- Membuat parameter pekerjaan
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 Pekerjaan Databricks 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 harus memperingatkan teknisi jika SLA untuk alur kerja terlampaui.
- Untuk menghindari biaya tak terduga, Anda ingin gagal dalam pekerjaan yang dikonfigurasi dengan kluster besar.
Lihat Mengonfigurasi waktu penyelesaian yang diharapkan atau batas waktu untuk pekerjaan dan Mengonfigurasi waktu penyelesaian yang diharapkan atau batas waktu untuk tugas.
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.
Beberapa kasus penggunaan ada untuk peningkatan konkurensi, tetapi sebagian besar beban kerja tidak memerlukan perubahan pengaturan ini.
Untuk informasi selengkapnya tentang mengonfigurasi konkurensi, lihat Pengaturan antrean dan konkurensi Pekerjaan Databricks.
Bagaimana cara memantau pekerjaan?
Antarmuka pengguna pekerjaan memungkinkan Anda melihat pekerjaan berjalan, termasuk eksekusi yang sedang berlangsung. Lihat Pemantauan dan pengamatan untuk Pekerjaan Databricks.
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 2000 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 memiliki alat dan API yang memungkinkan Anda menjadwalkan dan mengatur alur kerja Anda secara terprogram, termasuk yang berikut ini:
- Databricks CLI
- Bundel Aset Databricks
- Ekstensi Databricks untuk Visual Studio Code
- SDK Databricks
- REST API Pekerjaan
Untuk informasi selengkapnya tentang alat pengembang, lihat Alat pengembang.
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.
ADF juga memiliki 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.