Streaming dari Pub/Sub ke BigQuery


Tutorial ini menggunakan template Pub/Sub Subscription to BigQuery untuk membuat dan menjalankan tugas Template Dataflow menggunakan Konsol Google Cloud atau Google Cloud CLI. Tutorial ini memandu Anda memahami contoh pipeline streaming yang membaca pesan berenkode JSON dari Pub/Sub, menggunakan Fungsi yang Ditentukan Pengguna (UDF) untuk memperluas template streaming yang disediakan Google, mengubah data pesan dengan Apache Beam SDK, dan menulis hasilnya ke tabel BigQuery.

Manfaat alur kerja ini adalah Anda dapat menggunakan UDF untuk memperluas template streaming yang disediakan Google. Jika Anda perlu mengambil data dari Pub/Sub dan menghasilkannya ke BigQuery, tetapi tidak perlu memperluas template, untuk alur kerja yang lebih sederhana, gunakan fitur langganan Pub/Sub to BigQuery.

Pipeline analisis streaming dan integrasi data menggunakan Pub/Sub untuk menyerap dan mendistribusikan data. Pub/Sub memungkinkan Anda membuat sistem produser dan konsumen peristiwa, yang disebut penayang dan pelanggan. Penayang mengirim peristiwa ke layanan Pub/Sub secara asinkron, dan Pub/Sub mengirimkan peristiwa ke semua layanan yang perlu meresponsnya.

Dataflow adalah layanan terkelola sepenuhnya untuk mengubah dan memperkaya data dalam mode stream (real-time) dan batch. Layanan ini menyediakan lingkungan pengembangan pipeline yang disederhanakan yang menggunakan Apache Beam SDK untuk mengubah data yang masuk, lalu menghasilkan output dari data yang ditransformasi.

Jika Anda ingin menulis pesan ke BigQuery secara langsung tanpa mengonfigurasi Dataflow untuk melakukan transformasi data, gunakan fitur langganan Pub/Sub ke BigQuery.

Tujuan

  • Buat topik Pub/Sub.
  • Membuat set data BigQuery dengan tabel dan skema.
  • Gunakan template streaming yang disediakan Google untuk mengalirkan data dari langganan Pub/Sub Anda ke BigQuery dengan menggunakan Dataflow.
  • Buat Fungsi yang Ditetapkan Pengguna (UDF) untuk memperluas template streaming yang disediakan Google.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

  • Dataflow
  • Pub/Sub
  • Cloud Storage
  • Cloud Scheduler
  • BigQuery

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

Bagian ini menunjukkan cara memilih project, mengaktifkan API, dan memberikan peran yang sesuai ke akun pengguna Anda dan akun layanan pekerja.

Konsol

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Aktifkan API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Aktifkan API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler.

    Mengaktifkan API

  8. Untuk menyelesaikan langkah-langkah dalam tutorial ini, akun pengguna Anda harus memiliki peran Service Account User. Akun layanan default Compute Engine harus memiliki peran berikut: Pekerja Dataflow, Dataflow Admin, Pub/Sub Editor, Storage Object Admin, dan BigQuery Data Editor. Untuk menambahkan peran yang diperlukan di Konsol Google Cloud:

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka IAM
    2. Pilih project Anda.
    3. Di baris yang berisi akun pengguna Anda, klik Edit akun utama, lalu klik Tambahkan peran lain.
    4. Di menu drop-down, pilih peran Service Account User.
    5. Pada baris yang berisi akun layanan default Compute Engine, klik Edit principal, lalu klik Add another role.
    6. Di menu drop-down, pilih peran Dataflow Worker.
    7. Ulangi untuk peran Dataflow Admin, Pub/Sub Editor, Storage Object Admin, dan BigQuery Data Editor, lalu klik Save.

      Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Memberikan peran IAM dengan menggunakan konsol.

