Streaming dari Pub/Sub ke BigQuery


Tutorial ini menggunakan template Langganan Pub/Sub ke BigQuery untuk membuat dan menjalankan tugas template Dataflow menggunakan konsol Google Cloud atau Google Cloud CLI. Tutorial ini akan memandu Anda melalui contoh pipeline streaming yang membaca pesan yang dienkode JSON dari Pub/Sub, menggunakan Fungsi yang Ditetapkan Pengguna (UDF) untuk memperluas template streaming yang disediakan Google, mengubah data pesan dengan Apache Beam SDK, dan menulis hasilnya ke tabel BigQuery.

Analisis streaming dan pipeline integrasi data menggunakan Pub/Sub untuk menyerap dan mendistribusikan data. Pub/Sub memungkinkan Anda membuat sistem produsen dan konsumen peristiwa, yang disebut penayang dan pelanggan. Penayang mengirimkan peristiwa ke layanan Pub/Sub secara asinkron, dan Pub/Sub mengirimkan peristiwa ke semua layanan yang perlu bereaksi terhadap peristiwa tersebut.

Dataflow adalah layanan terkelola sepenuhnya untuk mengubah dan mempersempit data dalam mode streaming (real-time) dan batch. Library ini menyediakan lingkungan pengembangan pipeline sederhana yang menggunakan Apache Beam SDK untuk mengubah data yang masuk, lalu menghasilkan output data yang diubah.

Manfaat alur kerja ini adalah Anda dapat menggunakan UDF untuk mengubah data pesan sebelum ditulis ke BigQuery. Opsi lainnya adalah menggunakan langganan BigQuery, yang menulis pesan Pub/Sub langsung ke BigQuery, tanpa menggunakan Dataflow. Opsi ini hanya mendukung pengiriman setidaknya satu kali; opsi ini tidak mendukung pemrosesan tepat satu kali.

Tujuan

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

Biaya

Dalam dokumen ini, Anda akan 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 dan ke akun layanan pekerja.

Konsol

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler APIs.

    Enable the APIs

  8. Untuk menyelesaikan langkah-langkah dalam tutorial ini, akun pengguna Anda harus memiliki peran Pengguna Akun Layanan. Akun layanan default Compute Engine harus memiliki peran berikut: Dataflow Worker, 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. Pada 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. Di baris yang berisi akun layanan default Compute Engine, klik Edit akun utama, lalu klik Tambahkan peran lain.
    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 cara memberikan peran, lihat Memberikan peran IAM menggunakan konsol.

gcloud

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler APIs:

    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. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
    • Replace PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.
  9. Install the Google Cloud CLI.
  10. To initialize the gcloud CLI, run the following command:

    gcloud init
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Make sure that billing is enabled for your Google Cloud project.

  13. Enable the Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler APIs:

    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. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  15. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
    • Replace PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.
  16. Berikan peran ke akun layanan default Compute Engine Anda. 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 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.

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

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

Konsol

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

    Buka Bucket

  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 lainnya.

  4. Klik Create.

gcloud

Gunakan perintah gcloud storage buckets create:

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

Buat topik Pub/Sub, lalu buat 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 informasi tentang cara memberi nama topik, lihat Panduan untuk memberi nama topik atau langganan.

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

  5. Klik Create topic.

gcloud

Untuk membuat topik, jalankan perintah gcloud pubsub topics create. Untuk informasi tentang cara memberi nama langganan, lihat Panduan untuk memberi nama 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, satu yang memublikasikan rating positif dan tugas kedua yang memublikasikan rating negatif ke topik Pub/Sub Anda.

Konsol

Buat tugas Cloud Scheduler untuk rating positif.

  1. Buka halaman Cloud Scheduler di konsol.

    Buka Cloud Scheduler

  2. Klik tombol Create a job.

  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 dari daftar.

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

  11. Klik Create.

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

Buat tugas Cloud Scheduler untuk rating negatif.

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

  2. Masukkan nama negative-ratings-publisher.

  3. Pilih region tempat tugas Anda akan dijalankan.

  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 dari daftar.

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

  10. Klik Create.

