Generare dati sintetici per un cluster Managed Service per Apache Kafka
Scopri come generare dati di test sintetici per un cluster Google Cloud Managed Service per Apache Kafka utilizzando la Google Cloud console.
Questa guida utilizza il modello Dataflow Streaming Data Generator per pubblicare automaticamente dati di telemetria di esempio del gioco in un argomento Managed Service per Apache Kafka. Streaming Data Generator è un modello Dataflow che genera record di test sintetici in base a uno schema specificato a una frequenza configurabile. La generazione di dati sintetici consente di osservare l'attività del cluster, testare la gestione del carico e verificare le metriche di monitoraggio senza installare un client Kafka locale o scrivere codice di produzione personalizzato. Per ulteriori informazioni sul modello, consulta Modello Dataflow Streaming Data Generator.
Prima di iniziare
Prima di iniziare questo tutorial, crea un nuovo cluster Managed Service per Apache Kafka. Se hai già un cluster, puoi saltare questo passaggio. Per informazioni sui ruoli e sulle autorizzazioni richiesti per creare un cluster, consulta Creare e visualizzare un cluster. Se segui questa guida, completa solo la sezione Crea un cluster prima di tornare a questa guida.
Come creare un cluster
Console
- Vai alla pagina Managed Service per Apache Kafka > Cluster.
- Fai clic su Crea.
- Nella casella Nome cluster, inserisci un nome per il cluster.
- Nell'elenco Regione, seleziona una località per il cluster.
-
Per Configurazione di rete, configura la subnet in cui è accessibile il cluster:
- In Progetto, seleziona il tuo progetto.
- In Rete, seleziona la rete VPC.
- In Subnet, seleziona la subnet.
- Fai clic su Fine.
- Fai clic su Crea.
Dopo aver fatto clic su Crea, lo stato del cluster è Creating. Quando il cluster
è pronto, lo stato è Active.
gcloud
Per creare un cluster Kafka, esegui il
managed-kafka clusters
create comando.
gcloud managed-kafka clusters create KAFKA_CLUSTER \ --location=REGION \ --cpu=3 \ --memory=3GiB \ --subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --async
Sostituisci quanto segue:
KAFKA_CLUSTER: un nome per il cluster KafkaREGION: la località del clusterPROJECT_ID: il tuo ID progettoSUBNET_NAME: la subnet in cui vuoi creare il cluster, ad esempiodefault
Per informazioni sulle località supportate, consulta Località di Managed Service per Apache Kafka.
Il comando viene eseguito in modo asincrono e restituisce un ID operazione:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Per monitorare l'avanzamento dell'operazione di creazione, utilizza il
gcloud managed-kafka
operations describe comando:
gcloud managed-kafka operations describe OPERATION_ID \ --location=REGION
Quando il cluster è pronto, l'output di questo comando include la voce state:
ACTIVE. Per ulteriori informazioni, consulta
Monitorare l'operazione di creazione del cluster.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per generare dati sintetici per un cluster, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto:
- Sviluppatore Dataflow (
roles/dataflow.developer) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per generare dati sintetici per un cluster. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per generare dati sintetici per un cluster sono necessarie le seguenti autorizzazioni:
-
dataflow.jobs.create -
dataflow.jobs.get -
managedkafka.clusters.get -
managedkafka.topics.get -
managedkafka.topics.create -
managedkafka.topics.publish -
resourcemanager.projects.setIamPolicy
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per assicurarti che il service account predefinito di Compute Engine disponga delle autorizzazioni necessarie per eseguire il job Dataflow, chiedi all'amministratore di concedere i seguenti ruoli IAM al service account predefinito di Compute Engine sul progetto:
- Dataflow Worker (
roles/dataflow.worker) - Managed Kafka Client (
roles/managedkafka.client)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere al service account predefinito di Compute Engine le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Se disponi delle autorizzazioni per concedere i ruoli IAM, la Google Cloud console ti chiede di concedere i ruoli richiesti durante il processo di generazione dei dati sintetici. Se non hai l'autorizzazione per concedere i ruoli, la console visualizza un messaggio che ti chiede di richiedere a un amministratore di concedere le autorizzazioni richieste.
Generare dati sintetici
Per creare e avviare il job Dataflow che genera dati sintetici per l'argomento Kafka:
Nella Google Cloud console, vai alla pagina Managed Service per Apache Kafka > Cluster.
Fai clic sul nome del cluster, ad esempio
test-cluster.Seleziona la scheda Origini.
Nella pagina Origini, nella scheda Genera dati sintetici, fai clic su Crea un job Dataflow. Viene visualizzato il riquadro Produci dati.
Nel riquadro Produci dati, seleziona un argomento dall'elenco a discesa Argomento Kafka, ad esempio
test-topic. Se non hai un argomento, creane uno:- Nell'elenco a discesa Argomento Kafka, fai clic su Crea argomento. Viene visualizzato il riquadro Crea argomento.
- Nel campo Nome argomento, inserisci
test-topic. - Mantieni i valori predefiniti per Conteggio partizioni (
3) e Fattore di replica (3). - Fai clic su Crea.
Nel campo Frequenza di output (QPS), inserisci la frequenza di query al secondo che vuoi che il generatore produca, ad esempio
100. In questo modo puoi testare il modo in cui il cluster gestisce carichi diversi.Se viene visualizzato un avviso che indica che il service account Dataflow non dispone delle autorizzazioni necessarie, fai clic su Concedi per assegnare i seguenti ruoli:
- Dataflow Worker (
roles/dataflow.worker) - Managed Kafka Client (
roles/managedkafka.client)
- Dataflow Worker (
Nel riquadro Produci dati, fai clic su Crea per avviare il job Dataflow.
Viene visualizzata una notifica che indica che il job Dataflow è stato creato.
Nella notifica, fai clic su Visualizza job per aprire la pagina Dettagli job Dataflow , dove puoi osservare il grafico del job, lo stato e le metriche di esecuzione.
Visualizzare le metriche del cluster
Dopo l'avvio del job Dataflow, osserva i dati sintetici che vengono inseriti nel cluster:
Nella pagina Dettagli cluster per
test-cluster, fai clic sulla scheda Monitoraggio.Esamina i grafici Frequenze di byte e Primi 5 argomenti in base al throughput di produzione per verificare che i dati vengano prodotti attivamente nell'argomento.
Visualizzare i messaggi
Verifica che i messaggi sintetici vengano pubblicati nell'argomento utilizzando uno dei seguenti metodi.
Visualizzare negli strumenti a riga di comando di Kafka
Per utilizzare i messaggi direttamente dal cluster utilizzando gli strumenti CLI di Kafka su una VM client:
Connettiti alla VM client utilizzando SSH. Se non hai configurato una VM client, consulta Creare una VM client.
Ottieni l'indirizzo del server di bootstrap del cluster dalla Google Cloud console e impostalo come variabile di ambiente nella VM client:
Nella Google Cloud console, vai alla pagina Managed Service per Apache Kafka > Cluster.
Fai clic sul nome del cluster, ad esempio
test-cluster.Nella pagina Dettagli cluster, fai clic su Configurazioni.
Copia il valore elencato in URL di bootstrap.
Nella VM client, imposta la variabile di ambiente:
```sh export BOOTSTRAP="BOOTSTRAP_URL" ```Sostituisci
BOOTSTRAP_URLcon l'indirizzo di bootstrap copiato.Esegui il comando
kafka-console-consumer.shper leggere i messaggi:kafka-console-consumer.sh \ --bootstrap-server $BOOTSTRAP \ --topic TOPIC_ID \ --from-beginning \ --consumer.config client.propertiesSostituisci TOPIC_ID con il nome dell'argomento, ad esempio
test-topic.La console mostra i record di dati di gioco sintetici in streaming man mano che vengono utilizzati.
Premi Ctrl+C per interrompere l'utilizzo dei messaggi.
Visualizzare in BigQuery
Per trasmettere i dati dall'argomento Kafka a BigQuery e visualizzare i record:
Poiché i dati sintetici sono JSON non elaborati, devi creare manualmente la tabella di destinazione in BigQuery prima di creare il connettore. Per informazioni su come creare una tabella, consulta Creare una tabella vuota con una definizione dello schema. Crea una tabella denominata
test-topicnel set di dati con il seguente 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"} ]Crea un connettore di sink BigQuery in un cluster Connect per trasmettere i messaggi dall'argomento alla tabella BigQuery. Quando configuri il connettore, utilizza le seguenti proprietà di esempio, sostituendo
PROJECT_IDcon il tuo ID progetto: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=falseDopo che il connettore ha iniziato a trasmettere i dati, vai alla pagina BigQuery nella Google Cloud console.
Nel riquadro Spazio di esplorazione, espandi l'ID progetto e seleziona il set di dati,
test_dataset.Fai clic sul nome della tabella,
test-topic.Fai clic sulla scheda Anteprima per visualizzare i record sintetici in streaming. In alternativa, fai clic su Crea una nuova query ed esegui la seguente query SQL:
SELECT * FROM `PROJECT_ID.DATASET_ID.TABLE_ID` LIMIT 10;Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- DATASET_ID: l'ID del set di dati, ad esempio
test_dataset - TABLE_ID: l'ID della tabella, ad esempio
test-topic
Fai clic su Esegui per visualizzare i record di esempio nel riquadro Risultati query.
Nota:non utilizzare una query
SELECT COUNT(*)per verificare i record. Poiché il connettore utilizza l'API BigQuery Streaming, i dati vengono inizialmente scritti in un buffer di streaming. Sebbene i dati siano immediatamente visibili utilizzandoSELECT *, l'aggiornamento dei conteggi delle righe può richiedere diversi minuti.
Libera spazio
Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
Nella Google Cloud console, vai alla pagina Job Dataflow.
Fai clic sul nome del job creato per l'argomento.
Fai clic su Arresta.
Seleziona Annulla, quindi fai clic su Arresta job.
(Facoltativo) Se non hai più bisogno del cluster Kafka, vai alla pagina Cluster Managed Service per Apache Kafka , seleziona
test-clustere fai clic su Elimina.