Membuat pipeline streaming menggunakan template Dataflow

Panduan memulai ini menunjukkan cara membuat pipeline streaming menggunakan template Dataflow yang disediakan Google. Secara khusus, panduan memulai ini menggunakan template Pub/Sub to BigQuery sebagai contoh.

Template Pub/Sub to BigQuery adalah pipeline streaming yang dapat membaca pesan berformat JSON dari topik Pub/Sub dan menulisnya ke tabel BigQuery.


Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:

Pandu saya


Sebelum memulai

  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 Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager 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 Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.

    Enable the APIs

  8. Membuat bucket Cloud Storage:
    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
      • For Name your bucket, enter a unique bucket name. Don't include sensitive information in the bucket name, because the bucket namespace is global and publicly visible.
      • For Choose where to store your data, do the following:
        • Select a Location type option.
        • Select a Location option.
      • For Choose a default storage class for your data, select the following: Standard.
      • For Choose how to control access to objects, select an Access control option.
      • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
    4. Click Create.
  9. Salin kode berikut, karena Anda memerlukannya di bagian selanjutnya:
  10. Untuk menyelesaikan langkah-langkah dalam panduan memulai ini, akun pengguna Anda harus memiliki peran Admin Dataflow dan peran Pengguna Akun Layanan. Akun layanan default Compute Engine harus memiliki peran Dataflow Worker, peran Storage Object Admin, peran Pub/Sub Editor, peran BigQuery Data Editor, dan peran Viewer. Untuk menambahkan peran yang diperlukan di konsol Google Cloud:

    1. Buka halaman IAM dan pilih project Anda.
      Buka IAM
    2. Di baris yang berisi akun pengguna Anda, klik Edit akun utama. Klik Add another role, lalu tambahkan peran berikut: Dataflow Admin dan Service Account User.
    3. Klik Simpan.
    4. Pada baris yang berisi akun layanan default Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com), klik Edit akun utama.
    5. Klik Tambahkan peran lain, lalu tambahkan peran berikut: Pekerja Dataflow, Admin Objek Penyimpanan, Editor Pub/Sub, BigQuery Data Editor, Pelihat.
    6. Klik Simpan.

      Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Memberikan peran IAM menggunakan konsol.

  11. Secara default, setiap project baru dimulai dengan jaringan default. Jika jaringan default untuk project Anda dinonaktifkan atau dihapus, Anda harus memiliki jaringan di project yang akun penggunanya memiliki peran Compute Network User (roles/compute.networkUser).

Membuat set data dan tabel BigQuery

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

Dalam contoh ini, nama set data adalah taxirides dan nama tabel adalah realtime. Untuk membuat set data dan tabel ini, ikuti langkah-langkah berikut:

  1. Buka halaman BigQuery.
    Buka BigQuery
  2. Di panel Explorer, di samping project tempat Anda ingin membuat set data, klik View actions, lalu klik Create dataset.
  3. Di panel Create dataset, ikuti langkah-langkah berikut:
    1. Untuk Dataset ID, masukkan taxirides. ID set data bersifat unik untuk setiap project Google Cloud.
    2. Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States). Set data publik disimpan di lokasi multi-region US. Agar lebih mudah, tempatkan set data Anda di lokasi yang sama.
    3. Tetap gunakan setelan default lainnya, lalu klik Create dataset
  4. Di panel Explorer, luaskan project Anda.
  5. Di samping set data taxirides, klik View actions, lalu klik Create table.
  6. Di panel Create table, ikuti langkah-langkah berikut:
    1. Di bagian Source, untuk Create table from, pilih Empty table.
    2. Di bagian Destination, untuk Table, masukkan realtime.
    3. Di bagian Schema, klik tombol Edit as text dan tempelkan definisi skema berikut ke dalam kotak:
      ride_id:string,point_idx:integer,latitude:float,longitude:float,timestamp:timestamp,
      meter_reading:float,meter_increment:float,ride_status:string,passenger_count:integer
    4. Di bagian Partition and cluster settings, untuk Partitioning, pilih kolom timestamp.
  7. Tetap gunakan setelan default lainnya, lalu klik Create table.

Menjalankan pipeline

Jalankan pipeline streaming menggunakan template Pub/Sub to BigQuery yang disediakan Google. Pipeline mendapatkan data masuk dari topik input.

  1. Buka halaman Tugas Dataflow.
    Buka Tugas
  2. Klik Create job from template.
  3. Masukkan taxi-data sebagai Nama tugas untuk tugas Dataflow Anda.
  4. Untuk Dataflow template, pilih template Pub/Sub to BigQuery.
  5. Untuk BigQuery output table, masukkan hal berikut:
    PROJECT_ID:taxirides.realtime

    Ganti PROJECT_ID dengan project ID project tempat Anda membuat set data BigQuery.

  6. Di bagian Optional source parameters, untuk Input Pub/Sub topic, klik Enter topic manually.
  7. Dalam dialog, untuk Topic name, masukkan hal berikut, lalu klik Save:
    projects/pubsub-public-data/topics/taxirides-realtime

    Topik Pub/Sub yang tersedia secara publik ini didasarkan pada set data terbuka NYC Taxi & Limousine Commission. Berikut adalah contoh pesan dari topik ini, dalam format JSON:

    {
      "ride_id": "19c41fc4-e362-4be5-9d06-435a7dc9ba8e",
      "point_idx": 217,
      "latitude": 40.75399,
      "longitude": -73.96302,
      "timestamp": "2021-03-08T02:29:09.66644-05:00",
      "meter_reading": 6.293821,
      "meter_increment": 0.029003782,
      "ride_status": "enroute",
      "passenger_count": 1
    }
  8. Untuk Temp location, masukkan hal 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. Jika project Anda tidak memiliki jaringan default, masukkan Jaringan dan Subjaringan. Untuk mengetahui informasi selengkapnya, lihat Menentukan jaringan dan subnetwork.
  10. Klik Run job.

Melihat hasil

Untuk melihat data yang ditulis ke tabel realtime, ikuti langkah-langkah berikut:

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Klik Compose a new query. Tab Editor baru akan terbuka.

    SELECT * FROM `PROJECT_ID.taxirides.realtime`
    WHERE `timestamp` > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
    LIMIT 1000

    Ganti PROJECT_ID dengan project ID project tempat Anda membuat set data BigQuery. Mungkin perlu waktu hingga lima menit agar data mulai muncul di tabel Anda.

  3. Klik Run.

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

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

Menghapus project

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

  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.

Menghapus resource satu per satu

Jika ingin menyimpan project Google Cloud yang digunakan dalam panduan memulai ini, hapus setiap resource:

  1. Buka halaman Tugas Dataflow.
    Buka Tugas
  2. Pilih tugas streaming Anda dari daftar tugas.
  3. Di navigasi, klik Stop.
  4. Di dialog Stop job, batalkan atau kosongkan pipeline, lalu klik Stop job.
  5. Buka halaman BigQuery.
    Buka BigQuery
  6. Di panel Explorer, luaskan project Anda.
  7. Di samping set data yang ingin Anda hapus, klik Lihat tindakan, lalu klik Buka.
  8. Di panel detail, klik Delete dataset, lalu ikuti petunjuknya.
  9. In the Google Cloud console, go to the Cloud Storage Buckets page.

    Go to Buckets

  10. Click the checkbox for the bucket that you want to delete.
  11. To delete the bucket, click Delete, and then follow the instructions.

Langkah selanjutnya