Membuat data sintetis untuk cluster Managed Service untuk Apache Kafka
Pelajari cara membuat data pengujian sintetis untuk cluster Google Cloud Managed Service untuk Apache Kafka menggunakan Google Cloud konsol.
Panduan ini menggunakan template Dataflow Streaming Data Generator untuk otomatis memublikasikan data telemetri game contoh ke topik Managed Service untuk Apache Kafka. Streaming Data Generator adalah template Dataflow yang membuat data pengujian sintetis berdasarkan skema yang ditentukan pada kecepatan yang dapat dikonfigurasi. Dengan membuat data sintetis, Anda dapat mengamati aktivitas cluster, menguji penanganan beban, dan memverifikasi metrik pemantauan tanpa menginstal klien Kafka lokal atau menulis kode produsen kustom. Untuk mengetahui informasi selengkapnya tentang template, lihat template Dataflow Streaming Data Generator.
Sebelum memulai
Sebelum memulai tutorial ini, buat cluster Managed Service untuk Apache Kafka baru. Jika sudah memiliki cluster, Anda dapat melewati langkah ini. Untuk mengetahui informasi tentang peran dan izin yang diperlukan untuk membuat cluster, lihat Membuat dan melihat cluster. Jika Anda mengikuti panduan tersebut, selesaikan hanya bagian Membuat cluster sebelum kembali ke panduan ini.
Cara membuat cluster
Konsol
- Buka halaman Managed Service untuk Apache Kafka > Cluster.
- Klik Buat.
- Di kotak Nama cluster, masukkan nama untuk cluster.
- Di daftar Region, pilih lokasi untuk cluster.
-
Untuk Konfigurasi jaringan, konfigurasikan subnet tempat cluster dapat diakses:
- Untuk Project, pilih project Anda.
- Untuk Jaringan, pilih jaringan VPC.
- Untuk Subnet, pilih subnet.
- Klik Selesai.
- Klik Buat.
Setelah Anda mengklik Buat, status cluster adalah Creating. Saat cluster
siap, statusnya adalah Active.
gcloud
Untuk membuat cluster Kafka, jalankan perintah
managed-kafka clusters
create.
gcloud managed-kafka clusters create KAFKA_CLUSTER \ --location=REGION \ --cpu=3 \ --memory=3GiB \ --subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --async
Ganti kode berikut:
KAFKA_CLUSTER: nama untuk cluster KafkaREGION: lokasi clusterPROJECT_ID: project ID AndaSUBNET_NAME: subnet tempat Anda ingin membuat cluster, misalnyadefault
Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi Managed Service untuk Apache Kafka.
Perintah ini berjalan secara asinkron dan menampilkan ID operasi:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Untuk melacak progres operasi pembuatan, gunakan perintah
gcloud managed-kafka
operations describe:
gcloud managed-kafka operations describe OPERATION_ID \ --location=REGION
Saat cluster siap, output dari perintah ini akan menyertakan entri state:
ACTIVE. Untuk mengetahui informasi selengkapnya, lihat
Memantau operasi pembuatan cluster.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat data sintetis untuk cluster, minta administrator Anda untuk memberi Anda peran IAM berikut pada project:
- Dataflow Developer (
roles/dataflow.developer) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat data sintetis untuk cluster. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat data sintetis untuk cluster:
-
dataflow.jobs.create -
dataflow.jobs.get -
managedkafka.clusters.get -
managedkafka.topics.get -
managedkafka.topics.create -
managedkafka.topics.publish -
resourcemanager.projects.setIamPolicy
Anda mungkin juga bisa mendapatkan izin ini dengan 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:
- Dataflow Worker (
roles/dataflow.worker) - Managed Kafka Client (
roles/managedkafka.client)
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.
Jika Anda memiliki izin untuk memberikan peran IAM, konsol akan meminta Anda untuk memberikan peran yang diperlukan selama proses pembuatan data sintetis.Google Cloud Jika Anda tidak memiliki izin untuk memberikan peran, konsol akan menampilkan pesan yang meminta Anda untuk meminta administrator memberikan izin yang diperlukan.
Membuat data sintetis
Untuk membuat dan meluncurkan tugas Dataflow yang membuat data sintetis untuk topik Kafka Anda:
Di Google Cloud konsol, buka halaman Managed Service untuk Apache Kafka > Cluster.
Klik nama cluster Anda, seperti
test-cluster.Pilih tab Sumber.
Di halaman Sumber, di kartu Buat Data Sintetis, klik Buat tugas Dataflow. Panel Buat Data akan terbuka.
Di panel Buat Data, pilih topik dari daftar drop-down Topik Kafka, seperti
test-topic. Jika Anda tidak memiliki topik, buat topik:- Di daftar drop-down Topik Kafka, klik Buat topik. Panel Buat topik akan terbuka.
- Di kolom Nama topik, masukkan
test-topic. - Pertahankan nilai default untuk Jumlah partisi (
3) dan Faktor replikasi (3). - Klik Buat.
Di kolom Kecepatan output (QPS), masukkan kecepatan kueri per detik yang Anda inginkan untuk dibuat oleh generator, seperti
100. Hal ini memungkinkan Anda menguji cara cluster menangani beban yang berbeda.Jika peringatan muncul yang menyatakan bahwa akun layanan Dataflow Anda tidak memiliki izin yang diperlukan, klik Berikan untuk menetapkan peran berikut:
- Dataflow Worker (
roles/dataflow.worker) - Managed Kafka Client (
roles/managedkafka.client)
- Dataflow Worker (
Di panel Buat Data, klik Buat untuk meluncurkan tugas Dataflow.
Notifikasi akan muncul yang menyatakan bahwa tugas Dataflow telah dibuat.
Di notifikasi, klik Lihat tugas untuk membuka halaman Detail Tugas Dataflow, tempat Anda dapat mengamati grafik tugas, status, dan metrik eksekusi.
Melihat metrik cluster
Setelah tugas Dataflow dimulai, amati data sintetis yang mengalir ke cluster Anda:
Di halaman Detail cluster untuk
test-cluster, klik tab Pemantauan.Tinjau diagram Kecepatan byte dan 5 topik teratas menurut throughput produksi untuk memverifikasi bahwa data sedang aktif diproduksi ke topik Anda.
Melihat pesan
Verifikasi bahwa pesan sintetis dipublikasikan ke topik Anda menggunakan salah satu metode berikut.
Melihat di alat command line Kafka
Untuk menggunakan pesan langsung dari cluster Anda menggunakan alat Kafka CLI di VM klien:
Hubungkan ke VM klien Anda menggunakan SSH. Jika Anda belum menyiapkan VM klien, lihat Membuat VM klien.
Dapatkan alamat server bootstrap cluster Anda dari Google Cloud konsol dan tetapkan sebagai variabel lingkungan di VM klien Anda:
Di Google Cloud konsol, buka halaman Managed Service untuk Apache Kafka > Cluster.
Klik nama cluster Anda, seperti
test-cluster.Di halaman Detail cluster, klik Konfigurasi.
Salin nilai yang tercantum di bagian URL Bootstrap.
Di VM klien Anda, tetapkan variabel lingkungan:
```sh export BOOTSTRAP="BOOTSTRAP_URL" ```Ganti
BOOTSTRAP_URLdengan alamat bootstrap yang Anda salin.Jalankan perintah
kafka-console-consumer.shuntuk membaca pesan:kafka-console-consumer.sh \ --bootstrap-server $BOOTSTRAP \ --topic TOPIC_ID \ --from-beginning \ --consumer.config client.propertiesGanti TOPIC_ID dengan nama topik, seperti
test-topic.Konsol akan menampilkan data game sintetis streaming saat digunakan.
Tekan Ctrl+C untuk berhenti menggunakan pesan.
Melihat di BigQuery
Untuk melakukan streaming data dari topik Kafka Anda ke BigQuery dan melihat data:
Karena data sintetis adalah JSON mentah, Anda harus membuat tabel tujuan secara manual di BigQuery sebelum membuat konektor. Untuk mengetahui informasi tentang cara membuat tabel, lihat Membuat tabel kosong dengan definisi skema. Buat tabel bernama
test-topicdi set data Anda dengan skema berikut:[ {"name": "eventId", "type": "STRING"}, {"name": "eventTimestamp", "type": "INTEGER"}, {"name": "ipv4", "type": "STRING"}, {"name": "ipv6", "type": "STRING"}, {"name": "country", "type": "STRING"}, {"name": "username", "type": "STRING"}, {"name": "quest", "type": "STRING"}, {"name": "score", "type": "INTEGER"}, {"name": "completed", "type": "BOOLEAN"} ]Buat konektor BigQuery Sink di cluster Connect untuk melakukan streaming pesan dari topik Anda ke tabel BigQuery Anda. Saat mengonfigurasi konektor, gunakan properti contoh berikut, dengan mengganti
PROJECT_IDdengan project ID Anda:bigQueryPartitionDecorator=false connector.class=com.wepay.kafka.connect.bigquery.BigQuerySinkConnector defaultDataset=test_dataset key.converter=org.apache.kafka.connect.storage.StringConverter project=PROJECT_ID tasks.max=3 topics=test-topic value.converter=org.apache.kafka.connect.json.JsonConverter value.converter.schemas.enable=falseSetelah konektor mulai melakukan streaming data, buka halaman BigQuery di Google Cloud konsol.
Di panel Explorer, luaskan project ID Anda dan pilih set data Anda,
test_dataset.Klik nama tabel,
test-topic.Klik tab Pratinjau untuk melihat data sintetis yang di-streaming. Atau, klik Buat kueri baru dan jalankan kueri SQL berikut:
SELECT * FROM `PROJECT_ID.DATASET_ID.TABLE_ID` LIMIT 10;Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET_ID: ID set data Anda, seperti
test_dataset - TABLE_ID: ID tabel Anda, seperti
test-topic
Klik Jalankan untuk melihat data contoh di panel Hasil kueri.
Catatan: Jangan gunakan kueri
SELECT COUNT(*)untuk memverifikasi data Anda. Karena konektor menggunakan BigQuery Streaming API, data awalnya ditulis ke buffer streaming. Meskipun data langsung terlihat menggunakanSELECT *, penghitungan baris dapat memerlukan waktu beberapa menit untuk diperbarui.
Pembersihan
Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Google Cloud
Di Google Cloud konsol, buka halaman Tugas Dataflow.
Klik nama tugas yang dibuat untuk topik Anda.
Klik Stop.
Pilih Cancel, lalu klik Stop Job.
Opsional: Jika Anda tidak lagi memerlukan cluster Kafka, buka halaman Managed Service untuk Apache Kafka Clusters , pilih
test-cluster, lalu klik Delete.