Membuat pipeline streaming menggunakan template Dataflow

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

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

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

    Mengaktifkan API

  8. Membuat bucket Cloud Storage:
    1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

      Buka halaman Bucket

    2. Klik Buat bucket.
    3. Di halaman Buat bucket, masukkan informasi bucket Anda. Untuk melanjutkan ke langkah berikutnya, klik Lanjutkan.
      • Untuk Beri nama bucket Anda, masukkan nama bucket yang unik. Jangan sertakan informasi sensitif pada nama bucket, karena namespace bucket bersifat global dan dapat dilihat publik.
      • Untuk Pilih tempat untuk menyimpan data, lakukan tindakan berikut:
        • Pilih opsi Jenis lokasi.
        • Pilih opsi Lokasi.
      • Untuk Memilih kelas penyimpanan default untuk data Anda, pilih opsi berikut: Standar.
      • Untuk Memilih cara mengontrol akses ke objek, pilih opsi Kontrol akses.
      • Untuk Setelan lanjutan (opsional), tentukan metode enkripsi, kebijakan retensi, atau label bucket.
    4. Klik Buat.
  9. Salin kode berikut sesuai kebutuhan Anda di bagian selanjutnya:
  10. Untuk menyelesaikan langkah-langkah dalam panduan memulai ini, akun pengguna Anda harus memiliki peran Admin Dataflow dan peran Service Account User. Akun layanan default Compute Engine harus memiliki peran Pekerja Dataflow. Untuk menambahkan peran yang diperlukan di Konsol Google Cloud:

    1. 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 Dataflow Admin.
    5. Ulangi untuk peran Service Account User, lalu klik Save.
    6. Pada baris yang berisi akun layanan default Compute Engine, klik Edit principal, lalu klik Add another role.
    7. Di menu drop-down, pilih peran Dataflow Worker.
    8. Ulangi untuk peran Pub/Sub Editor dan BigQuery Data Editor, lalu klik Save.

      Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Memberikan peran IAM dengan 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 pengguna Anda memiliki peran Pengguna Jaringan Compute (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 tabelnya adalah realtime. Untuk membuat {i>dataset<i} 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 Buat set data, ikuti langkah-langkah berikut:
    1. Untuk Dataset ID, masukkan taxirides. ID set data bersifat unik untuk setiap project Google Cloud.
    2. Untuk Jenis lokasi, pilih Multi-region, lalu pilih AS (beberapa region di Amerika Serikat). 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 Buat tabel, 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 tempel 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 mengambil data yang masuk dari topik input.

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

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

  6. Luaskan Parameter opsional.
  7. Untuk Input Pub/Sub topic, klik Enter topic manually.
  8. Dalam dialog, masukkan nilai berikut untuk Nama topik, lalu klik Simpan:
    projects/pubsub-public-data/topics/taxirides-realtime

    Topik Pub/Sub yang tersedia untuk 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
    }
  9. Untuk Lokasi sementara, masukkan:
    gs://BUCKET_NAME/temp/

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

  10. Jika project Anda tidak memiliki jaringan default, masukkan Jaringan dan Subnetwork. Untuk mengetahui informasi selengkapnya, lihat Menentukan jaringan dan subnetwork.
  11. Klik Run job.

Lihat hasil Anda

Untuk melihat data yang ditulis ke tabel realtime Anda, 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. Diperlukan waktu hingga satu menit sampai 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. 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.

Menghapus resource satu per satu

Jika Anda ingin mempertahankan project Google Cloud yang Anda gunakan di panduan memulai ini, hapus setiap resource-nya:

  1. Buka halaman Jobs Dataflow.
    Buka Tugas
  2. Pilih tugas streaming Anda dari daftar tugas.
  3. Pada navigasi, klik Hentikan.
  4. Pada dialog Stop job, batalkan atau drain pipeline Anda, lalu klik Stop job.
  5. Buka halaman BigQuery.
    Buka BigQuery
  6. Di panel Penjelajah, luaskan project Anda.
  7. Di samping set data yang ingin Anda hapus, klik View actions, lalu klik Open.
  8. Di panel detail, klik Delete dataset, lalu ikuti petunjuknya.
  9. Di konsol Google Cloud, buka halaman Buckets Cloud Storage.

    Buka Buckets

  10. Klik kotak centang untuk bucket yang ingin Anda dihapus.
  11. Untuk menghapus bucket, klik Hapus, lalu ikuti petunjuk.

Langkah selanjutnya