Este tutorial mostra como usar o modelo Bigtable change streams to Pub/Sub, incluindo como configurar um tópico e configurar o modelo. Opcionalmente, pode criar uma função do Cloud Run no idioma de programação à sua escolha, que é acionada pela stream de eventos.
Este tutorial destina-se a utilizadores técnicos que estão familiarizados com o Bigtable, a escrita de código e os serviços de streaming de eventos.
Crie um tópico do Pub/Sub
Na Google Cloud consola, aceda à página Tópicos do Pub/Sub.
Clique em Criar tópico.
Defina o ID como
bigtable-change-stream-topic
.Selecione Usar um esquema.
No menu pendente Selecionar um esquema do Pub/Sub, clique em Criar novo esquema. Esta ação abre um novo separador onde define o esquema.
- Defina o ID do esquema como
bigtable-change-stream-schema
. - Defina o tipo de esquema como Avro.
- Cole o seguinte como a definição do esquema. Pode encontrar mais informações acerca do esquema na página de documentação do modelo.
{ "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"]} ] }
- Clique em Criar para criar o esquema.
- Defina o ID do esquema como
Feche o separador Criar esquema, atualize a lista de esquemas e selecione o esquema recém-definido.
Clique em Criar para criar o tópico.
Opcional: crie uma função do Cloud Run
Pode querer processar a stream do Pub/Sub com uma função do Cloud Run.
- Na página Detalhes do tópico
bigtable-change-stream-topic
, clique em Acionar função do Google Cloud . - No campo Nome da função, introduza o nome
bt-ps-tutorial-function
. - Na secção Código fonte, clique no menu pendente Tempo de execução e, de seguida,
selecione o tempo de execução e a linguagem de programação da sua escolha. É gerado um
hello world
que imprime a stream de alterações à medida que chega. Consulte a documentação para saber mais sobre como escrever funções do Cloud Run. - Use os valores predefinidos para todos os outros campos.
- Clique em Implementar função.
Crie uma tabela com uma stream de alterações ativada
Na Google Cloud consola, aceda à página Instâncias do Bigtable.
Clique no ID da instância que está a usar para este tutorial.
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-pubsub-tutorial
.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
- Na página Tabelas do Bigtable, encontre a sua tabela
change-streams-pubsub-tutorial
. - Na coluna Alterar stream, clique em Associar.
- Na caixa de diálogo, selecione Pub/Sub.
- Clique em Criar tarefa do Dataflow.
- Na página Criar tarefa do Dataflow, defina o nome do tópico do Pub/Sub de saída como:
bigtable-change-stream-topic
. - Defina o ID do perfil da aplicação do Bigtable como
default
. - Clique em Executar tarefa.
- Aguarde até que o estado da tarefa seja A iniciar ou Em execução antes de continuar. Demora cerca de 5 minutos assim que a tarefa é colocada em fila.
Escreva alguns dados no Bigtable
No Cloud Shell, escreva algumas linhas no Bigtable para que o registo de alterações possa escrever alguns dados no stream do Pub/Sub. Desde que escreva os dados após a criação da tarefa, as alterações aparecem. Não tem de esperar que o estado da tarefa se torne
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
Veja os registos de alterações no Pub/Sub
Na Google Cloud consola, aceda à página Subscrições do Pub/Sub.
Clique na subscrição criada automaticamente para o seu tópico
bigtable-change-stream-topic
. Deve ter o nomebigtable-change-stream-topic-sub
.Aceda ao separador Mensagens.
Clique em Extrair.
Explore a lista de mensagens e veja os dados que escreveu.
Opcional: veja as alterações nos registos das funções do Cloud Run
Se criou uma função do Cloud Run, pode ver as alterações nos registos.
Na Google Cloud consola, aceda a Funções do Cloud Run.
Clique na sua função
bt-ps-tutorial-function
.Aceda ao separador Registos.
Certifique-se de que a gravidade está definida, pelo menos, como Informações para poder ver os registos.
Explore os registos e veja os dados que escreveu.
O resultado tem um aspeto semelhante ao seguinte:
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"}}