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 to BigQuery sebagai contoh.
Template Pub/Sub ke 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:
Sebelum memulai
Selesaikan langkah-langkah berikut sebelum menjalankan pipeline Anda.
Menyiapkan project
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.
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 cepat ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Pengguna BigQuery (
roles/bigquery.user) -
Dataflow Admin (
roles/dataflow.admin) -
Service Account User (
roles/iam.serviceAccountUser) -
Storage Admin (
roles/storage.admin)
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 untuk memberikan peran IAM berikut ke akun layanan default Compute Engine di project Anda:
-
BigQuery Data Editor (
roles/bigquery.dataEditor) -
Dataflow Worker (
roles/dataflow.worker) -
Pub/Sub Editor (
roles/pubsub.editor) -
Storage Object Admin (
roles/storage.objectAdmin) -
Pelihat (
roles/viewer)
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.
Membuat bucket Cloud Storage:
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
- Klik Create.
- 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.
-
Di bagian Pilih tempat untuk menyimpan data Anda, lakukan tindakan berikut:
- Pilih Jenis lokasi.
- 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 dengan menggunakan kotak centang yang relevan.
- Untuk menyiapkan replikasi lintas bucket, pilih
Add cross-bucket replication via Storage Transfer Service dan
ikuti langkah-langkah berikut:
Menyiapkan replikasi lintas bucket
- Di menu Bucket, pilih bucket.
Di bagian Setelan replikasi, klik Konfigurasi untuk mengonfigurasi setelan bagi tugas replikasi.
Panel Konfigurasi replikasi lintas bucket akan muncul.
- Untuk memfilter objek yang akan direplikasi menurut awalan nama objek, masukkan awalan yang ingin Anda sertakan atau kecualikan objeknya, lalu klik Tambahkan awalan.
- Untuk menetapkan kelas penyimpanan bagi objek yang direplikasi, pilih kelas penyimpanan dari menu Kelas penyimpanan. Jika Anda melewati langkah ini, objek yang direplikasi akan menggunakan kelas penyimpanan bucket tujuan secara default.
- Klik Done.
-
Di bagian Choose how to store your data, lakukan tindakan berikut:
- Di bagian Setel kelas default, pilih opsi berikut: Standard.
- Untuk mengaktifkan namespace hierarkis, di bagian Optimalkan penyimpanan untuk beban kerja intensif data, pilih Aktifkan namespace hierarkis di bucket ini.
- Di bagian Pilih cara mengontrol akses ke objek, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih metode kontrol akses untuk objek bucket Anda.
-
Di bagian Pilih cara melindungi data objek, lakukan
tindakan berikut:
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
- Untuk mengaktifkan penghapusan sementara, klik kotak centang Kebijakan penghapusan sementara (Untuk pemulihan data), dan tentukan jumlah hari Anda ingin mempertahankan objek setelah penghapusan.
- Untuk menyetel Pembuatan Versi Objek, klik kotak centang Pembuatan versi objek (Untuk kontrol versi), dan tentukan jumlah maksimum versi per objek dan jumlah hari setelah versi lama berakhir.
- Untuk mengaktifkan kebijakan retensi pada objek dan bucket, klik kotak centang Retensi (Untuk kepatuhan), lalu lakukan hal berikut:
- Untuk mengaktifkan Penguncian Retensi Objek, centang kotak Aktifkan retensi objek.
- Untuk mengaktifkan Bucket Lock, centang kotak Setel kebijakan retensi bucket, lalu pilih satuan waktu dan durasi untuk periode retensi data Anda.
- Untuk memilih cara mengenkripsi data objek Anda, luaskan bagian Enkripsi data (), lalu pilih metode Enkripsi data.
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
- Klik Create.
Salin perintah berikut karena Anda akan memerlukannya di bagian selanjutnya:
- Nama bucket Cloud Storage Anda.
- ID project Google Cloud Anda.
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 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 menggunakan konsol Google Cloud .
Dalam contoh ini, nama set datanya adalah taxirides dan nama
tabelnya adalah realtime. Untuk membuat set data dan tabel ini, ikuti langkah-langkah berikut:
- Buka halaman BigQuery.
Buka BigQuery - Di panel Explorer, di samping project tempat Anda ingin membuat set data, klik View actions, lalu klik Create dataset.
- Di panel Create dataset, ikuti langkah-langkah berikut:
- Untuk Dataset ID, masukkan
taxirides. ID set data bersifat unik untuk setiap project Google Cloud . - 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. - Tetap gunakan setelan default lainnya, lalu klik Create dataset
- Di panel
Explorer , luaskan project Anda. - Di samping set data
taxirides, klik Lihat tindakan, lalu klik Buat tabel. - Di panel Create table, ikuti langkah-langkah berikut:
- Di bagian Source, untuk Create table from, pilih Empty table.
- Di bagian Destination, untuk Table, masukkan
realtime. - Di bagian Schema, klik tombol Edit as text, lalu 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
- Di bagian Partition and cluster settings, untuk Partitioning, pilih kolom timestamp.
- 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.
- Buka halaman Tugas Dataflow.
Buka Tugas - Klik
Create job from template . - Masukkan
taxi-datasebagai Job name untuk tugas Dataflow Anda. - Untuk Dataflow template, pilih template Pub/Sub to BigQuery.
- Untuk BigQuery output table, masukkan berikut ini:
PROJECT_ID:taxirides.realtime
Ganti
PROJECT_IDdengan project ID project tempat Anda membuat set data BigQuery. - Di bagian Optional source parameters, di kolom Input Pub/Sub topic, klik Enter topic manually.
- Dalam dialog, untuk Topic name, masukkan yang 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 }
- Untuk Lokasi sementara, masukkan yang berikut:
gs://BUCKET_NAME/temp/
Ganti
BUCKET_NAMEdengan nama bucket Cloud Storage Anda. Foldertempmenyimpan file sementara, seperti tugas pipeline yang di-stage. - Jika project Anda tidak memiliki jaringan default, masukkan Jaringan dan Subnetwork. Untuk mengetahui informasi selengkapnya, lihat Menentukan jaringan dan subnetwork.
- Klik Jalankan tugas.
Melihat hasil penelusuran Anda
Untuk melihat data yang ditulis ke tabelrealtime, ikuti langkah-langkah berikut:
Buka halaman BigQuery.
Klik Tulis kueri baru. Tab Editor baru akan terbuka.
SELECT * FROM `PROJECT_ID.taxirides.realtime` WHERE `timestamp` > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) LIMIT 1000
Ganti
PROJECT_IDdengan project ID project tempat Anda membuat set data BigQuery. Mungkin perlu waktu hingga lima menit agar data mulai muncul di tabel Anda.Klik Run.
Kueri menampilkan baris yang telah ditambahkan ke tabel Anda dalam 24 jam terakhir. Anda juga dapat menjalankan kueri menggunakan SQL standar.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus Google Cloud project yang Anda buat untuk panduan memulai.- Di Konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource satu per satu
Jika Anda ingin mempertahankan Google Cloud project yang Anda gunakan dalam panduan memulai ini, hapus masing-masing resource:
- Buka halaman Tugas Dataflow.
Buka Tugas - Pilih tugas streaming Anda dari daftar tugas.
- Di navigasi, klik Berhenti.
- Dalam dialog Stop job, batalkan atau hentikan pipeline Anda, lalu klik Stop job.
- Buka halaman BigQuery.
Buka BigQuery - Di panel Explorer, luaskan project Anda.
- Di samping set data yang ingin Anda hapus, klik Lihat tindakan, lalu klik Buka.
- Di panel detail, klik Hapus set data, lalu ikuti petunjuknya.
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
- Klik kotak centang untuk bucket yang ingin Anda dihapus.
- Untuk menghapus bucket, klik Hapus, lalu ikuti petunjuk.