Bagikan melalui


Gambaran umum orkestrasi pada Databricks

Azure Databricks memberikan pengalaman bawaan untuk mengatur beban kerja pemrosesan data, sehingga Anda dapat mengoordinasikan dan menjalankan beberapa tugas sebagai bagian dari alur kerja yang lebih besar. Anda dapat menyederhanakan, mengoptimalkan, dan menjadwalkan eksekusi tugas yang sering dan berulang yang memudahkan untuk mengelola alur kerja yang kompleks.

Artikel ini memperkenalkan konsep dan pilihan yang terkait dengan pengelolaan beban kerja produksi menggunakan pekerjaan Databricks.

Apa itu pekerjaan?

Di Databricks, pekerjaan digunakan untuk menjadwalkan dan mengatur tugas pada Databricks dalam alur kerja . Alur kerja pemrosesan data umum termasuk alur kerja ETL, menjalankan notebook, dan alur kerja pembelajaran mesin (ML), serta mengintegrasikan dengan sistem eksternal seperti dbt dan Azure Data Factory (ADF).

Pekerjaan terdiri dari satu atau beberapa tugas, dan mendukung logika alur kontrol kustom seperti percabangan (jika / pernyataan lain) atau perulangan (untuk setiap pernyataan) menggunakan UI penulisan visual. Tugas dapat memuat atau mengubah data dalam alur kerja ETL, atau membangun, melatih, dan menyebarkan model ML dengan cara yang terkontrol dan dapat diulang sebagai bagian dari alur pembelajaran mesin Anda.

Contoh: Pekerjaan pemrosesan dan validasi data harian

Contoh di bawah ini menunjukkan pekerjaan di Azure Databricks.

Contoh yang menunjukkan pekerjaan di antarmuka Azure Databricks dengan 4 tugas dan pemicu untuk dijalankan setiap hari.

Contoh pekerjaan ini memiliki karakteristik berikut:

  1. Tugas pertama menyerap data pendapatan.
  2. Tugas kedua adalah pengecekan if / else untuk nilai null.
  3. Jika tidak, maka tugas transformasi dijalankan.
  4. Sebaliknya, ia menjalankan tugas analisis data di notebook dengan validasi kualitas data.
  5. Ini dijadwalkan beroperasi setiap hari pada pukul 11.29 pagi.

Untuk mendapatkan pengenalan cepat untuk membuat pekerjaan Anda sendiri, lihat Membuat alur kerja pertama Anda dengan pekerjaan Azure Databricks.

Kasus penggunaan umum

Dari prinsip rekayasa data dasar hingga pembelajaran mesin tingkat lanjut dan integrasi alat yang mulus, kasus penggunaan umum ini menampilkan luasnya kemampuan yang mendorong analitik modern, otomatisasi alur kerja, dan skalabilitas infrastruktur.

Konsep orkestrasi

Ada tiga konsep utama saat menggunakan orkestrasi di Azure Databricks: pekerjaan, tugas, dan pemicu.

Job - Pekerjaan adalah sumber daya utama untuk mengoordinasikan, menjadwalkan, dan menjalankan operasi Anda. Pekerjaan dapat bervariasi dalam kompleksitas dari satu tugas yang menjalankan buku catatan Azure Databricks hingga ratusan tugas dengan logika dan dependensi bersyarkat. Tugas dalam pekerjaan secara visual diwakili oleh Directed Acyclic Graph (DAG). Anda dapat menentukan properti untuk pekerjaan tersebut, termasuk:

  • Pemicu - ini menentukan kapan harus menjalankan pekerjaan.
  • Parameter - parameter run-time yang secara otomatis didorong ke tugas dalam pekerjaan.
  • Pemberitahuan - email atau webhook yang akan dikirim ketika pekerjaan gagal atau memakan waktu terlalu lama.
  • Git - pengaturan kontrol sumber untuk tugas pekerjaan.

Tugas - Suatu tugas adalah unit kerja spesifik dalam sebuah pekerjaan. Setiap tugas dapat melakukan berbagai operasi, termasuk:

  • Sebuah tugas notebook menjalankan notebook Databricks. Anda menentukan jalur ke notebook dan parameter apa pun yang diperlukan.
  • Tugas jalur pemrosesan menjalankan pipeline. Anda dapat menentukan alur DLT yang ada, seperti tampilan materialisasi atau tabel streaming.
  • Tugas skrip Python menjalankan file Python. Anda menyediakan jalur ke file dan parameter yang diperlukan.

Ada banyak jenis tugas. Untuk daftar lengkapnya, lihat Jenis tugas . Tugas dapat tergantung pada tugas lain, dan menjalankan tugas lain berdasarkan kondisi, memungkinkan Anda membuat alur kerja yang kompleks dengan logika dan dependensi bersyarat.

Trigger - Pemicu adalah mekanisme yang memulai menjalankan pekerjaan berdasarkan kondisi atau peristiwa tertentu. Pemicu dapat berbasis waktu, seperti menjalankan pekerjaan pada waktu yang dijadwalkan (misalnya, pernah hari pada pukul 02.00), atau berbasis peristiwa, seperti menjalankan pekerjaan saat data baru tiba di penyimpanan cloud.

Pemantauan dan pengamatan

Pekerjaan memberikan dukungan bawaan untuk pemantauan dan pengamatan. Topik berikut memberikan gambaran umum tentang dukungan ini. Untuk detail selengkapnya tentang memantau tugas dan orkestrasi, lihat Pemantauan dan Observabilitas untuk Tugas Databricks.

Pemantauan dan observabilitas tugas di UI - Di antarmuka Azure Databricks, Anda dapat melihat tugas, termasuk detail seperti pemilik tugas dan hasil dari eksekusi terakhir, serta memfilter berdasarkan properti tugas. Anda dapat melihat riwayat eksekusi pekerjaan, dan mendapatkan informasi terperinci tentang setiap tugas dalam pekerjaan.

Status dan metrik pelaksanaan pekerjaan - Databricks melaporkan keberhasilan pelaksanaan pekerjaan, serta log dan metrik untuk setiap tugas dalam pelaksanaan pekerjaan untuk mendiagnosis masalah dan memahami performa.

Pemberitahuan dan peringatan - Anda dapat menyiapkan pemberitahuan untuk kegiatan pekerjaan melalui email, Slack, webhook kustom, dan berbagai opsi lainnya.

Kueri kustom melalui tabel sistem - Azure Databricks menyediakan tabel sistem yang merekam eksekusi pekerjaan dan tugas di seluruh akun. Anda dapat menggunakan tabel ini untuk mengkueri dan menganalisis performa dan biaya pekerjaan. Anda dapat membuat dasbor untuk memvisualisasikan metrik dan tren pekerjaan, untuk membantu memantau kesehatan dan performa alur kerja Anda.

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 tugas yang dapat dibuat ruang kerja dalam satu jam dibatasi hingga 10000 (termasuk “pengiriman tugas”). 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:

Untuk contoh penggunaan alat dan API untuk membuat dan mengelola pekerjaan, lihat Mengotomatiskan pembuatan dan manajemen pekerjaan. Untuk dokumentasi tentang semua alat pengembang yang tersedia, lihat Alat pengembangan lokal.

Alat eksternal menggunakan alat dan API Databricks untuk menjadwalkan alur kerja secara terprogram. Anda dapat menjadwalkan pekerjaan menggunakan alat seperti Azure Data Factory atau Apache AirFlow.

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 dalam pipeline ADF, lihat Menjalankan buku catatan Databricks dengan aktivitas buku catatan Databricks di Azure Data Factory, kemudian Transformasi 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.