Questo tutorial mostra come utilizzare il modello Bigtable modifiche in tempo reale to Pub/Sub, incluso come configurare un argomento e il modello. Se vuoi, puoi creare una funzione Cloud Run nel linguaggio di programmazione che preferisci, che viene attivata dal flusso di eventi.
Questo tutorial è rivolto a utenti tecnici che hanno familiarità con Bigtable, la scrittura di codice e i servizi di streaming di eventi.
Crea un argomento Pub/Sub
Nella console Google Cloud , vai alla pagina Argomenti di Pub/Sub.
Fai clic su Crea argomento.
Imposta l'ID su
bigtable-change-stream-topic
.Seleziona Utilizza uno schema.
Nel menu a discesa Seleziona uno schema Pub/Sub, fai clic su Crea nuovo schema. Si apre una nuova scheda in cui definire lo schema.
- Imposta l'ID schema su
bigtable-change-stream-schema
. - Imposta il tipo di schema su Avro.
- Incolla il seguente codice come definizione dello schema. Per saperne di più sullo schema, consulta la pagina della documentazione del modello.
{ "name" : "ChangelogEntryMessage", "type" : "record", "namespace" : "com.google.cloud.teleport.bigtable", "fields" : [ { "name" : "rowKey", "type" : "bytes"}, { "name" : "modType", "type" : { "name": "ModType", "type": "enum", "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]} }, { "name": "isGC", "type": "boolean" }, { "name": "tieBreaker", "type": "int"}, { "name": "columnFamily", "type": "string"}, { "name": "commitTimestamp", "type" : "long"}, { "name" : "sourceInstance", "type" : "string"}, { "name" : "sourceCluster", "type" : "string"}, { "name" : "sourceTable", "type" : "string"}, { "name": "column", "type" : ["null", "bytes"]}, { "name": "timestamp", "type" : ["null", "long"]}, { "name": "timestampFrom", "type" : ["null", "long"]}, { "name": "timestampTo", "type" : ["null", "long"]}, { "name" : "value", "type" : ["null", "bytes"]} ] }
- Fai clic su Crea per creare lo schema.
- Imposta l'ID schema su
Chiudi la scheda Crea schema, aggiorna l'elenco degli schemi e seleziona lo schema che hai appena definito.
Fai clic su Crea per creare l'argomento.
(Facoltativo) Crea una funzione Cloud Run
Potresti voler elaborare il flusso Pub/Sub con una funzione Cloud Run.
- Nella pagina Dettagli dell'argomento
bigtable-change-stream-topic
, fai clic su Attiva funzione Cloud . - Nel campo Nome funzione, inserisci il nome
bt-ps-tutorial-function
. - Nella sezione Codice sorgente, fai clic sul menu a discesa Runtime e poi
seleziona il runtime e il linguaggio di programmazione che preferisci. Viene generato un
hello world
che stampa il flusso di modifiche man mano che viene ricevuto. Consulta la documentazione per scoprire di più sulla scrittura di funzioni Cloud Run. - Utilizza i valori predefiniti per tutti gli altri campi.
- Fai clic su Esegui il deployment della funzione.
Crea una tabella con un flusso di modifiche abilitato
Nella console Google Cloud , vai alla pagina Bigtable Istanze.
Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial.
Se non hai un'istanza disponibile, creane una con le configurazioni predefinite in una regione vicina.
Nel riquadro di navigazione a sinistra, fai clic su Tabelle.
Fai clic su Crea una tabella.
Assegna un nome alla tabella
change-streams-pubsub-tutorial
.Aggiungi una famiglia di colonne denominata
cf
.Seleziona Abilita flusso di modifiche.
Fai clic su Crea.
Inizializza una pipeline di dati per acquisire lo stream delle modifiche
- Nella pagina Tabelle di Bigtable, trova la tua tabella
change-streams-pubsub-tutorial
. - Nella colonna Stream di modifiche, fai clic su Connetti.
- Nella finestra di dialogo, seleziona Pub/Sub.
- Fai clic su Crea job Dataflow.
- Nella pagina Crea job di Dataflow, imposta il nome del topic Pub/Sub di output su:
bigtable-change-stream-topic
. - Imposta l'ID profilo dell'applicazione Bigtable su
default
. - Fai clic su Esegui job.
- Attendi che lo stato del job sia Avvio o In esecuzione prima di procedere. Una volta messo in coda, il job richiede circa 5 minuti.
Scrivere alcuni dati in Bigtable
In Cloud Shell, scrivi alcune righe in Bigtable in modo che il log delle modifiche possa scrivere alcuni dati nel flusso Pub/Sub. Se scrivi i dati dopo la creazione del job, le modifiche vengono visualizzate. Non devi attendere che lo stato del job diventi
running
.cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user123 cf:col1=abc cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user546 cf:col1=def cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user789 cf:col1=ghi
Visualizza i log delle modifiche in Pub/Sub
Nella console Google Cloud , vai alla pagina Sottoscrizioni di Pub/Sub.
Fai clic sulla sottoscrizione creata automaticamente per l'argomento
bigtable-change-stream-topic
. Dovrebbe essere denominatobigtable-change-stream-topic-sub
.Vai alla scheda Messaggi.
Fai clic su Pull.
Esplora l'elenco dei messaggi e visualizza i dati che hai scritto.
(Facoltativo) Visualizza le modifiche nei log di Cloud Run Functions
Se hai creato una funzione Cloud Run Functions, puoi visualizzare le modifiche nei log.
Nella console Google Cloud , vai a Cloud Run Functions.
Fai clic sulla funzione
bt-ps-tutorial-function
.Vai alla scheda Log.
Assicurati che Gravità sia impostata almeno su Info in modo da poter visualizzare i log.
Esplora i log e visualizza i dati che hai scritto.
L'output è simile al seguente:
Pub/Sub message: {"rowKey":"user789","modType":"SET_CELL","isGC":false,"tieBreaker":0,"columnFamily":"cf","commitTimestamp":1695653833064548,"sourceInstance":"YOUR-INSTANCE","sourceCluster":"YOUR-INSTANCE-c1","sourceTable":"change-streams-pubsub-tutorial","column":{"bytes":"col1"},"timestamp":{"long":1695653832278000},"timestampFrom":null,"timestampTo":null,"value":{"bytes":"ghi"}}