Partilha de streams com o Pub/Sub
Pode partilhar tópicos do Pub/Sub através da partilha do BigQuery (anteriormente, o Analytics Hub) para organizar e distribuir uma biblioteca de dados de streaming em vários limites organizacionais internos e externos. Os dados de streaming em tempo real são partilhados através de trocas e fichas de partilha do BigQuery, o que lhe permite categorizar e agrupar logicamente grandes conjuntos de tópicos do Pub/Sub e aprovisionar o acesso em grande escala.
Pode partilhar dados de streaming para fazer o seguinte:
- Serviços financeiros:
- Partilhe preços, cotações e ordens de instrumentos que mudam rapidamente em tempo real.
- Detetar branqueamento de capitais e fraude de pagamentos.
- Suporta cálculos de risco de negociação.
- Retalho e produtos de grande consumo (CPG):
- Faça a gestão do inventário da loja em tempo real.
- Personalizar o marketing e o apoio ao cliente.
- Ajustar os preços dinamicamente.
- Monitorizar canais de redes sociais.
- Otimizar os layouts das lojas físicas.
- Cuidados de saúde:
- Potenciar algoritmos preditivos para monitorizar pacientes e analisar o risco em tempo real.
- Monitorize sinais vitais com dispositivos médicos wearable.
- Adquirir, estruturar, armazenar e processar automaticamente dados de pacientes, profissionais de saúde e administração de instalações.
- Telecomunicações:
- Monitorizar o estado da rede e prever falhas.
- Descubra padrões de comportamento do utilizador para localizar melhor os dispositivos e as antenas.
Funções necessárias
As funções para partilhar tópicos do Pub/Sub são análogas à partilha de conjuntos de dados do BigQuery:
- Administrador: gere as autorizações, a visibilidade e a associação de
bolsas de câmbio e fichas. Esta função é análoga à função de IAM
Administrador do Analytics Hub
(
roles/analyticshub.admin). - Publicador de tópicos partilhados: cria, gere e concede acesso a fichas dos tópicos Pub/Sub partilhados. Esta função é análoga à função do IAM de Publicador do Analytics Hub ou administrador da ficha do Analytics Hub. O publicador é um utilizador e não a aplicação do publicador que cria e envia mensagens para o tópico.
- Subscritor de tópico partilhado: subscreve a lista de tópicos partilhados. Os subscritores de tópicos partilhados podem configurar a forma como as mensagens de tópicos são entregues. Esta função é análoga à função do IAM Subscritor do Centro de análise ou Proprietário da subscrição do Centro de análise. Consoante a forma como os dados das mensagens são enviados, podem ser necessárias autorizações adicionais, como autorizações da conta de serviço do Pub/Sub para escrever mensagens no BigQuery.
Arquitetura
O diagrama seguinte descreve como os publicadores e os subscritores de recursos do Pub/Sub interagem com a partilha do BigQuery:
Limitações
A partilha de streams com o Pub/Sub tem as seguintes limitações:
- Um tópico partilhado suporta um máximo de 10 000 subscrições do Pub/Sub. Este limite inclui subscrições do Pub/Sub associadas e subscrições do Pub/Sub criadas fora da partilha, por exemplo, as criadas diretamente a partir do Pub/Sub.
Os tópicos partilhados são indexados no catálogo de dados (descontinuado) e no catálogo universal do Dataplex, mas não pode filtrar especificamente pelo respetivo tipo de recurso.
As métricas de utilização são capturadas e apresentadas no painel de controlo de métricas para tópicos e subscrições Pub/Sub partilhados, mas não estão disponíveis no
INFORMATION_SCHEMA.SHARED_DATASET_USAGE.Para monitorizar métricas, consulte o artigo Monitorize o Pub/Sub no Cloud Monitoring.
Estas métricas podem incluir o seguinte:
- Número de mensagens publicadas
- Solicitações de publicação
- Débito de publicação em bytes
- 5 principais subscrições
- Bytes carregados
- Outros
Ative a API Analytics Hub
Para ativar a API Analytics Hub, faça o seguinte:
Consola
Aceda à biblioteca de APIs e ative a API Analytics Hub para o seu Google Cloud projeto.
gcloud
Execute o comando gcloud services enable:
gcloud services enable analyticshub.googleapis.com
Ative a API Pub/Sub
Aceda à biblioteca de APIs e ative a API Pub/Sub para o seu Google Cloud projeto.
Fluxos de trabalho do publicador de tópicos partilhados
Enquanto publicador de tópicos partilhados, pode fazer o seguinte:
- Adicione tópicos partilhados a uma troca criando uma ficha.
- Atualize uma ficha.
- Elimine uma ficha.
- Partilhe uma ficha.
- Faça a gestão das subscrições da sua ficha.
- Remova subscritores da sua ficha.
Autorizações de publicador adicionais
Para realizar tarefas de publicador de tópicos partilhados, tem de ter a
função de publicador do Analytics Hub
(roles/analyticshub.publisher) numa bolsa de câmbio ou numa ficha. Para ver todas as
trocas de dados
em projetos numa organização à qual tem acesso, tem de ter a autorização
resourcemanager.organizations.get.
Além disso, precisa da autorização pubsub.topics.setIamPolicy no tópico do Pub/Sub que quer listar. Para partilhar tópicos com um esquema anexado, tem de conceder aos subscritores da partilha do BigQuery a autorização pubsub.schemas.get no esquema anexado ao tópico. Esta autorização permite que os subscritores da partilha do BigQuery analisem corretamente as mensagens da subscrição do Pub/Sub.
Crie uma ficha (para adicionar um tópico partilhado)
Para adicionar um tópico partilhado a uma ficha, selecione uma das seguintes opções:
Consola
Aceda à página Partilha (Centro de análise).
Aceda à partilha (Analytics Hub)
A página apresenta todas as trocas de dados às quais pode aceder.
Clique no nome da troca de dados onde quer criar a ficha.
Clique em Criar ficha.
Na página Criar ficha, selecione "Tópico do Pub/Sub" na lista Tipo de recurso.
Selecione um tópico do Pub/Sub existente na lista Tópico partilhado ou clique em Criar um tópico.
Na página Detalhes da ficha, no campo Nome a apresentar, introduza o nome da ficha.
Introduza os seguintes detalhes opcionais:
Categoria: selecione até duas categorias que melhor representem a sua ficha. Os subscritores de tópicos partilhados podem filtrar fichas com base nestas categorias.
Afinidade de dados: a região ou as regiões que o publicador de tópicos partilhados usa para publicar dados. Estas informações ajudam os subscritores de tópicos partilhados a minimizar ou evitar os custos de saída da rede do Pub/Sub lendo dados da mesma região. Para mais informações sobre os custos de saída, consulte o artigo Custos de transferência de dados.
Ícone: um ícone para a sua ficha. Os formatos de ficheiro PNG e JPEG são suportados. Os ícones têm de ter menos de 512 KiB e dimensões não superiores a 512 x 512 píxeis.
Descrição: uma breve descrição da sua ficha. Os subscritores de tópicos partilhados podem pesquisar fichas com base na descrição.
Visibilidade pública: ative a visibilidade pública para a sua ficha na galeria de partilha do BigQuery. Também tem de definir as autorizações para a ficha. Clique em Ações para a troca e, de seguida, clique em Definir autorizações. Conceda a
allUsersouallAuthenticatedusersa função de leitor do centro de análise (roles/analyticshub.viewer). Clique em Permitir acesso público.Documentação > Markdown: informações adicionais, como links para documentação relevante e outros detalhes que ajudem os subscritores de tópicos partilhados a usar o seu tópico.
Na página Informações de contacto da ficha, introduza os seguintes detalhes opcionais:
Contacto principal: introduza um endereço de email ou um URL para o contacto principal da ficha.
Pedido de acesso ao contacto: introduza um endereço de email ou um URL para o formulário de receção que os subscritores de tópicos partilhados podem usar para entrar em contacto consigo.
Fornecedor: expanda a secção Fornecedor e especifique os detalhes nos seguintes campos:
- Nome do fornecedor: o nome do fornecedor de tópicos.
- Contacto principal do fornecedor: um endereço de email ou um URL para o contacto principal do fornecedor do tópico.
Os subscritores de tópicos partilhados podem filtrar fichas com base nos fornecedores de dados.
Publicador: expanda a secção Publicador e especifique os detalhes nos seguintes campos:
- Nome do publicador: o nome do publicador do tópico partilhado que cria a ficha.
- Contacto principal do publicador: um endereço de email ou um URL do contacto principal do publicador do tópico partilhado.
Reveja a página Pré-visualização da ficha.
Clique em Publicar.
API
Use o
projects.locations.dataExchanges.listings.create método.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
Substitua o seguinte:
PROJECT_ID: o ID do projeto que contém a troca de dados na qual quer criar a ficha.LOCATION: a localização da sua troca de dados. Para mais informações sobre as localizações que suportam a partilha, consulte as regiões suportadas.DATAEXCHANGE_ID: o ID da troca de dados.LISTING_ID: o ID da ficha.
No corpo do pedido, indique os detalhes da ficha. Se o pedido for bem-sucedido, o corpo da resposta contém os detalhes da ficha.
Para mais informações sobre as tarefas que pode realizar em fichas através de APIs, consulte os métodos projects.locations.dataExchanges.listings.
Atualize uma ficha
Para atualizar uma ficha, selecione uma das seguintes opções:
Consola
Aceda à página Partilha (Centro de análise).
Clique no nome da troca de dados que contém a ficha.
Clique na ficha que quer atualizar.
Clique em Editar ficha.
Modifique os valores dos campos. Pode modificar todos os valores, exceto o tópico partilhado da ficha.
Para guardar as alterações, clique em Publicar.
API
Use o
projects.locations.dataExchanges.listings.patch método.
PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK
Substitua o seguinte:
PROJECT_ID: o ID do projeto que contém a troca de dados na qual quer criar a ficha.LOCATION: a localização da sua troca de dados. Para mais informações sobre as localizações que suportam a partilha, consulte o artigo Regiões suportadas.DATAEXCHANGE_ID: o ID da troca de dados.LISTING_ID: o ID da ficha.UPDATEMASK: a lista de campos que quer atualizar. Para atualizar vários valores, use uma lista separada por vírgulas.
No corpo do pedido, especifique os valores atualizados.
Para mais informações sobre as tarefas que pode realizar em fichas através de APIs, consulte os métodos projects.locations.dataExchanges.listings.
Elimine uma ficha
Não é possível eliminar fichas com tópicos do Pub/Sub partilhados que tenham subscrições ativas. Revogue todas as subscrições ativas antes de tentar eliminar uma ficha de tópico partilhada. Não pode anular a eliminação de uma ficha.
Para eliminar uma ficha, selecione uma das seguintes opções:
Consola
Aceda à página Partilha (Centro de análise).
Clique no nome da troca de dados que contém a ficha.
Clique na ficha que quer eliminar.
Clique em Eliminar.
Na caixa de diálogo Eliminar ficha?, confirme a eliminação escrevendo
delete.Clique em Eliminar.
API
Use o
projects.locations.dataExchanges.listings.delete método.
DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
Substitua o seguinte:
PROJECT_ID: o ID do projeto que contém a troca de dados na qual quer criar a ficha.LOCATION: a localização da sua troca de dados. Para mais informações sobre as localizações que suportam a partilha, consulte o artigo Regiões suportadas.DATAEXCHANGE_ID: o ID da troca de dados.LISTING_ID: o ID da ficha.
Para mais informações sobre as tarefas que pode realizar em fichas através de APIs, consulte os métodos projects.locations.dataExchanges.listings.
Partilhe uma ficha
Para conceder aos utilizadores acesso a uma ficha privada, defina uma política de IAM para um indivíduo ou um grupo para essa ficha. Para uma ficha comercial, a sua troca de dados tem de ser pública.
As fichas numa troca de dados pública aparecem na partilha para
todos
Google Cloud os utilizadores (allAuthenticatedUsers).
Para permitir que os utilizadores peçam acesso a fichas comerciais, conceda-lhes a
função de leitor do centro de análise
(roles/analyticshub.viewer).
Para conceder aos utilizadores acesso para ver ou subscrever a sua ficha, faça o seguinte:
Aceda à página Partilha (Centro de análise).
Clique no nome da troca de dados que contém a ficha.
Clique na ficha onde quer adicionar subscritores de tópicos partilhados.
Clique em Definir autorizações.
Para adicionar diretores, clique em Adicionar diretor.
No campo Novos diretores, adicione detalhes com base no tipo de ficha:
- Para uma ficha privada, introduza os endereços de email das identidades às quais quer conceder acesso.
- Para uma ficha pública, adicione
allAuthenticatedUsers.
No menu Selecionar uma função, selecione Analytics Hub e, de seguida, selecione uma das seguintes funções com base no tipo de ficha:
- Para uma ficha comercial, selecione a função Visualizador do Analytics Hub. Esta função permite que os utilizadores vejam a ficha e peçam acesso.
- Para uma ficha pública privada ou não comercial, selecione a função Subscritor do Analytics Hub. Esta função permite que os utilizadores subscrevam a sua ficha.
Clique em Guardar.
Para mais informações, consulte o artigo Funções de subscritor e visitante do Analytics Hub.
Gerir subscrições
Para permitir que um utilizador subscreva uma ficha com um tópico partilhado, conceda-lhe as funções de
Subscritor do Analytics Hub
(roles/analyticshub.subscriber) e
Proprietário da subscrição do Analytics Hub
(roles/analyticshub.subscriptionOwner) numa ficha específica:
Aceda à página Partilha (Centro de análise).
Clique no nome da troca de dados que contém a ficha para a qual quer gerir subscrições.
Clique na ficha para a qual quer listar os subscritores de tópicos partilhados.
Clique em Definir autorizações.
Para adicionar diretores, clique em Adicionar diretor.
No campo Novos responsáveis, introduza os nomes de utilizador ou os endereços de email dos subscritores que quer adicionar.
Para Selecionar uma função, selecione Analytics Hub > Subscritor do Analytics Hub.
Clique em Adicionar outra função.
Para Selecionar uma função, selecione Analytics Hub > Proprietário da subscrição do Analytics Hub.
Clique em Guardar.
Elimine e atualize subscritores em qualquer altura clicando em Definir autorizações.
Revogue uma subscrição
Para remover uma subscrição de uma listagem de tópicos partilhada da partilha do BigQuery, selecione uma das seguintes opções:
Consola
Para listar os subscritores de tópicos partilhados de uma ficha, siga as Google Cloud instruções da consola em Ver todas as subscrições.
Clique no separador Subscrições para ver todas as subscrições da troca de dados.
Selecione a caixa de verificação junto às subscrições que quer remover ou selecione todas as subscrições.
Na caixa de diálogo Revogar subscrição?, introduza
revokepara confirmar.Clique em Revogar.
API
Para remover uma subscrição, use o método
projects.locations.subscriptions.revoke.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
Substitua o seguinte:
PROJECT_ID: o ID do projeto da subscrição que quer remover.LOCATION: a localização da subscrição.SUBSCRIPTION_ID: o ID da subscrição que quer remover.
Quando revoga uma subscrição da partilha do BigQuery, um subscritor do tópico partilhado deixa de receber dados de mensagens do tópico partilhado. A subscrição do Pub/Sub está desanexada do tópico partilhado. Se eliminar uma subscrição diretamente do Pub/Sub, a subscrição de partilha do BigQuery persiste e requer limpeza.
Fluxos de trabalho de subscritores
Enquanto subscritor da partilha do BigQuery, pode ver e subscrever uma ficha. A subscrição de uma listagem de um tópico partilhado cria uma subscrição do Pub/Sub associada no projeto do subscritor. A subscrição do Pub/Sub é visível no projeto do publicador do tópico partilhado.
Autorizações adicionais para subscritores
Tem de ter a função de
subscritor do Analytics Hub
(roles/analyticshub.subscriber) concedida ao nível do projeto, da troca ou
da ficha para realizar tarefas de subscritor.
Subscreva uma ficha de tópico partilhada
Para subscrever uma ficha com um tópico partilhado, selecione uma das seguintes opções:
Consola
Para ver uma lista das fichas às quais pode aceder, siga os passos descritos no artigo Ver fichas.
Procure as fichas e clique numa ficha à qual quer subscrever. É apresentada uma caixa de diálogo com os detalhes da ficha.
Clique em Subscrever para abrir a caixa de diálogo Criar subscrição.
Se não tiver ativado a API Analytics Hub no seu projeto, é apresentada uma mensagem de erro com um link para ativar a API. Clique em Ativar API Analytics Hub.
Na caixa de diálogo Criar subscrição, especifique os seguintes detalhes:
- ID da subscrição: especifique o nome da subscrição que está a criar.
- Tipo de fornecimento: selecione como os dados das mensagens são fornecidos.
- Duração da retenção de mensagens: defina a duração da retenção de mensagens.
- Período de expiração: definido quando a subscrição expira após a inatividade, se alguma vez expirar.
- Prazo de confirmação: defina a hora do prazo de confirmação.
- Filtro de subscrição: defina a sintaxe do filtro para mensagens.
- Entrega exatamente uma vez: ative a entrega exatamente uma vez.
- Ordenação de mensagens: ative a ordenação de mensagens com uma chave de ordenação.
- Letras mortas: ative as letras mortas.
- Política de repetição: defina uma política de repetição.
Para mais informações sobre as propriedades de subscrição do Pub/Sub, consulte as propriedades de subscrição.
Para guardar as alterações, clique em Criar. A subscrição do Pub/Sub associada é criada no seu projeto.
API
Use o
projects.locations.dataExchanges.listings.subscribe método.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe
Substitua o seguinte:
PROJECT_ID: o ID do projeto da ficha que quer subscrever.LOCATION: a localização da sua ficha à qual quer subscrever.DATAEXCHANGE_ID: o ID da troca de dados da ficha que quer subscrever.LISTING_ID: o ID da ficha que quer subscrever.
No corpo do pedido, especifique a subscrição do Pub/Sub onde quer criar a subscrição do Pub/Sub associada. Se for bem-sucedido, o corpo da resposta está vazio.
Para mais informações sobre as subscrições do Pub/Sub, consulte a vista geral das subscrições.
Preços
Os publicadores de tópicos do Pub/Sub não incorrem em custos adicionais para listar e partilhar tópicos através da partilha do BigQuery. Os publicadores de tópicos partilhados são cobrados pelo total de bytes escritos (débito de publicação) no tópico partilhado e pela saída da rede (se aplicável). Os subscritores de tópicos partilhados são cobrados pelos bytes totais lidos (débito de subscrição) da subscrição associada e pela saída de rede (se aplicável). Para mais detalhes, consulte os preços do Pub/Sub.
VPC Service Controls
Para tópicos partilhados de projetos com perímetros dos VPC Service Controls, defina as regras de entrada e saída adequadas para conceder acesso a publicadores e subscritores de tópicos partilhados.
O que se segue?
- Saiba como gerir as suas fichas.
- Saiba mais sobre como subscrever fichas.
- Saiba como monitorizar os seus recursos do Pub/Sub.
- Saiba como configurar o VPC Service Controls para a partilha do BigQuery.