Memantau status tugas menggunakan notifikasi Pub/Sub dan BigQuery

Dokumen ini menjelaskan cara memantau perubahan status tugas dan tugas dengan menyiapkan notifikasi Pub/Sub. Anda dapat menggunakan notifikasi untuk berbagai kasus penggunaan—misalnya, dokumen ini menjelaskan cara melakukan streaming notifikasi ke tabel BigQuery, yang dapat Anda gunakan untuk menganalisis data. Untuk mempelajari lebih lanjut kasus penggunaan notifikasi Pub/Sub, lihat Memilih jenis langganan dalam dokumentasi Pub/Sub.

Atau, jika Anda ingin mengekspor semua informasi tentang tugas ke BigQuery, lihat Mengekspor informasi tugas.

Sebelum memulai

  1. Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
  2. Jika Anda ingin menyiapkan notifikasi Pub/Sub untuk tugas Batch, lakukan tindakan berikut:
    1. Enable the Pub/Sub API.

      Enable the API

    2. Untuk mendapatkan izin yang diperlukan guna mengonfigurasi topik dan langganan Pub/Sub, minta administrator untuk memberi Anda peran IAM Pub/Sub Editor (roles/pubsub.editor) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

      Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

  3. Persyaratan tambahan bervariasi berdasarkan jenis langganan yang Anda putuskan untuk dikonfigurasi. Misalnya, jika ingin melakukan streaming dan menganalisis pemberitahuan ke tabel BigQuery, Anda harus melakukan hal berikut:
    1. Enable the BigQuery API.

      Enable the API

    2. Untuk memastikan akun layanan Pub/Sub memiliki izin yang diperlukan untuk melakukan streaming notifikasi Pub/Sub ke BigQuery, minta administrator Anda untuk memberikan peran IAM BigQuery Data Editor (roles/bigquery.dataEditor) kepada akun layanan Pub/Sub di project topik Pub/Sub.

      Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran ini, lihat Menetapkan peran BigQuery ke akun layanan Pub/Sub.

    3. Pastikan pengguna yang ingin Anda analisis notifikasinya di BigQuery memiliki izin yang diperlukan.

      Untuk mendapatkan izin yang diperlukan untuk membuat kueri notifikasi Pub/Sub di BigQuery, minta administrator Anda untuk memberi Anda peran IAM berikut:

Menyiapkan notifikasi Pub/Sub untuk Batch

Batch mendukung notifikasi Pub/Sub untuk perubahan pada status tugas dan tugas, yang dapat Anda gunakan untuk pemberitahuan, visibilitas, atau analisis.

Untuk menyiapkan notifikasi Pub/Sub untuk satu atau beberapa tugas Batch, selesaikan langkah-langkah yang dijelaskan di bagian berikut:

  1. Buat atau identifikasi topik Pub/Sub untuk tugas Batch Anda.
  2. Buat setidaknya satu langganan untuk topik Anda agar dapat menerima dan menggunakan notifikasinya.
  3. Konfigurasikan tugas untuk mengirim notifikasi ke topik Anda.

Setelah menyiapkan notifikasi Pub/Sub untuk Batch, Anda dapat mengonfigurasi setiap tugas untuk mengirim notifikasi tertentu secara opsional. Anda dapat menerima notifikasi setiap kali status tugas atau tugas berubah, atau Anda dapat memfilter notifikasi untuk status tugas atau tugas tertentu. Secara khusus, Pub/Sub tidak mengirim notifikasi untuk status pertama yang dimasuki tugas atau tugas; Pub/Sub hanya mengirim notifikasi saat tugas berpindah dari satu status ke status lainnya. Untuk mengetahui informasi selengkapnya tentang atribut yang dapat Anda konfigurasikan untuk notifikasi Pub/Sub, lihat Membuat dan menjalankan tugas yang mengirim notifikasi status Pub/Sub.

Membuat atau mengidentifikasi topik Pub/Sub untuk Batch

Buat topik Pub/Sub baru atau identifikasi topik Pub/Sub yang ada yang ingin Anda gunakan untuk notifikasi Batch.

Seperti yang dijelaskan nanti dalam dokumen ini, tugas tidak dapat mengirim notifikasi ke topik Pub/Sub ini hingga administrator Anda memberikan izin tambahan yang mengizinkan hal ini.

Membuat langganan untuk menerima dan menggunakan notifikasi

Untuk menerima dan menggunakan pesan yang dipublikasikan ke topik Pub/Sub, Anda harus membuat setidaknya satu langganan ke topik tersebut.

