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 menuliskannya ke tabel BigQuery.


Untuk mengikuti panduan langkah demi langkah untuk tugas ini langsung di Google Cloud konsol, klik Pandu saya:

Pandu saya


Sebelum memulai

Selesaikan langkah-langkah berikut sebelum menjalankan pipeline.

Menyiapkan project

  1. Sign in to your Google Cloud account. 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify 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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify 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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Peran yang diperlukan

Untuk menyelesaikan panduan memulai ini, Anda memerlukan peran Identity and Access Management (IAM) berikut.

Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan memulai ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Untuk memastikan bahwa akun layanan default Compute Engine memiliki izin yang diperlukan untuk menjalankan tugas Dataflow, minta administrator Anda untuk memberikan peran IAM berikut ke akun layanan default Compute Engine di project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan default Compute Engine melalui peran khusus atau peran bawaan lainnya.

Membuat bucket Cloud Storage

Sebelum dapat menjalankan pipeline, Anda harus membuat bucket Cloud Storage.

  1. Membuat bucket Cloud Storage:

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

      Buka Buckets

    2. Klik Create.
    3. Di halaman Create a bucket, masukkan informasi bucket Anda. Untuk melanjutkan ke langkah berikutnya, klik Continue.
      1. Untuk Name your bucket, masukkan nama bucket yang unik. Jangan sertakan informasi sensitif informasi pada nama bucket, karena namespace bucket bersifat global dan dapat dilihat publik publik.
      2. Di bagian Choose where to store your data, lakukan tindakan berikut:
        1. Pilih Jenis lokasi.
        2. Pilih lokasi tempat data bucket Anda disimpan secara permanen dari menu drop-down Location type.
          • Jika memilih jenis lokasi dual-region, Anda juga dapat memilih untuk mengaktifkan replikasi turbo menggunakan kotak centang yang relevan.
        3. Untuk menyiapkan replikasi lintas bucket, pilih Add cross-bucket replication via Storage Transfer Service dan ikuti langkah-langkah berikut:

          Menyiapkan replikasi lintas bucket

          1. Di menu Bucket, pilih bucket.
          2. Di bagian Replication settings , klik Configure untuk mengonfigurasi setelan tugas replikasi.

            Panel Configure cross-bucket replication akan muncul muncul.

            • Untuk memfilter objek yang akan direplikasi berdasarkan awalan nama objek, masukkan awalan yang ingin Anda sertakan atau kecualikan objeknya, lalu klik Add a prefix.
            • Untuk menetapkan kelas penyimpanan bagi objek yang direplikasi, pilih kelas penyimpanan dari menu Storage class. Jika Anda melewati langkah ini, objek yang direplikasi akan menggunakan kelas penyimpanan bucket tujuan secara default.
            • Klik Done.
      3. Di bagian Choose how to store your data, lakukan tindakan berikut:
        1. Di bagian Set a default class, pilih Standard.
        2. Untuk mengaktifkan namespace hierarkis, di bagian Optimize storage for data-intensive workloads, pilih Enable hierarchical namespace on this bucket.
      4. Di bagian Choose how to control access to objects, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih metode kontrol akses untuk objek bucket Anda.
      5. Di bagian Choose how to protect object data, lakukan tindakan berikut:
        • Pilih salah satu opsi di bagian Data protection yang Anda ingin Anda tetapkan untuk bucket Anda.
          • Untuk mengaktifkan penghapusan sementara, klik kotak centang Soft delete policy (For data recovery), lalu tentukan jumlah hari Anda ingin menyimpan objek setelah penghapusan.
          • Untuk menetapkan Pembuatan Versi Objek, klik kotak centang Object versioning (For version control) , lalu tentukan jumlah maksimum versi per objek dan jumlah hari setelah versi lama berakhir masa berlakunya.
          • Untuk mengaktifkan kebijakan retensi pada objek dan bucket, klik kotak centang Retention (For compliance), lalu lakukan tindakan berikut:
            • Untuk mengaktifkan Kunci Retensi Objek, klik kotak centang Enable object retention.
            • Untuk mengaktifkan Kunci Bucket, klik kotak centang Set bucket retention policy, lalu pilih satuan waktu dan lama untuk periode retensi data.
        • Untuk memilih cara data objek Anda akan dienkripsi, luaskan bagian Data encryption (), lalu pilih metode Data encryption.
    4. Klik Create.
  2. Salin hal berikut, karena Anda akan memerlukannya di bagian selanjutnya:

    • Nama bucket Cloud Storage Anda.
    • Project ID Anda. Google Cloud

    Untuk menemukan ID ini, lihat Mengidentifikasi project.

Jaringan VPC

Secara default, setiap project baru dimulai dengan jaringan default. Jika jaringan default untuk project Anda dinonaktifkan atau dihapus, Anda harus memiliki jaringan di project Anda yang akun penggunanya 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 Google Cloud konsol.

Dalam contoh ini, nama set datanya adalah taxirides dan nama tabelnya 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 Google Cloud project.
    2. Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States). Set data publik disimpan di lokasi multi-region US . Untuk mempermudah, simpan set data Anda di lokasi yang sama.
    3. Biarkan setelan default lainnya, lalu klik Create dataset
  4. Di Explorer panel, luaskan project Anda.
  5. Di samping set data taxirides Anda, 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 ini mendapatkan data masuk dari topik input.

  1. Buka halaman Jobs Dataflow.
    Buka Jobs
  2. Klik Create job from template.
  3. Masukkan taxi-data sebagai Job name 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, di kolom 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's. 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 Network dan Subnetwork. Untuk mengetahui informasi selengkapnya, lihat Menentukan jaringan dan subnetwork.
  10. Klik Run job.

Melihat hasil penelusuran Anda

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. Perlu waktu hingga lima menit agar data mulai muncul di tabel Anda.

  3. Klik Run.

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

Pembersihan

Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Google Cloud

Menghapus project

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

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

    Buka Kelola resource

  2. Pada daftar project, pilih project yang Anda 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 ingin menyimpan Google Cloud project yang Anda gunakan dalam panduan memulai ini, hapus masing-masing resource:

  1. Buka halaman Jobs Dataflow.
    Buka Jobs
  2. Pilih tugas streaming Anda dari daftar tugas.
  3. Di navigasi, klik Stop.
  4. Dalam dialog Stop job, batalkan atau hentikan pipeline Anda, 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 View actions, lalu klik Open.
  8. Di panel detail, klik Delete dataset, lalu ikuti petunjuk.
  9. Di Google Cloud konsol, buka halaman Buckets Cloud Storage.

    Buka Buckets

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

Langkah berikutnya