Sekarang Anda memiliki tugas cron yang mengirim pesan dengan rating negatif ke topik Pub/Sub setiap dua menit. Cloud Function Anda akan 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. Buat dan jalankan 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 Data location, pilih lokasi geografis untuk set data. Setelah set data dibuat, lokasi tidak dapat diubah.

    • Jangan pilih opsi lainnya.

    • Klik Create dataset.

Membuat tabel BigQuery dengan skema.

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

  2. Luaskan opsi Tindakan dan klik Buka.

  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 Nama set data 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 dan 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, biarkan nilai default: No partitioning.

  8. Di bagian Advanced options, untuk Encryption, biarkan nilai default: Google-managed key. Secara default, Dataflow mengenkripsi konten pelanggan yang disimpan 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 di set data Anda.

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

Membuat Fungsi yang Ditentukan Pengguna (UDF)

Anda dapat membuat UDF JavaScript secara opsional untuk memperluas template Pub/Sub Subscription yang disediakan Google ke BigQuery. Dengan UDF, Anda dapat 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 akan diteruskan ke tabel output yang berbeda dengan akhiran _error_records, yang juga dikenal sebagai tabel dead-letter, 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 Pub/Sub Subscription to BigQuery yang disediakan Google. Pipeline mendapatkan data masuk dari topik Pub/Sub dan menghasilkan output data ke set data BigQuery Anda.

Konsol

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

    Buka Tugas

  2. Klik Create job from template.

  3. Masukkan Nama tugas untuk tugas Dataflow Anda.

  4. Untuk Endpoint regional, pilih region untuk tugas Dataflow Anda.

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

  6. Untuk BigQuery output table, masukkan hal berikut:

    PROJECT_ID:tutorial_dataset.tutorial
    
  7. Untuk Pub/Sub input subscription, masukkan hal 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 Temporary location, masukkan informasi berikut:

    gs://BUCKET_NAME/temp/
    

    Ganti BUCKET_NAME dengan nama bucket Cloud Storage Anda. Folder temp menyimpan file sementara, seperti tugas pipeline yang di-staging.

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

    1. Untuk JavaScript UDF path in Cloud Storage, masukkan hal berikut:

      gs://BUCKET_NAME/dataflow_udf_transform.js
      
    2. Untuk JavaScript UDF name, masukkan kode berikut:

      process
      
  10. Klik Run job.

Untuk memeriksa apakah template dapat meneruskan pesan ke tabel dead-letter, 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. Memasukkan beberapa rating tanpa URL atau URL yang salah di 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.

Secara opsional, 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 dead-letter, 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"}'

Melihat hasil

Lihat data yang ditulis ke tabel BigQuery Anda.

Konsol

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

  2. Di editor kueri, jalankan kueri berikut:

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

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

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

    Jika Anda mengharapkan beberapa data error ditulis ke tabel dead letter, 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 dead letter, 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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

gcloud

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

Menghapus resource satu per satu

Jika ingin menggunakan kembali project nanti, Anda dapat mempertahankan project, 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 berjalan.

  3. Di halaman detail tugas, 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"

Menghapus 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 Hapus di bagian atas halaman dan konfirmasi penghapusan.

  2. Hapus 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 Subscriptions 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 Explorer, luaskan project Anda.

    3. Di samping set data yang ingin Anda hapus, klik Lihat tindakan, lalu klik hapus.

  4. Hapus bucket Cloud Storage.

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

      Buka Bucket

    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 langganan dan topik Pub/Sub, gunakan perintah gcloud pubsub subscriptions delete dan 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, 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 Hapus untuk setiap peran yang ingin Anda cabut, lalu klik Simpan.

gcloud

  • Jika Anda mempertahankan project, 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>
    

  • Optional: Revoke the authentication credentials that you created, and delete the local credential file.

    gcloud auth application-default revoke
  • Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke

Langkah selanjutnya