Synthetische Daten für einen Managed Service for Apache Kafka-Cluster generieren

Hier erfahren Sie, wie Sie mit der Google Cloud Console synthetische Testdaten für einen Google Cloud Managed Service for Apache Kafka Cluster generieren.

In dieser Anleitung wird die Dataflow-Vorlage Streaming Data Generator verwendet, um automatisch Beispieldaten zur Telemetrie von Spielen in einem Managed Service for Apache Kafka-Thema zu veröffentlichen. Der Streaming Data Generator ist eine Dataflow-Vorlage, die synthetische Testdatensätze basierend auf einem angegebenen Schema mit einer konfigurierbaren Rate generiert. Durch das Generieren synthetischer Daten können Sie die Clusteraktivität beobachten, die Lastverarbeitung testen und Überwachungsmesswerte prüfen, ohne einen lokalen Kafka-Client zu installieren oder benutzerdefinierten Producer-Code zu schreiben. Weitere Informationen zur Vorlage finden Sie unter Dataflow-Vorlage „Streaming Data Generator“.

Hinweis

Bevor Sie mit dieser Anleitung beginnen, erstellen Sie einen neuen Managed Service for Apache Kafka-Cluster. Wenn Sie bereits einen Cluster haben, können Sie diesen Schritt überspringen. Informationen zu den erforderlichen Rollen und Berechtigungen zum Erstellen eines Clusters finden Sie unter Cluster erstellen und ansehen. Wenn Sie dieser Anleitung folgen, führen Sie nur den Abschnitt Cluster erstellen aus, bevor Sie zu dieser Anleitung zurückkehren.

Cluster erstellen

Console

  1. Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf Erstellen.
  3. Geben Sie im Feld Clustername einen Namen für den Cluster ein.
  4. Wählen Sie in der Liste Region einen Standort für den Cluster aus.
  5. Konfigurieren Sie unter Netzwerkkonfiguration das Subnetz, in dem der Cluster zugänglich ist:
    1. Wählen Sie unter Projekt Ihr Projekt aus.
    2. Wählen Sie unter Netzwerk das VPC-Netzwerk aus.
    3. Wählen Sie unter Subnetz das Subnetz aus.
    4. Klicken Sie auf Fertig.
  6. Klicken Sie auf Erstellen.

Nachdem Sie auf Erstellen geklickt haben, ist der Clusterstatus Creating. Wenn der Cluster bereit ist, lautet der Status Active.

gcloud

Führen Sie den managed-kafka clusters create Befehl aus, um einen Kafka-Cluster zu erstellen.

gcloud managed-kafka clusters create KAFKA_CLUSTER \
--location=REGION \
--cpu=3 \
--memory=3GiB \
--subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
--async

Ersetzen Sie Folgendes:

  • KAFKA_CLUSTER: ein Name für den Kafka-Cluster
  • REGION: der Standort des Clusters
  • PROJECT_ID: Ihre Projekt-ID
  • SUBNET_NAME: das Subnetz, in dem Sie den Cluster erstellen möchten, z. B. default

Informationen zu unterstützten Standorten finden Sie unter Managed Service for Apache Kafka-Standorte.

Der Befehl wird asynchron ausgeführt und gibt eine Vorgangs-ID zurück:

Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.

Verwenden Sie den gcloud managed-kafka operations describe Befehl, um den Fortschritt des Erstellungsvorgangs zu verfolgen:

gcloud managed-kafka operations describe OPERATION_ID \
  --location=REGION

Wenn der Cluster bereit ist, enthält die Ausgabe dieses Befehls den Eintrag state: ACTIVE. Weitere Informationen finden Sie unter Erstellungsvorgang des Clusters beobachten.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Generieren synthetischer Daten für einen Cluster benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Generieren synthetischer Daten für einen Cluster erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Generieren synthetischer Daten für einen Cluster erforderlich:

  • dataflow.jobs.create
  • dataflow.jobs.get
  • managedkafka.clusters.get
  • managedkafka.topics.get
  • managedkafka.topics.create
  • managedkafka.topics.publish
  • resourcemanager.projects.setIamPolicy

Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto die folgenden IAM-Rollen für das Projekt zuzuweisen, damit das Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen zum Ausführen des Dataflow-Jobs hat:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Ihr Administrator kann dem Compute Engine-Standarddienstkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen zuweisen.