gcloud

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Menginstal Google Cloud CLI.
  3. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  4. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. Aktifkan API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler:

    gcloud services enable compute.googleapis.com dataflow.googleapis.com logging.googleapis.com bigquery.googleapis.com pubsub.googleapis.com storage.googleapis.com cloudresourcemanager.googleapis.com cloudscheduler.googleapis.com
  7. Buat kredensial autentikasi lokal untuk Akun Google Anda:

    gcloud auth application-default login
  8. Berikan peran ke Akun Google Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • Ganti PROJECT_ID dengan project ID Anda.
    • Ganti EMAIL_ADDRESS dengan alamat email Anda.
    • Ganti ROLE dengan setiap peran individual.
  9. Menginstal Google Cloud CLI.
  10. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  11. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  12. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  13. Aktifkan API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler:

    gcloud services enable compute.googleapis.com dataflow.googleapis.com logging.googleapis.com bigquery.googleapis.com pubsub.googleapis.com storage.googleapis.com cloudresourcemanager.googleapis.com cloudscheduler.googleapis.com
  14. Buat kredensial autentikasi lokal untuk Akun Google Anda:

    gcloud auth application-default login
  15. Berikan peran ke Akun Google Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • Ganti PROJECT_ID dengan project ID Anda.
    • Ganti EMAIL_ADDRESS dengan alamat email Anda.
    • Ganti ROLE dengan setiap peran individual.
  16. Berikan peran ke akun layanan default Compute Engine Anda. Jalankan perintah berikut sekali untuk setiap peran IAM berikut:

    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/storage.admin
    • roles/pubsub.editor
    • roles/bigquery.dataEditor
    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • PROJECT_NUMBER: nomor project Anda. Untuk menemukan nomor project Anda, gunakan perintah gcloud projects describe.
    • SERVICE_ACCOUNT_ROLE: setiap peran individual.

Membuat contoh sumber dan sink

Bagian ini menjelaskan cara membuat hal berikut:

  • Sumber data streaming menggunakan Pub/Sub
  • Set data untuk memuat data ke BigQuery

Membuat bucket Cloud Storage

Mulailah dengan membuat bucket Cloud Storage menggunakan Google Cloud Console atau Google Cloud CLI. Pipeline Dataflow menggunakan bucket ini sebagai lokasi penyimpanan sementara.

Konsol

  1. Di konsol Google Cloud, buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Klik Create bucket.

  3. Di halaman Create a bucket, untuk Name your bucket, masukkan nama yang memenuhi persyaratan penamaan bucket. Nama bucket Cloud Storage harus unik secara global. Jangan pilih opsi lain.

  4. Klik Create.

gcloud

Gunakan gcloud storage buckets createperintah:

gcloud storage buckets create gs://BUCKET_NAME

Ganti BUCKET_NAME dengan nama untuk bucket Cloud Storage Anda yang memenuhi persyaratan penamaan bucket. Nama bucket Cloud Storage harus unik secara global.

Membuat topik dan langganan Pub/Sub

Membuat topik Pub/Sub, lalu membuat langganan ke topik tersebut.

Konsol

Untuk membuat topik, selesaikan langkah-langkah berikut.

  1. Di konsol Google Cloud, buka halaman Topics Pub/Sub.

    Buka Topik

  2. Klik Create topic.

  3. Di kolom ID Topik, masukkan ID untuk topik Anda. Untuk mengetahui informasi tentang cara memberi nama topik, lihat Panduan untuk menamai topik atau langganan.

  4. Pertahankan opsi Tambahkan langganan default. Jangan pilih opsi lain.

  5. Klik Create topic.

gcloud

Untuk membuat topik, jalankan perintah gcloud pubsub topics create. Untuk informasi tentang cara memberi nama langganan, lihat Panduan menamai topik atau langganan.

gcloud pubsub topics create TOPIC_ID

Ganti TOPIC_ID dengan nama untuk topik Pub/Sub Anda.

Untuk membuat langganan ke topik Anda, jalankan perintah gcloud pubsub subscriptions create:

gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_ID

Ganti SUBSCRIPTION_ID dengan nama untuk langganan Pub/Sub Anda.

Membuat dan menjalankan tugas Cloud Scheduler

Buat dan jalankan dua tugas Cloud Scheduler, salah satunya memublikasikan rating positif, dan yang kedua memublikasikan rating negatif ke topik Pub/Sub Anda.

Konsol

