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

  1. Buka halaman Managed Service untuk Apache Kafka > Cluster.

    Buka Cluster

  2. Klik Buat.
  3. Di kotak Nama cluster, masukkan nama untuk cluster.
  4. Di daftar Region, pilih lokasi untuk cluster.
  5. Untuk Konfigurasi jaringan, konfigurasikan subnet tempat cluster dapat diakses:
    1. Untuk Project, pilih project Anda.
    2. Untuk Jaringan, pilih jaringan VPC.
    3. Untuk Subnet, pilih subnet.
    4. Klik Selesai.
  6. 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 Kafka
  • REGION: lokasi cluster
  • PROJECT_ID: project ID Anda
  • SUBNET_NAME: subnet tempat Anda ingin membuat cluster, misalnya default

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:

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:

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:

  1. Di Google Cloud konsol, buka halaman Managed Service untuk Apache Kafka > Cluster.

    Buka Cluster

  2. Klik nama cluster Anda, seperti test-cluster.

  3. Pilih tab Sumber.

  4. Di halaman Sumber, di kartu Buat Data Sintetis, klik Buat tugas Dataflow. Panel Buat Data akan terbuka.

  5. Di panel Buat Data, pilih topik dari daftar drop-down Topik Kafka, seperti test-topic. Jika Anda tidak memiliki topik, buat topik:

    1. Di daftar drop-down Topik Kafka, klik Buat topik. Panel Buat topik akan terbuka.
    2. Di kolom Nama topik, masukkan test-topic.
    3. Pertahankan nilai default untuk Jumlah partisi (3) dan Faktor replikasi (3).
    4. Klik Buat.
  6. 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.

  7. 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)
  8. Di panel Buat Data, klik Buat untuk meluncurkan tugas Dataflow.

    Notifikasi akan muncul yang menyatakan bahwa tugas Dataflow telah dibuat.

  9. 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:

  1. Di halaman Detail cluster untuk test-cluster, klik tab Pemantauan.

  2. 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:

  1. Hubungkan ke VM klien Anda menggunakan SSH. Jika Anda belum menyiapkan VM klien, lihat Membuat VM klien.

  2. Dapatkan alamat server bootstrap cluster Anda dari Google Cloud konsol dan tetapkan sebagai variabel lingkungan di VM klien Anda:

    1. Di Google Cloud konsol, buka halaman Managed Service untuk Apache Kafka > Cluster.

      Buka Cluster

    2. Klik nama cluster Anda, seperti test-cluster.

    3. Di halaman Detail cluster, klik Konfigurasi.

    4. Salin nilai yang tercantum di bagian URL Bootstrap.

  3. Di VM klien Anda, tetapkan variabel lingkungan:

    ```sh
    export BOOTSTRAP="BOOTSTRAP_URL"
    ```
    

    Ganti BOOTSTRAP_URL dengan alamat bootstrap yang Anda salin.

  4. Jalankan perintah kafka-console-consumer.sh untuk membaca pesan:

    kafka-console-consumer.sh \
     --bootstrap-server $BOOTSTRAP \
     --topic TOPIC_ID \
     --from-beginning \
     --consumer.config client.properties
    

    Ganti TOPIC_ID dengan nama topik, seperti test-topic.

    Konsol akan menampilkan data game sintetis streaming saat digunakan.

  5. Tekan Ctrl+C untuk berhenti menggunakan pesan.

Melihat di BigQuery

Untuk melakukan streaming data dari topik Kafka Anda ke BigQuery dan melihat data:

  1. 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-topic di 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"}
    ]
    
  2. 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_ID dengan 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=false
    
  3. Setelah konektor mulai melakukan streaming data, buka halaman BigQuery di Google Cloud konsol.

    Buka BigQuery

  4. Di panel Explorer, luaskan project ID Anda dan pilih set data Anda, test_dataset.

  5. Klik nama tabel, test-topic.

  6. 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
  7. 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 menggunakan SELECT *, 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

  1. Di Google Cloud konsol, buka halaman Tugas Dataflow.

    Buka Tugas Dataflow

  2. Klik nama tugas yang dibuat untuk topik Anda.

  3. Klik Stop.

  4. Pilih Cancel, lalu klik Stop Job.

  5. Opsional: Jika Anda tidak lagi memerlukan cluster Kafka, buka halaman Managed Service untuk Apache Kafka Clusters , pilih test-cluster, lalu klik Delete.

Langkah berikutnya