Memantau status tugas menggunakan notifikasi Pub/Sub dan BigQuery

Dokumen ini menjelaskan cara memantau perubahan status tugas dan operasi 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 di dokumentasi Pub/Sub.

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

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 hal berikut:
    1. Aktifkan Pub/Sub API.

      Peran yang diperlukan untuk mengaktifkan API

      Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

      Mengaktifkan 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 Anda ingin melakukan streaming dan menganalisis notifikasi ke tabel BigQuery, Anda harus melakukan hal berikut:
    1. Aktifkan BigQuery API.

      Peran yang diperlukan untuk mengaktifkan API

      Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

      Mengaktifkan 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) ke 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 semua pengguna yang ingin Anda analisis notifikasinya di BigQuery memiliki izin yang diperlukan.

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

Menyiapkan notifikasi Pub/Sub untuk Batch

Batch mendukung notifikasi Pub/Sub untuk perubahan pada status tugas dan operasi, yang dapat Anda gunakan untuk pemberitahuan, observabilitas, 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 guna 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. Anda dapat menerima notifikasi setiap kali status tugas atau operasi berubah, atau Anda dapat memfilter notifikasi untuk status tugas atau operasi tertentu. Perlu diperhatikan bahwa Pub/Sub tidak mengirim notifikasi untuk status pertama yang dimasuki tugas atau operasi; Pub/Sub hanya mengirim notifikasi saat tugas berpindah dari satu status ke status lain.

Untuk mengetahui informasi selengkapnya tentang atribut yang dapat Anda konfigurasi 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 sudah 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 memungkinkan 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 opsinya adalah mengonfigurasi topik Anda 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.

Jika tidak, untuk mempelajari langganan dan opsi langganan lainnya lebih lanjut, lihat Ringkasan langganan di 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 belum melakukannya, minta administrator Anda untuk memberikan semua izin yang diperlukan agar tugas dapat mengirim notifikasi ke topik Pub/Sub Anda. Izin ini tercantum di bagian Peran yang diperlukan section 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 Anda ke tabel BigQuery, Anda dapat menyimpan histori perubahan status tugas dan operasi 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 belum melakukannya, buat atau identifikasi topik Pub/Sub untuk Batch.

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

    • Topik: pilih topik Pub/Sub untuk Batch.
    • Project: pilih project yang berisi tabel BigQuery Anda.
    • Set data: pilih set data yang berisi tabel BigQuery Anda.
    • Tabel: pilih tabel yang Anda buat pada 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 pada kolom attributes tabel BigQuery. Atribut yang dapat Anda kueri bergantung pada apakah Anda mengonfigurasi notifikasi untuk tugas atau operasi.

Anda dapat membuat kueri atribut notifikasi tugas berikut:

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

Anda dapat membuat kueri atribut notifikasi operasi berikut:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

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

select attributes.JobUID from `example-table`

Langkah berikutnya