Buat tugas Cloud Scheduler untuk mendapatkan rating positif.

  1. Buka halaman Cloud Scheduler di konsol.

    Buka Cloud Scheduler

  2. Klik tombol Buat tugas.

  3. Masukkan nama positive-ratings-publisher.

  4. Pilih region Dataflow yang dekat dengan tempat Anda menjalankan perintah dalam tutorial ini. Nilai variabel REGION harus berupa nama wilayah yang valid. Untuk mengetahui informasi selengkapnya tentang region dan lokasi, lihat Lokasi Dataflow.

  5. Tentukan frekuensi untuk tugas Anda, menggunakan format unix-cron: * * * * *

    Lihat Mengonfigurasi Jadwal Tugas Cron untuk informasi selengkapnya.

  6. Pilih zona waktu Anda.

  7. Klik Lanjutkan.

  8. Dalam daftar Target, pilih Pub/Sub.

  9. Pilih nama Topik Anda dari daftar.

  10. Tambahkan string Message berikut yang akan dikirim ke target Anda: {"url": "https://beam.apache.org/", "review": "positive"}

  11. Klik Create.

Sekarang Anda memiliki cron job yang mengirimkan pesan dengan rating positif ke topik Pub/Sub setiap menit. Cloud Function Anda berlangganan topik tersebut.

Buat tugas Cloud Scheduler untuk rating negatif.

  1. Pada halaman Cloud Scheduler di konsol, klik tombol Create a job.

  2. Masukkan nama negative-ratings-publisher.

  3. Pilih region untuk menjalankan tugas Anda.

  4. Tentukan frekuensi untuk tugas Anda, menggunakan format unix-cron: */2 * * * *

    Lihat Mengonfigurasi Jadwal Tugas Cron untuk informasi selengkapnya.

  5. Pilih zona waktu Anda.

  6. Klik Lanjutkan.

  7. Dalam daftar Target, pilih Pub/Sub.

  8. Pilih nama Topik Anda dari daftar.

  9. Tambahkan string Message berikut yang akan dikirim ke target Anda: {"url": "https://beam.apache.org/", "review": "negative"}

  10. Klik Create.

Sekarang Anda memiliki cron job yang mengirimkan pesan dengan rating negatif ke topik Pub/Sub setiap dua menit. Cloud Function Anda berlangganan topik tersebut.

gcloud

  1. Untuk membuat tugas Cloud Scheduler untuk tutorial ini, gunakan perintah gcloud scheduler jobs create. Langkah ini akan membuat penayang untuk "rating positif" yang memublikasikan satu pesan per menit.

    gcloud scheduler jobs create pubsub positive-ratings-publisher \
      --schedule="* * * * *" \
      --location=DATAFLOW_REGION \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "positive"}'
    

    Ganti DATAFLOW_REGION dengan region untuk men-deploy tugas Dataflow Anda. Pilih region Dataflow yang dekat dengan tempat Anda menjalankan perintah dalam tutorial ini. Nilai variabel REGION harus berupa nama wilayah yang valid.

  2. Untuk memulai tugas Cloud Scheduler, gunakan perintah gcloud scheduler jobs run.

    gcloud scheduler jobs run --location=DATAFLOW_REGION positive-ratings-publisher
    
  3. Membuat dan menjalankan penayang serupa lainnya untuk "rating negatif" yang memublikasikan satu pesan setiap dua menit. Langkah ini akan membuat penayang untuk "rating negatif" yang memublikasikan satu pesan setiap dua menit.

    gcloud scheduler jobs create pubsub negative-ratings-publisher \
      --schedule="*/2 * * * *" \
      --location=DATAFLOW_REGION  \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "negative"}'
    
  4. Mulai tugas Cloud Scheduler kedua.

    gcloud scheduler jobs run --location=DATAFLOW_REGION negative-ratings-publisher
    

Membuat set data BigQuery

Buat set data dan tabel BigQuery dengan skema yang sesuai untuk topik Pub/Sub Anda.

Konsol