Wenn Sie die Berechtigungen zum Zuweisen von IAM-Rollen haben, werden Sie in der Google Cloud Console aufgefordert, die erforderlichen Rollen während des Generierungsprozesses für synthetische Daten zuzuweisen. Wenn Sie keine Berechtigung zum Zuweisen von Rollen haben, wird in der Console eine Meldung angezeigt, in der Sie aufgefordert werden, einen Administrator zu bitten, die erforderlichen Berechtigungen zu gewähren.

Synthetische Daten generieren

So erstellen und starten Sie den Dataflow-Job, der synthetische Daten für Ihr Kafka-Thema generiert:

  1. Rufen Sie in der Google Cloud Console die Seite Managed Service for Apache Kafka > Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen Ihres Clusters, z. B. test-cluster.

  3. Wählen Sie den Tab Quellen aus.

  4. Klicken Sie auf der Seite Quellen auf der Karte Synthetische Daten generieren auf Dataflow-Job erstellen. Der Bereich Daten erzeugen wird geöffnet.

  5. Wählen Sie im Bereich Daten erzeugen in der Drop-down-Liste Kafka-Thema ein Thema aus, z. B. test-topic. Wenn Sie kein Thema haben, erstellen Sie eines:

    1. Klicken Sie in der Drop-down-Liste Kafka-Thema auf Thema erstellen. Der Bereich Thema erstellen wird geöffnet.
    2. Geben Sie im Feld Themenname test-topic ein.
    3. Behalten Sie die Standardwerte für Anzahl der Partitionen (3) und Replikationsfaktor (3) bei.
    4. Klicken Sie auf Erstellen.
  6. Geben Sie im Feld Ausgaberate (QPS) die Rate für Abfragen pro Sekunde ein, die der Generator erzeugen soll, z. B. 100. So können Sie testen, wie Ihr Cluster mit verschiedenen Lasten umgeht.

  7. Wenn eine Warnung angezeigt wird, dass Ihrem Dataflow-Dienstkonto die erforderlichen Berechtigungen fehlen, klicken Sie auf Gewähren , um die folgenden Rollen zuzuweisen:

    • Dataflow-Worker (roles/dataflow.worker)
    • Managed Kafka Client (roles/managedkafka.client)
  8. Klicken Sie im Bereich Daten erzeugen auf Erstellen, um den Dataflow-Job zu starten.

    Sie erhalten eine Benachrichtigung, dass der Dataflow-Job erstellt wurde.

  9. Klicken Sie in der Benachrichtigung auf Job ansehen , um die Seite Dataflow-Jobdetails zu öffnen. Dort können Sie das Jobdiagramm, den Status und die Ausführungsmesswerte beobachten.

Clustermesswerte ansehen

Nachdem der Dataflow-Job gestartet wurde, beobachten Sie, wie die synthetischen Daten in Ihren Cluster fließen:

  1. Klicken Sie auf der Seite Clusterdetails für test-cluster auf den Tab Monitoring.

  2. Prüfen Sie die Diagramme Byteraten und Top-5-Themen nach Produktionsdurchsatz , um zu bestätigen, dass Daten aktiv in Ihr Thema produziert werden.

Nachrichten ansehen

Prüfen Sie mit einer der folgenden Methoden, ob synthetische Nachrichten in Ihrem Thema veröffentlicht werden.

In Kafka-Befehlszeilentools ansehen

