Crea una tabla con cambios habilitados para el flujo y captura los cambios

Aprende a configurar una tabla de Cloud Bigtable con una transmisión de cambios habilitada, ejecutar una canalización de flujo de cambios, realizar cambios en tu tabla y, luego, ver los cambios transmitidos.

Antes de comenzar

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  3. Habilita las API de Dataflow and Cloud Bigtable.

    Habilita las API

  4. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

Cree una tabla con un flujo de cambios habilitado

  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 esta guía de inicio rápido.

    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. Asigna el nombre change-streams-quickstart 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 Cloud Shell, ejecute los siguientes comandos para descargar y ejecutar el código.

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    cd java-docs-samples/bigtable/beam/change-streams
    mvn compile exec:java -Dexec.mainClass=ChangeStreamsHelloWorld \
    "-Dexec.args=--project=PROJECT_ID --bigtableProjectId=PROJECT_ID \
    --bigtableInstanceId=BIGTABLE_INSTANCE_ID --bigtableTableId=change-streams-quickstart \
    --runner=dataflow --region=BIGTABLE_REGION --experiments=use_runner_v2"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que usas.
    • BIGTABLE_INSTANCE_ID: El ID de la instancia que contiene la tabla nueva
    • BIGTABLE_REGION: Es la región en la que se encuentra la instancia de Bigtable, como us-east5.
  2. En la consola de Google Cloud, ve a la página Dataflow.

    Ir a Dataflow

  3. Haz clic en el trabajo con un nombre que comience con changestreamquickstart.

  4. En la parte inferior de la pantalla, haga clic en Mostrar para abrir el panel de registros.

  5. Haga clic en Registros de trabajador para supervisar el resultado del flujo de cambios.

  6. En Cloud Shell, escriba algunos datos en Bigtable para ver el proceso de transmisión de cambios.

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
    import change-streams-quickstart quickstart-data.csv column-family=cf
    
  7. En la consola de Google Cloud, asegúrate de que la Gravedad esté configurada como mínimo Info.

  8. Los registros de salida del registro de trabajadores contienen lo siguiente:

    Change captured: user123#2023,USER,SetCell,cf,col1,abc
    Change captured: user546#2023,USER,SetCell,cf,col1,def
    Change captured: user789#2023,USER,SetCell,cf,col1,ghi
    

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página.

  1. Inhabilitar el flujo de cambios en la tabla

    gcloud bigtable instances tables update change-streams-quickstart --instance=BIGTABLE_INSTANCE_ID \
    --clear-change-stream-retention-period
    
  2. Borra la tabla change-streams-quickstart:

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID deletetable change-streams-quickstart
    
  3. Detén la canalización del flujo de cambios:

    1. En la consola de Google Cloud, ve a la página Trabajos de Dataflow.

      Ir a Trabajos

    2. Selecciona tu trabajo de transmisión en la lista de trabajos.

    3. En la navegación, haz clic en Detener.

    4. En el diálogo Detener trabajo, cancele la canalización y, luego, haga clic en Detener trabajo.

  4. Opcional: Borra la instancia si creaste una nueva para esta guía de inicio rápido:

    cbt deleteinstance BIGTABLE_INSTANCE_ID
    

¿Qué sigue?