Membuat set data BigQuery.

  1. Buka halaman BigQuery di Konsol Google Cloud.

    Buka halaman BigQuery

  2. Di panel Explorer, pilih project tempat Anda ingin membuat set data.

  3. Luaskan opsi Actions, lalu klik Create dataset.

  4. Di halaman Create dataset:

    • Untuk Dataset ID, masukkan tutorial_dataset.
    • Untuk Lokasi data, pilih lokasi geografis untuk set data. Setelah set data dibuat, lokasi tidak dapat diubah.

    • Jangan pilih opsi lain.

    • Klik Create dataset.

Membuat tabel BigQuery dengan sebuah skema.

  1. Di panel Explorer, luaskan project Anda lalu pilih set data tutorial_dataset.

  2. Luaskan opsi Actions dan klik Open.

  3. Di panel detail, klik Create table .

  4. Di halaman Create table, di bagian Source, pilih Empty table.

  5. Di halaman Create table, di bagian Destination:

    • Pastikan Dataset name ditetapkan ke tutorial_dataset.
    • Di kolom Table name, masukkan tutorial.
    • Pastikan Table type disetel ke Native table.
  6. Di bagian Schema, masukkan definisi skema. Aktifkan Edit sebagai teks, lalu masukkan skema tabel berikut sebagai array JSON.

    [
      {
        "mode": "NULLABLE",
        "name": "url",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "review",
        "type": "STRING"
      }
    ]
    
  7. Untuk Partition and cluster settings, gunakan nilai default: No partitioning.

  8. Di bagian Advanced options, untuk Encryption biarkan nilai default: Google-managed key. Secara default, Dataflow mengenkripsi konten pelanggan yang tersimpan dalam penyimpanan.

  9. Klik Create table.

gcloud

Gunakan perintah bq mk untuk membuat set data.

bq --location=DATAFLOW_REGION mk \
PROJECT_ID:tutorial_dataset

Ganti PROJECT_ID dengan project ID project Anda.

Gunakan perintah bq mk dengan flag --table atau -t untuk membuat tabel dalam set data Anda.

bq mk \
    --table \
    PROJECT_ID:tutorial_dataset.tutorial \
    url:STRING,review:STRING

Membuat Fungsi yang Ditetapkan Pengguna (UDF)

Anda juga dapat membuat UDF JavaScript untuk memperluas template Langganan Pub/Sub yang disediakan Google ke BigQuery. UDF memungkinkan Anda menentukan transformasi data yang tidak ada dalam template dan memasukkannya ke dalam template.

UDF berikut memvalidasi URL rating yang masuk. Rating tanpa URL atau URL yang salah diteruskan ke tabel output berbeda yang diberi akhiran dengan _error_records, juga dikenal sebagai tabel yang dihentikan pengirimannya, dalam project dan set data yang sama.

JavaScript

/**
 * User-defined function (UDF) to transform events
 * as part of a Dataflow template job.
 *
 * @param {string} inJson input Pub/Sub JSON message (stringified)
 */
 function process(inJson) {
    const obj = JSON.parse(inJson);
    const includePubsubMessage = obj.data && obj.attributes;
    const data = includePubsubMessage ? obj.data : obj;

    if (!data.hasOwnProperty('url')) {
      throw new Error("No url found");
    } else if (data.url !== "https://beam.apache.org/") {
      throw new Error("Unrecognized url");
    }

    return JSON.stringify(obj);
  }

Simpan cuplikan JavaScript ini ke bucket Cloud Storage yang dibuat sebelumnya.

Menjalankan pipeline

Jalankan pipeline streaming menggunakan Template Langganan Pub/Sub yang disediakan Google ke BigQuery. Pipeline mengambil data yang masuk dari topik Pub/Sub dan menghasilkan data tersebut ke set data BigQuery.

