Memantau status tugas menggunakan notifikasi Pub/Sub dan BigQuery

Dokumen ini menjelaskan cara memantau perubahan status tugas menggunakan notifikasi Pub/Sub dan cara secara opsional mengalirkan notifikasi tersebut ke BigQuery.

Sebelum memulai

Peran yang diperlukan

  • Untuk mendapatkan izin yang diperlukan untuk membuat topik Pub/Sub, minta administrator untuk memberi Anda peran IAM Pub/Sub Editor (roles/pubsub.editor) pada topik atau project Pub/Sub. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

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

  • Untuk memastikan akun layanan tugas memiliki izin yang diperlukan untuk memublikasikan notifikasi Pub/Sub, minta administrator Anda untuk memberikan peran IAM Pub/Sub Publisher (roles/pubsub.publisher) ke akun layanan tugas pada topik Pub/Sub Anda.

    Secara default, akun layanan tugas adalah akun layanan Compute Engine default.

  • Guna memastikan akun layanan Pub/Sub memiliki izin yang diperlukan untuk mengalirkan notifikasi Pub/Sub ke BigQuery, minta administrator Anda untuk memberikan peran IAM BigQuery Data Editor (roles/bigquery.dataEditor) di project tersebut kepada akun layanan Pub/Sub.

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

  • Untuk mendapatkan izin yang Anda perlukan untuk mengkueri notifikasi Pub/Sub di BigQuery, mintalah administrator untuk memberi Anda peran IAM berikut:

Menggunakan notifikasi Pub/Sub dengan Batch

Batch mendukung notifikasi Pub/Sub tentang status tugas dan tugas untuk pemberitahuan, kemampuan observasi, atau untuk digunakan dengan BigQuery.

Anda dapat menerima notifikasi setiap kali tugas atau status tugas berubah, atau Anda dapat memfilter berdasarkan tugas atau status tugas yang ditentukan. Atribut notifikasi status tugas diterapkan untuk semua tugas dalam tugas, bukan tugas tertentu dalam tugas. Untuk mengetahui informasi selengkapnya tentang status tugas dan tugas, lihat Siklus proses tugas.

Mengaktifkan notifikasi untuk lowongan

Untuk mengaktifkan notifikasi Pub/Sub untuk tugas, lakukan hal berikut:

  1. Buat topik Pub/Sub di project yang sama tempat Anda ingin menjalankan tugas Batch.
  2. Jika ingin, Anda dapat mengonfigurasi Pub/Sub untuk mengalirkan notifikasi ke BigQuery.
  3. Membuat tugas yang mengirimkan notifikasi Pub/Sub.

Konfigurasi Pub/Sub untuk mengalirkan notifikasi ke BigQuery

Jika ingin mempertahankan histori perubahan status tugas dan tugas serta mengkueri perubahan tersebut, Anda dapat mengalirkan notifikasi Pub/Sub ke BigQuery dengan melakukan hal berikut:

  1. Jika Anda belum melakukannya, aktifkan notifikasi untuk tugas.

  2. Buat set data BigQuery, jika Anda belum memilikinya.

  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 hal berikut:

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

Saat tugas Batch berjalan, Pub/Sub mengalirkan notifikasi ke BigQuery.

Menganalisis notifikasi di BigQuery

Analisis notifikasi Pub/Sub di BigQuery, dengan menjalankan kueri di kolom attributes tabel BigQuery. Atribut yang dapat dibuat kuerinya bergantung pada apakah Anda mengonfigurasi notifikasi untuk tugas atau tugas.

Anda dapat mengkueri atribut notifikasi tugas berikut:

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

Anda dapat mengkueri atribut notifikasi pekerjaan berikut:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

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

select attributes.JobUID from `example-table`

Langkah selanjutnya