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
- Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.
- Klicken Sie auf Erstellen.
- Geben Sie im Feld Clustername einen Namen für den Cluster ein.
- Wählen Sie in der Liste Region einen Standort für den Cluster aus.
-
Konfigurieren Sie unter Netzwerkkonfiguration das Subnetz, in dem der Cluster zugänglich ist:
- Wählen Sie unter Projekt Ihr Projekt aus.
- Wählen Sie unter Netzwerk das VPC-Netzwerk aus.
- Wählen Sie unter Subnetz das Subnetz aus.
- Klicken Sie auf Fertig.
- 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-ClusterREGION: der Standort des ClustersPROJECT_ID: Ihre Projekt-IDSUBNET_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:
- Dataflow-Entwickler (
roles/dataflow.developer) - IAM-Administrator für Projekte (
roles/resourcemanager.projectIamAdmin)
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:
- Dataflow-Worker (
roles/dataflow.worker) - Managed Kafka Client (
roles/managedkafka.client)
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:
Rufen Sie in der Google Cloud Console die Seite Managed Service for Apache Kafka > Cluster auf.
Klicken Sie auf den Namen Ihres Clusters, z. B.
test-cluster.Wählen Sie den Tab Quellen aus.
Klicken Sie auf der Seite Quellen auf der Karte Synthetische Daten generieren auf Dataflow-Job erstellen. Der Bereich Daten erzeugen wird geöffnet.
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:- Klicken Sie in der Drop-down-Liste Kafka-Thema auf Thema erstellen. Der Bereich Thema erstellen wird geöffnet.
- Geben Sie im Feld Themenname
test-topicein. - Behalten Sie die Standardwerte für Anzahl der Partitionen (
3) und Replikationsfaktor (3) bei. - Klicken Sie auf Erstellen.
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.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)
- Dataflow-Worker (
Klicken Sie im Bereich Daten erzeugen auf Erstellen, um den Dataflow-Job zu starten.
Sie erhalten eine Benachrichtigung, dass der Dataflow-Job erstellt wurde.
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:
Klicken Sie auf der Seite Clusterdetails für
test-clusterauf den Tab Monitoring.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:
Stellen Sie eine SSH-Verbindung zu Ihrer Client-VM her. Wenn Sie keine Client-VM eingerichtet haben, lesen Sie den Abschnitt Client-VM erstellen.
Rufen Sie die Bootstrap-Serveradresse Ihres Clusters in der Google Cloud Console ab und legen Sie sie als Umgebungsvariable auf Ihrer Client-VM fest:
Rufen Sie in der Google Cloud Console die Seite Managed Service for Apache Kafka > Cluster auf.
Klicken Sie auf den Namen Ihres Clusters, z. B.
test-cluster.Klicken Sie auf der Seite Clusterdetails auf Konfigurationen.
Kopieren Sie den Wert unter Bootstrap-URL.
Legen Sie auf Ihrer Client-VM die Umgebungsvariable fest:
```sh export BOOTSTRAP="BOOTSTRAP_URL" ```Ersetzen Sie
BOOTSTRAP_URLdurch die kopierte Bootstrap-Adresse.Führen Sie den Befehl
kafka-console-consumer.shaus, um Nachrichten zu lesen:kafka-console-consumer.sh \ --bootstrap-server $BOOTSTRAP \ --topic TOPIC_ID \ --from-beginning \ --consumer.config client.propertiesErsetzen 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.
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:
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-topicund 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"} ]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_IDdurch 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=falseNachdem der Connector mit dem Streamen von Daten begonnen hat, rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Maximieren Sie im Bereich Explorer Ihre Projekt-ID und wählen Sie Ihr Dataset
test_datasetaus.Klicken Sie auf den Tabellennamen
test-topic.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
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 mitSELECT *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:
Rufen Sie in der Google Cloud Console die Seite Dataflow-Jobs auf.
Klicken Sie auf den Namen des Jobs, der für Ihr Thema erstellt wurde.
Klicken Sie auf Beenden.
Wählen Sie Abbrechen aus und klicken Sie dann auf Job anhalten.
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-clusteraus und klicken Sie auf Löschen.