Konsol

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Klik Create job from template.

  3. Masukkan Job name untuk tugas Dataflow.

  4. Untuk Regional endpoint, pilih region untuk tugas Dataflow.

  5. Untuk Dataflow template, pilih template Pub/Sub Subscription to BigQuery.

  6. Untuk BigQuery output table, masukkan data berikut:

    PROJECT_ID:tutorial_dataset.tutorial
    
  7. Untuk langganan input Pub/Sub, masukkan perintah berikut:

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID
    

    Ganti PROJECT_ID dengan project ID project tempat Anda membuat set data BigQuery dan SUBSCRIPTION_ID dengan nama langganan Pub/Sub Anda.

  8. Untuk Lokasi sementara, masukkan info berikut:

    gs://BUCKET_NAME/temp/
    

    Ganti BUCKET_NAME dengan nama bucket Cloud Storage Anda. Folder temp menyimpan file sementara, seperti tugas pipeline bertahap.

  9. Opsional: guna menyertakan UDF untuk tugas, luaskan Parameter opsional.

    1. Untuk Jalur UDF JavaScript di Cloud Storage, masukkan nilai berikut:

      gs://BUCKET_NAME/dataflow_udf_transform.js
      
    2. Untuk Nama UDF JavaScript, masukkan perintah berikut:

      process
      
  10. Klik Run job.