Misalnya, salah satu opsi adalah mengonfigurasi topik untuk melakukan streaming notifikasinya ke BigQuery. Kemudian, saat menjalankan tugas yang memublikasikan notifikasi, Anda dapat menerima dan menganalisis notifikasi di tabel BigQuery. Untuk mengetahui informasi selengkapnya, lihat Contoh: Menerima dan menggunakan notifikasi Pub/Sub di BigQuery dalam dokumen ini.

Atau, untuk mempelajari langganan dan opsi langganan lainnya lebih lanjut, lihat Ringkasan langganan dalam dokumentasi Pub/Sub.

Mengonfigurasi tugas untuk mengirim notifikasi ke topik Anda

Untuk mengonfigurasi tugas yang mengirim notifikasi Pub/Sub ke topik Anda, ikuti petunjuk di halaman Membuat dan menjalankan tugas yang mengirim notifikasi status Pub/Sub. Secara khusus, lakukan hal berikut:

  1. Jika Anda belum melakukannya, minta administrator untuk memberikan semua izin yang diperlukan agar tugas dapat mengirim notifikasi ke topik Pub/Sub Anda. Izin ini tercantum di bagian Peran yang diperlukan di halaman tersebut.
  2. Buat dan jalankan tugas yang mengaktifkan notifikasi Pub/Sub dengan menentukan kolom notifications tugas.

Contoh: Menerima dan menggunakan notifikasi Pub/Sub di BigQuery

Bagian berikut menjelaskan contoh kasus penggunaan untuk menerima dan menggunakan notifikasi Pub/Sub di BigQuery. Dengan mengonfigurasi langganan yang melakukan streaming notifikasi Pub/Sub topik ke tabel BigQuery, Anda dapat mempertahankan histori perubahan status tugas dan pekerjaan, serta membuat kueri perubahan tersebut.

Mengonfigurasi langganan yang melakukan streaming notifikasi ke BigQuery

Konfigurasikan langganan Pub/Sub yang melakukan streaming notifikasi dari topik ke tabel BigQuery dengan melakukan hal berikut:

  1. Jika Anda belum melakukannya, buat atau identifikasi topik Pub/Sub untuk Batch.

  2. Jika belum memilikinya, buat set data BigQuery.

  3. Buat tabel BigQuery dengan definisi skema berikut:

    [
      {
        "name": "data",
        "type": "STRING"
      },
      {
        "name": "subscription_name",
        "type": "STRING"
      },
      {
        "name": "message_id",
        "type": "STRING"
      },
      {
        "name": "attributes",
        "type": "JSON"
      },
      {
        "name": "publish_time",
        "type": "TIMESTAMP",
        "mode": "NULLABLE"
      }
    ]
    
  4. Buat langganan Pub/Sub yang melakukan streaming ke BigQuery dan tentukan opsi berikut:

    • Topik: pilih topik Pub/Sub untuk Batch.
    • Project: pilih project yang berisi tabel BigQuery Anda.
    • Dataset: pilih set data yang berisi tabel BigQuery Anda.
    • Tabel: pilih tabel yang Anda buat di langkah sebelumnya.
    • Pilih Gunakan skema topik.
    • Pilih Tulis metadata.

Sekarang, setiap kali notifikasi Pub/Sub dikirim ke topik tersebut, Pub/Sub akan melakukan streaming notifikasi tersebut ke tabel BigQuery. Setelah mengonfigurasi tugas untuk mengirim notifikasi Pub/Sub, Anda dapat menganalisis notifikasi di BigQuery.

Menganalisis notifikasi di BigQuery

Anda dapat menganalisis notifikasi di BigQuery setelah mengonfigurasi langganan ke tabel BigQuery untuk topik Anda dan menjalankan tugas yang mengirim notifikasi ke topik Anda. Untuk menganalisis notifikasi di BigQuery, jalankan kueri di kolom attributes tabel BigQuery. Atribut yang dapat Anda buat kuerinya bergantung pada apakah Anda mengonfigurasi notifikasi untuk tugas atau tugas.

Anda dapat membuat kueri atribut notifikasi tugas berikut:

  • JobUID
  • NewTaskState
  • Region
  • TaskName
  • TaskUID
  • Type

Anda dapat membuat kueri atribut notifikasi tugas berikut:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

Misalnya, kueri berikut menampilkan JobUID yang terkait dengan setiap notifikasi:

select attributes.JobUID from `example-table`

Langkah selanjutnya