Transmite cambios a Pub/Sub con el activador opcional de funciones de Cloud Run

En este instructivo, se muestra cómo usar la plantilla de transmisiones de flujos de cambios a Pub/Sub, incluido cómo configurar un tema y la plantilla. De manera opcional, puedes crear una función de Cloud Run en el lenguaje de programación que elijas y que se active con el flujo de eventos.

Este instructivo está dirigido a usuarios técnicos que estén familiarizados con Bigtable, la escritura de código y los servicios de transmisión de eventos.

Crea un tema de Pub/Sub

  1. En la consola de Google Cloud , ve a la página Temas de Pub/Sub.

    Ir a temas

  2. Haz clic en Crear un tema.

  3. Configura el ID como bigtable-change-stream-topic.

  4. Selecciona Usar un esquema.

  5. En el menú desplegable Selecciona un esquema de Pub/Sub, haz clic en Crear un esquema nuevo. Se abrirá una pestaña nueva en la que definirás el esquema.

    1. Configura el ID del esquema en bigtable-change-stream-schema.
    2. Establece el tipo de esquema en Avro.
    3. Pega lo siguiente como la definición del esquema. Puedes encontrar 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"]}
        ]
      }
    
    1. Haz clic en Crear para crear el esquema.
  6. Cierra la pestaña Crear esquema, actualiza la lista de esquemas y selecciona el esquema que acabas de definir.

  7. Haz clic en Crear para crear el tema.

Opcional: Crea una función de Cloud Run

Es posible que desees procesar el flujo de Pub/Sub con una función de Cloud Run.

  1. En la página Detalles del tema bigtable-change-stream-topic, haz clic en Activar Cloud Function .
  2. En el campo Nombre de la función, ingresa el nombre bt-ps-tutorial-function.
  3. 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 prefieras. Se genera un hello world que imprime el flujo de cambios a medida que llega. Consulta la documentación para obtener más información sobre cómo escribir Cloud Run Functions.
  4. Usa los valores predeterminados en los otros campos.
  5. Haz clic en Implementar función.

Crea una tabla con una transmisión de cambios habilitada

  1. En la consola de Google Cloud , ve a la página Instancias de Bigtable.

    Ir a Instancias

  2. Haz clic en el ID de la instancia que usas para este instructivo.

    Si no tienes una instancia disponible, crea una con la configuración predeterminada en una región cercana.

  3. En el panel de navegación izquierdo, haz clic en Tablas.

  4. Haz clic en Crea una tabla.

  5. Asígnale el nombre change-streams-pubsub-tutorial a la tabla.

  6. Agrega una familia de columnas llamada cf.

  7. Selecciona Habilitar el flujo de cambios.

  8. Haz clic en Crear.

Inicializa una canalización de datos para capturar el flujo de cambios

  1. En la página Tablas de Bigtable, busca tu tabla change-streams-pubsub-tutorial.
  2. En la columna Change stream, haz clic en Connect.
  3. En el diálogo, selecciona Pub/Sub.
  4. Haz clic en Crear trabajo de Dataflow.
  5. En la página Crear trabajo de Dataflow, configura el nombre del tema de Pub/Sub de salida como bigtable-change-stream-topic.
  6. Establece el ID del perfil de aplicación de Bigtable en default.
  7. Haga clic en Ejecutar trabajo.
  8. Espera a que el estado del trabajo sea Starting o Running antes de continuar. Tarda alrededor de 5 minutos una vez que el trabajo se pone en cola.

Escribe algunos datos en Bigtable

  1. 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 y cuando escribas los datos después de que se cree el trabajo, aparecerán los cambios. No es necesario que esperes 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
    

Cómo ver los registros de cambios en Pub/Sub

  1. En la consola de Google Cloud , ve a la página Suscripciones de Pub/Sub.

    Ir a Suscripciones

  2. Haz clic en la suscripción que se creó automáticamente para tu tema bigtable-change-stream-topic. Debería llamarse bigtable-change-stream-topic-sub.

  3. Ve a la pestaña Mensajes.

  4. Haz clic en Extraer.

  5. Explora la lista de mensajes y visualiza los datos que escribiste.

    Mensajes del registro de cambios en Pub/Sub

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.

  1. En la Google Cloud consola, ve a Funciones de Cloud Run.

    Ve a las funciones de Cloud Run

  2. Haz clic en tu función bt-ps-tutorial-function.

  3. Ve a la pestaña Registros.

  4. Asegúrate de que Severity esté configurado en, al menos, Info para que puedas ver los registros.

  5. 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"}}