Untuk memeriksa apakah template dapat meneruskan pesan ke tabel yang dihentikan pengirimannya, publikasikan beberapa rating tanpa URL atau URL yang salah.

  1. Buka halaman Topics Pub/Sub.

  2. Klik TOPIC_ID Anda.

  3. Buka bagian Pesan.

  4. Klik Publikasikan pesan.

  5. Masukkan beberapa rating tanpa URL atau URL yang salah dalam Isi pesan. Misalnya:

    {"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}
    
  6. Klik Publikasikan.

gcloud

Untuk menjalankan template di shell atau terminal, gunakan perintah gcloud dataflow jobs run.

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-DATAFLOW_REGION/latest/PubSub_Subscription_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial

Ganti JOB_NAME dengan nama unik pilihan Anda.

Atau, untuk menjalankan template dengan UDF, gunakan perintah berikut:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-DATAFLOW_REGION/latest/PubSub_Subscription_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial,\
javascriptTextTransformGcsPath=gs://BUCKET_NAME/dataflow_udf_transform.js,\
javascriptTextTransformFunctionName=process

Untuk memeriksa apakah template dapat meneruskan pesan ke tabel yang dihentikan pengirimannya, publikasikan beberapa rating tanpa URL atau URL yang salah. Misalnya:

gcloud pubsub topics publish TOPIC_ID \
  --message='{"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}'

Lihat hasil Anda

Lihat data yang dituliskan ke tabel BigQuery Anda.

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.
    Buka halaman BigQuery

  2. Di editor kueri, jalankan kueri berikut ini:

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial`
    LIMIT 1000
    

    Diperlukan waktu hingga satu menit agar data mulai muncul di tabel Anda.

    Kueri menampilkan baris yang telah ditambahkan ke tabel dalam 24 jam terakhir. Anda juga dapat menjalankan kueri menggunakan SQL standar.

    Jika Anda mengharapkan beberapa data error ditulis ke tabel yang dihentikan pengirimannya, dalam kueri, gunakan nama tabel tutorial_error_records. Contoh:

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
    LIMIT 1000
    

gcloud

Periksa hasilnya di BigQuery dengan menjalankan kueri berikut:

bq query --use_legacy_sql=false 'SELECT * FROM `'"PROJECT_ID.tutorial_dataset.tutorial"'`'

Saat pipeline ini berjalan, Anda dapat melihat baris baru yang ditambahkan ke tabel BigQuery setiap menit.

Jika Anda mengharapkan beberapa data error ditulis ke tabel yang dihentikan pengirimannya, dalam kueri, gunakan nama tabel tutorial_error_records. Contoh:

SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
LIMIT 1000

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project Google Cloud yang Anda buat untuk tutorial.

Konsol

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

gcloud

    Menghapus project Google Cloud:

    gcloud projects delete PROJECT_ID

Menghapus resource satu per satu

Jika ingin menggunakan kembali project tersebut pada lain waktu, Anda dapat mempertahankan project tersebut, tetapi menghapus resource yang dibuat selama tutorial.

Menghentikan pipeline Dataflow

Konsol

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Klik tugas yang ingin Anda hentikan.

    Untuk menghentikan tugas, status tugas harus running.

  3. Di halaman detail pekerjaan, klik Stop.

  4. Klik Cancel.

  5. Untuk mengonfirmasi pilihan Anda, klik Stop Job.

gcloud

Untuk membatalkan tugas Dataflow, gunakan perintah gcloud dataflow jobs.

gcloud dataflow jobs list \
  --filter 'NAME=JOB_NAME AND STATE=Running' \
  --format 'value(JOB_ID)' \
  --region "DATAFLOW_REGION" \
  | xargs gcloud dataflow jobs cancel --region "DATAFLOW_REGION"

Membersihkan resource project Google Cloud

Konsol

  1. Hapus tugas Cloud Scheduler.

    1. Buka halaman Cloud Scheduler di Konsol Google Cloud.

      Buka Cloud Scheduler

    2. Pilih tugas Anda.

    3. Klik tombol Delete di bagian atas halaman dan konfirmasi penghapusan Anda.

  2. Menghapus topik dan langganan Pub/Sub.

    1. Buka halaman Topics Pub/Sub di Konsol Google Cloud.

      Buka Topik

    2. Pilih topik yang Anda buat.

    3. Klik Hapus untuk menghapus topik secara permanen.

    4. Buka halaman Langganan Pub/Sub di Konsol Google Cloud.

      Buka Langganan

    5. Pilih langganan yang dibuat dengan topik Anda.

    6. Klik Hapus untuk menghapus langganan secara permanen.

  3. Hapus tabel dan set data BigQuery.

    1. Di konsol Google Cloud, buka halaman BigQuery.

      Buka BigQuery

    2. Di panel Penjelajah, luaskan project Anda.

    3. Di samping set data yang ingin Anda hapus, klik View actions, lalu klik delete.

  4. Hapus bucket Cloud Storage.

    1. Di konsol Google Cloud, buka halaman Buckets Cloud Storage.

      Buka Buckets

    2. Pilih bucket yang ingin Anda hapus, klik Hapus, lalu ikuti petunjuknya.

gcloud

  1. Untuk menghapus tugas Cloud Scheduler, gunakan perintah gcloud scheduler jobs delete.

    gcloud scheduler jobs delete negative-ratings-publisher --location=DATAFLOW_REGION
    
    gcloud scheduler jobs delete positive-ratings-publisher --location=DATAFLOW_REGION
    
  2. Untuk menghapus topik dan langganan Pub/Sub, gunakan gcloud pubsub subscriptions delete dan perintah gcloud pubsub topics delete.

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    gcloud pubsub topics delete TOPIC_ID
    
  3. Untuk menghapus tabel BigQuery, gunakan perintah bq rm.

    bq rm -f -t PROJECT_ID:tutorial_dataset.tutorial
    
  4. Hapus set data BigQuery. Set data saja tidak dikenai biaya apa pun.

    bq rm -r -f -d PROJECT_ID:tutorial_dataset
    
  5. Untuk menghapus bucket Cloud Storage, gunakan perintah gcloud storage rm. Bucket saja tidak dikenai biaya apa pun.

    gcloud storage rm gs://BUCKET_NAME --recursive
    

Mencabut kredensial

Konsol

Jika Anda mempertahankan project Anda, cabut peran yang Anda berikan ke akun layanan default Compute Engine.

  1. Di konsol Google Cloud, buka halaman IAM.

Buka IAM

  1. Pilih project, folder, atau organisasi.

  2. Cari baris yang berisi akun utama yang aksesnya ingin Anda cabut. Di baris tersebut, klik Edit akun utama.

  3. Klik tombol Delete untuk setiap peran yang ingin Anda cabut, lalu klik Save.

gcloud

  • Jika Anda mempertahankan project Anda, cabut peran yang Anda berikan ke akun layanan default Compute Engine. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:
    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/storage.admin
    • roles/pubsub.editor
    • roles/bigquery.dataEditor
      gcloud projects remove-iam-policy-binding <var>PROJECT_ID</var> \
      --member=serviceAccount:<var>PROJECT_NUMBER</var>-compute@developer.gserviceaccount.com \
      --role=<var>ROLE</var>
    

  • Opsional: Cabut kredensial autentikasi yang Anda buat, dan hapus file kredensial lokal.

    gcloud auth application-default revoke
  • Opsional: Cabut kredensial dari gcloud CLI.

    gcloud auth revoke

Langkah selanjutnya