En este instructivo, se muestra cómo usar la plantilla Bigtable change streams to Pub/Sub, incluida la configuración de un tema y la plantilla. De forma opcional, puedes crear una función de Cloud Run, en el de programación que elijas, que se activa mediante el flujo de eventos.
Este instructivo está dirigido a usuarios con conocimientos técnicos Bigtable, escritura de código y servicios de transmisión de eventos.
Objetivos
En este instructivo, se muestra cómo realizar lo siguiente:
- Crear una tabla de Bigtable con un flujo de cambios habilitado
- Crea un tema de Pub/Sub con el flujo de cambios de Bigtable .
- Implementa un flujo de cambios de Bigtable en una canalización de Pub/Sub en Dataflow con la plantilla.
- Ver la transmisión de eventos directamente en Pub/Sub o en los registros de un Cloud Run.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.
Antes de comenzar
- 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.
- Instala y actualiza la CLI de
cbt
.gcloud components update gcloud components install cbt
Crea un tema de Pub/Sub
En la consola de Google Cloud, ve a Temas de Pub/Sub. .
Haz clic en Crear tema.
Establece el ID como
bigtable-change-stream-topic
.Selecciona Usar un esquema.
En el menú desplegable Selecciona un esquema de Pub/Sub, haz clic en Crear. esquema nuevo. Se abrirá una pestaña nueva en la que definirás el esquema.
- Establece el ID del esquema en
bigtable-change-stream-schema
. - Establece el tipo de esquema en Avro.
- Pega lo siguiente como la definición del esquema. Más información sobre el y el esquema de la página, en la 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"]} ] }
- Haz clic en Crear para generar el esquema.
- Establece el ID del esquema en
Cierra la pestaña Create schema, actualiza la lista de esquemas y selecciona el esquema que acabas de definir.
Haz clic en Crear para crear el tema.
Crea una función de Cloud Run (opcional)
Puedes procesar la transmisión de Pub/Sub con un Cloud Run.
- En la página Detalles del tema
bigtable-change-stream-topic
, haz clic en Activar Cloud Function . - En el campo Nombre de la función, ingresa el nombre
bt-ps-tutorial-function
. - En la sección Código fuente, haz clic en el menú desplegable Entorno de ejecución y, luego, selecciona el entorno de ejecución y el lenguaje de programación que elijas. Un
hello world
que imprime el flujo de cambios a medida que aparece. Consulta la para obtener más información sobre cómo escribir funciones de Cloud Run. - Usa los valores predeterminados en todos los demás campos.
- Haz clic en Implementar función.
Crea una tabla con un flujo de cambios habilitado
En la consola de Google Cloud, ve a Bigtable Instancias.
Haz clic en el ID de la instancia que usas para este instructivo.
Si no tienes una instancia disponible, crea una instancia con la configuración predeterminada en una región cercana a ti.
En el panel de navegación izquierdo, haz clic en Tablas.
Haz clic en Crea una tabla.
Asigna el nombre
change-streams-pubsub-tutorial
a la tabla.Agrega una familia de columnas llamada
cf
.Selecciona Habilitar flujo de cambios.
Haz clic en Crear.
Inicializar una canalización 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 Flujo de cambios, haz clic en Conectar.
- En el cuadro de diálogo, selecciona Pub/Sub.
- Haz clic en Crear trabajo de Dataflow.
- En la página Crear trabajo de Dataflow, configura el resultado.
Nombre del tema de Pub/Sub como:
bigtable-change-stream-topic
. - Establece el ID de perfil de aplicación de Bigtable en
default
. - Haga clic en Ejecutar trabajo.
- Espera hasta que el estado del trabajo sea Iniciando o En ejecución antes de continuar. Tarda alrededor de 5 minutos una vez que la tarea está en cola.
Escribe algunos datos en Bigtable
En Cloud Shell, escribe algunas filas en Bigtable para que las puede escribir algunos datos en la transmisión de Pub/Sub. Largo mientras escribes los datos tras la creación del trabajo, aparecerán los cambios. Tú no tienes que esperar a que el estado del trabajo cambie a
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
Consulta los registros de cambios en Pub/Sub
En la consola de Google Cloud, ve a Pub/Sub página Suscripciones.
Haz clic en la suscripción que se creó automáticamente para tu tema.
bigtable-change-stream-topic
Debe tener un nombrebigtable-change-stream-topic-sub
Ve a la pestaña Mensajes.
Haz clic en Extraer.
Explora la lista de mensajes y consulta los datos que escribiste.
Opcional: Visualiza los cambios en los registros de Cloud Run Functions
Si creaste una función de Cloud Run Functions, puedes ver los cambios en los registros.
En la consola de Google Cloud, ve a Cloud Run Functions.
Haz clic en la función
bt-ps-tutorial-function
.Ve a la pestaña Registros.
Asegúrate de que la Gravedad esté configurada como Información como mínimo para que puedas ver de datos.
Explora los registros y visualiza los datos que escribiste.
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"}}
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra la tabla de Bigtable
En la consola de Google Cloud, ve a Bigtable Instancias.
Haz clic en el ID de la instancia que usas para este instructivo.
En el panel de navegación izquierdo, haz clic en Tablas.
Busca la tabla
change-streams-pubsub-tutorial
.Haz clic en Edit.
Borra la opción Habilitar el flujo de cambios.
Haz clic en Guardar.
Abre el menú ampliado de la tabla.
Haz clic en Borrar y, luego, ingresa el nombre de la tabla para confirmar.
Detén la canalización del flujo de cambios
En la consola de Google Cloud, ve a la página Trabajos de Dataflow.
Selecciona tu trabajo de transmisión en la lista de trabajos.
En la navegación, haz clic en Detener.
En el diálogo Detener trabajo, cancela tu canalización y, luego, haz clic en Detener trabajo.
Borra el tema y la suscripción de Pub/Sub
En la consola de Google Cloud, ve a Temas de Pub/Sub. .
Selecciona el tema
bigtable-change-stream-topic
.Haz clic en Borrar y confirma tu decisión.
En la barra lateral, haz clic en Suscripciones.
Selecciona la suscripción a
bigtable-change-stream-topic-sub
.Haz clic en Borrar y confirma tu decisión.
Borra la función de Cloud Run
En la consola de Google Cloud, ve a Cloud Run Functions.
Selecciona la función
bt-ps-tutorial-function
.Haz clic en Borrar y confirma tu decisión.