So nutzen Sie Nachrichten direkt aus Ihrem Cluster mit Kafka-CLI-Tools auf einer Client-VM:

  1. Stellen Sie eine SSH-Verbindung zu Ihrer Client-VM her. Wenn Sie keine Client-VM eingerichtet haben, lesen Sie den Abschnitt Client-VM erstellen.

  2. Rufen Sie die Bootstrap-Serveradresse Ihres Clusters in der Google Cloud Console ab und legen Sie sie als Umgebungsvariable auf Ihrer Client-VM fest:

    1. Rufen Sie in der Google Cloud Console die Seite Managed Service for Apache Kafka > Cluster auf.

      Zu den Clustern

    2. Klicken Sie auf den Namen Ihres Clusters, z. B. test-cluster.

    3. Klicken Sie auf der Seite Clusterdetails auf Konfigurationen.

    4. Kopieren Sie den Wert unter Bootstrap-URL.

  3. Legen Sie auf Ihrer Client-VM die Umgebungsvariable fest:

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

    Ersetzen Sie BOOTSTRAP_URL durch die kopierte Bootstrap-Adresse.

  4. Führen Sie den Befehl kafka-console-consumer.sh aus, um Nachrichten zu lesen:

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

    Ersetzen Sie TOPIC_ID durch den Namen des Themas, z. B. test-topic.

    In der Console werden die gestreamten synthetischen Spieldaten angezeigt, sobald sie genutzt werden.

  5. Drücken Sie Strg+C, um die Nutzung von Nachrichten zu beenden.

In BigQuery ansehen

So streamen Sie Daten aus Ihrem Kafka-Thema in BigQuery und sehen sich die Datensätze an:

  1. Da die synthetischen Daten unformatierter JSON-Code sind, müssen Sie die Zieltabelle in BigQuery manuell erstellen, bevor Sie den Connector erstellen. Informationen zum Erstellen einer Tabelle finden Sie unter Leere Tabelle mit einer Schemadefinition erstellen. Erstellen Sie in Ihrem Dataset eine Tabelle mit dem Namen test-topic und dem folgenden Schema:

    [
      {"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. Erstellen Sie in einem Connect-Cluster einen BigQuery-Senken-Connector , um Nachrichten aus Ihrem Thema in Ihre BigQuery-Tabelle zu streamen. Verwenden Sie beim Konfigurieren des Connectors die folgenden Beispielattribute und ersetzen Sie PROJECT_ID durch Ihre Projekt-ID:

    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. Nachdem der Connector mit dem Streamen von Daten begonnen hat, rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    Zu BigQuery

  4. Maximieren Sie im Bereich Explorer Ihre Projekt-ID und wählen Sie Ihr Dataset test_dataset aus.

  5. Klicken Sie auf den Tabellennamen test-topic.

  6. Klicken Sie auf den Tab Vorschau , um die gestreamten synthetischen Datensätze anzusehen. Alternativ können Sie auf Neue Abfrage erstellen klicken und die folgende SQL-Abfrage ausführen:

    SELECT * FROM `PROJECT_ID.DATASET_ID.TABLE_ID` LIMIT 10;
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID
    • DATASET_ID: Ihre Dataset-ID, z. B. test_dataset
    • TABLE_ID: Ihre Tabellen-ID, z. B. test-topic
  7. Klicken Sie auf Ausführen , um die Beispieldatensätze im Bereich Abfrageergebnisse anzusehen.

    Hinweis:Verwenden Sie keine SELECT COUNT(*)-Abfrage, um Ihre Datensätze zu prüfen. Da der Connector die BigQuery Streaming API verwendet, werden Daten zuerst in einen Streamingpuffer geschrieben. Die Daten sind zwar sofort mit SELECT * sichtbar, es kann aber einige Minuten dauern, bis die Zeilenanzahl aktualisiert wird.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:

  1. Rufen Sie in der Google Cloud Console die Seite Dataflow-Jobs auf.

    Zu den Dataflow-Jobs

  2. Klicken Sie auf den Namen des Jobs, der für Ihr Thema erstellt wurde.

  3. Klicken Sie auf Beenden.

  4. Wählen Sie Abbrechen aus und klicken Sie dann auf Job anhalten.

  5. Optional: Wenn Sie den Kafka-Cluster nicht mehr benötigen, rufen Sie die Seite Managed Service for Apache Kafka-Cluster auf, wählen Sie test-cluster aus und klicken Sie auf Löschen.

Nächste Schritte