En este tutorial se muestra cómo usar la plantilla Bigtable change streams to Pub/Sub (Flujos de cambios de Bigtable a Pub/Sub), incluido cómo configurar un tema y la plantilla. También puedes crear una función de Cloud Run en el lenguaje de programación que elijas que se active con el flujo de eventos.
Este tutorial está dirigido a usuarios técnicos que estén familiarizados con Bigtable, la escritura de código y los servicios de streaming de eventos.
Crear un tema de Pub/Sub
En la Google Cloud consola, ve a la página Temas de Pub/Sub.
Haz clic en Crear tema.
Define el ID como
bigtable-change-stream-topic
.Selecciona Usar un esquema.
En el menú desplegable Select a Pub/Sub schema (Seleccionar un esquema de Pub/Sub), haga clic en Create new schema (Crear esquema). Se abrirá una pestaña nueva en la que podrás definir el esquema.
- Asigna el ID de esquema
bigtable-change-stream-schema
. - Asigna el valor Avro al tipo de esquema.
- Pegue lo siguiente como definición de esquema. Puedes consultar más información sobre el esquema en la página de documentación de la plantilla.
{ "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"]} ] }
- Haga clic en Crear para crear el esquema.
- Asigna el ID de esquema
Cierra la pestaña Crear esquema, actualiza la lista de esquemas y selecciona el esquema que acabas de definir.
Haz clic en Crear para crear el tema.
Opcional: Crear una función de Cloud Run
Puede que quieras procesar el flujo de Pub/Sub con una función de Cloud Run.
- En la página Detalles del tema
bigtable-change-stream-topic
, haz clic en Activar función de Cloud . - En el campo Nombre de la función, introduce el nombre
bt-ps-tutorial-function
. - En la sección Código fuente, haz clic en el desplegable Tiempo de ejecución y, a continuación, selecciona el tiempo de ejecución y el lenguaje de programación que quieras. Se genera un
hello world
que imprime el flujo de cambios a medida que se recibe. Consulta la documentación para obtener más información sobre cómo escribir funciones de Cloud Run. - Usa los valores predeterminados del resto de los campos.
- Haz clic en Desplegar función.
Crear una tabla con un flujo de cambios habilitado
En la Google Cloud consola, ve a la página de Bigtable Instancias.
Haga clic en el ID de la instancia que esté usando en este tutorial.
Si no tienes ninguna instancia disponible, crea una con las configuraciones predeterminadas en una región cercana.
En el panel de navegación de la izquierda, haga clic en Tablas.
Haz clic en Crear tabla.
Asigna un nombre a la tabla
change-streams-pubsub-tutorial
.Añade una familia de columnas llamada
cf
.Selecciona Habilitar flujo de cambios.
Haz clic en Crear.
Inicializar un flujo de procesamiento de datos para capturar el flujo de cambios
- En la página Tablas de Bigtable, busca tu tabla.
change-streams-pubsub-tutorial
- En la columna Cambio de flujo, haga clic en Conectar.
- En el cuadro de diálogo, selecciona Pub/Sub.
- Haga clic en Crear tarea de Dataflow.
- En la página Crear tarea de Dataflow, asigna el nombre del tema de salida de Pub/Sub:
bigtable-change-stream-topic
. - Asigna el ID de perfil de aplicación de Bigtable a
default
. - Haz clic en Ejecutar trabajo.
- Espera a que el estado del trabajo sea Iniciando o En curso antes de continuar. Tarda unos 5 minutos una vez que se pone en cola.
Escribir datos en Bigtable
En Cloud Shell, escribe algunas filas en Bigtable para que el registro de cambios pueda escribir algunos datos en el flujo de Pub/Sub. Siempre que escribas los datos después de crear el trabajo, los cambios aparecerán. No tienes que esperar a que el estado del trabajo sea
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
Ver los registros de cambios en Pub/Sub
En la Google Cloud consola, ve a la página Suscripciones de Pub/Sub .
Haz clic en la suscripción creada automáticamente para tu tema
bigtable-change-stream-topic
. Debe llamarsebigtable-change-stream-topic-sub
.Ve a la pestaña Mensajes.
Haz clic en Extraer.
Consulta la lista de mensajes y los datos que has escrito.
Opcional: Ver los cambios en los registros de Cloud Run Functions
Si has creado una función de Cloud Run Functions, puedes ver los cambios en los registros.
En la Google Cloud consola, ve a Cloud Run functions.
Haz clic en tu función
bt-ps-tutorial-function
.Ve a la pestaña Registros.
Asegúrate de que Gravedad esté configurado como Información como mínimo para poder ver los registros.
Explora los registros y consulta los datos que has escrito.
El resultado es similar al siguiente:
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"}}