Crie uma tabela com streams de alterações ativadas e capture alterações
Saiba como configurar uma tabela do Bigtable com um fluxo de alterações ativado, executar um pipeline de fluxo de alterações, fazer alterações à sua tabela e, em seguida, ver as alterações transmitidas.
Antes de começar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Cloud Bigtable API, and Cloud Bigtable Admin API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, activate Cloud Shell.
Crie uma tabela com uma stream de alterações ativada
Na Google Cloud consola, aceda à página Instances do Bigtable.
Clique no ID da instância que está a usar para este início rápido.
Se não tiver uma instância disponível, crie uma instância com as configurações predefinidas numa região perto de si.
No painel de navegação do lado esquerdo, clique em Tabelas.
Clique em Criar tabela.
Atribua um nome à tabela
change-streams-quickstart
.Adicione uma família de colunas com o nome
cf
.Selecione Ativar stream de alterações.
Clique em Criar.
Inicialize um pipeline de dados para capturar a stream de alterações
No Cloud Shell, execute os seguintes comandos para transferir o código e executá-lo.
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"
Substitua o seguinte:
- PROJECT_ID: o ID do projeto que está a usar
- BIGTABLE_INSTANCE_ID: o ID da instância que vai conter a nova tabela
- BIGTABLE_REGION: a região em que a sua instância do Bigtable se encontra, como
us-east5
Na Google Cloud consola, aceda à página Fluxo de dados.
Clique na tarefa com um nome que comece por changestreamquickstart.
Na parte inferior do ecrã, clique em Mostrar para abrir o painel de registos.
Clique em Registos do trabalhador para monitorizar o resultado da stream de alterações.
No Cloud Shell, escreva alguns dados no Bigtable para ver o processo da stream de alterações.
cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \ import change-streams-quickstart quickstart-data.csv column-family=cf
Na Google Cloud consola, certifique-se de que a Gravidade está definida, pelo menos, como
Info
.Os registos de saída do registo do trabalhador contêm o seguinte:
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
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
Desative a stream de alterações na tabela
gcloud bigtable instances tables update change-streams-quickstart --instance=BIGTABLE_INSTANCE_ID \ --clear-change-stream-retention-period
Elimine a tabela
change-streams-quickstart
:cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID deletetable change-streams-quickstart
Parar a pipeline de streams de alterações:
Na Google Cloud consola, aceda à página Tarefas do Dataflow.
Selecione a tarefa de streaming na lista de tarefas.
Na navegação, clique em Parar.
Na caixa de diálogo Parar tarefa, cancele o pipeline e, de seguida, clique em Parar tarefa.
Opcional: elimine a instância se tiver criado uma nova para este início rápido:
cbt deleteinstance BIGTABLE_INSTANCE_ID
O que se segue?