Questo tutorial mostra come utilizzare i flussi di modifiche in tempo reale di Bigtable per Pub/Sub, incluse le istruzioni su come impostare un argomento e modello. Facoltativamente, puoi creare una funzione Cloud Run, nel linguaggio di programmazione di tua scelta, che viene attivato dallo stream di eventi.
Questo tutorial è rivolto a utenti tecnici che hanno familiarità con Bigtable, la scrittura di codice e i servizi di streaming di eventi.
Obiettivi
Questo tutorial illustra come svolgere le seguenti operazioni:
- Crea una tabella Bigtable con un flusso di modifiche abilitato.
- Crea un argomento Pub/Sub con lo schema del flusso di modifiche di Bigtable.
- Esegui il deployment di un flusso di modifiche Bigtable in una pipeline Pub/Sub a Dataflow usando il modello.
- Visualizza il flusso di eventi direttamente in Pub/Sub o nei log di un nella funzione Cloud Run.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi basata sull'utilizzo previsto,
utilizza il Calcolatore prezzi.
Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Aggiorna e installa il
Interfaccia a riga di comando
cbt
di Google.gcloud components update gcloud components install cbt
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 definisci lo schema.
- Imposta l'ID schema su
bigtable-change-stream-schema
. - Imposta il tipo di schema su Avro.
- Incolla quanto segue come definizione dello schema. Puoi trovare ulteriori informazioni sullo schema nella 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 di schemi e seleziona il schema appena definito.
Fai clic su Crea per creare l'argomento.
(Facoltativo) Crea una funzione Cloud Run
Potresti voler elaborare lo stream 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, quindi
seleziona il linguaggio di runtime e di programmazione che preferisci. Un
hello world
che stampa il flusso di modifiche man mano che arriva. 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 a Bigtable nella pagina Istanze.
Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial.
Se non è disponibile un'istanza, crea una istanza con le configurazioni predefinite in una regione vicino a te.
Nel riquadro di navigazione a sinistra, fai clic su Tabelle.
Fai clic su Crea una tabella.
Assegna alla tabella il nome
change-streams-pubsub-tutorial
.Aggiungi una famiglia di colonne denominata
cf
.Seleziona Attiva flusso di modifiche.
Fai clic su Crea.
Inizializza una pipeline di dati per acquisire il flusso di modifiche
- Individua la tua tabella nella pagina Tabelle di Bigtable
change-streams-pubsub-tutorial
. - Nella colonna Change stream, fai clic su Connect (Connetti).
- Nella finestra di dialogo, seleziona Pub/Sub.
- Fai clic su Crea job Dataflow.
- Nella pagina Crea job di Dataflow, imposta il nome dell'argomento Pub/Sub di output su:
bigtable-change-stream-topic
. - Imposta l'ID profilo dell'applicazione Bigtable su
default
. - Fai clic su Esegui job.
- Prima di procedere, attendi che lo stato del job sia Avvio o In esecuzione. Una volta che il job viene messo in coda, sono necessari 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 nello stream Pub/Sub. Per tutta la durata mentre scrivi i dati dopo la creazione del job, vengono visualizzate le modifiche. 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
Visualizzare i log delle modifiche in Pub/Sub
Nella console Google Cloud, vai al Pub/Sub pagina Abbonamenti.
Fai clic sulla sottoscrizione creata automaticamente per il tuo argomento
bigtable-change-stream-topic
. Deve essere denominatobigtable-change-stream-topic-sub
.Vai alla scheda Messaggi.
Fai clic su Tira.
Esplora l'elenco dei messaggi e visualizza i dati che hai scritto.
(Facoltativo) Visualizza le modifiche nei log delle funzioni Cloud Run
Se hai creato una funzione Cloud Run, puoi visualizzare le modifiche nei log.
Nella console Google Cloud, vai a Funzioni Cloud Run.
Fai clic sulla funzione
bt-ps-tutorial-function
.Vai alla scheda Log.
Assicurati che l'opzione Gravità sia impostata su almeno Informazioni in modo da poter visualizzare logaritmi.
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"}}
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina la tabella Bigtable
Nella console Google Cloud, vai a Bigtable nella pagina Istanze.
Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial.
Nel riquadro di navigazione a sinistra, fai clic su Tables (Tabelle).
Individua la tabella
change-streams-pubsub-tutorial
.Fai clic su Modifica.
Deseleziona Attiva flusso di modifiche.
Fai clic su Salva.
Apri il menu extra della tabella.
Fai clic su Elimina e inserisci il nome della tabella per confermare.
Interrompi la pipeline del flusso di modifiche
Nella console Google Cloud, vai alla pagina Job di Dataflow.
Seleziona il job di flussi di dati dall'elenco dei job.
Nella barra di navigazione, fai clic su Interrompi.
Nella finestra di dialogo Arresta job, annulla la pipeline, quindi fai clic su Arresta job.
Elimina l'argomento e la sottoscrizione Pub/Sub
Nella console Google Cloud, vai alla pagina Argomenti di Pub/Sub.
Seleziona l'argomento
bigtable-change-stream-topic
.Fai clic su Elimina e conferma.
Fai clic su Abbonamenti nella barra laterale.
Seleziona l'abbonamento
bigtable-change-stream-topic-sub
.Fai clic su Elimina e conferma.
Elimina la funzione Cloud Run
Nella console Google Cloud, vai a Funzioni di Cloud Run.
Seleziona la funzione
bt-ps-tutorial-function
.Fai clic su Elimina e conferma.