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:

Arquitetura

O diagrama seguinte descreve como os publicadores e os subscritores de recursos do Pub/Sub interagem com a partilha do BigQuery:

Fluxo de trabalho que ilustra a interação entre os publicadores de tópicos partilhados e a partilha do BigQuery.
Figura 1. Fluxo de trabalho de publicador e subscritor de tópicos partilhados com tópicos Pub/Sub.

Tópicos partilhados

Um tópico partilhado é a unidade de partilha de um tópico Pub/Sub na partilha do BigQuery. Como publicador de tópicos partilhados, cria ou usa um tópico do Pub/Sub existente para distribuir dados de mensagens aos subscritores. A partilha do BigQuery não replica o tópico do Pub/Sub de origem.

Fichas

É criada uma ficha quando um publicador adiciona um tópico partilhado a uma troca. Faz referência ao tópico partilhado.

Bolsas

Uma troca é um agrupamento lógico de fichas que fazem referência a tópicos partilhados.

Subscrições do Pub/Sub associadas

Quando subscreve uma ficha com um tópico partilhado, é criada uma subscrição do Pub/Sub no projeto do subscritor do tópico partilhado. O projeto do publicador do tópico partilhado também representa uma subscrição do Pub/Sub como uma subscrição do Pub/Sub e uma subscrição da ficha de partilha.

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.

Ative a API Analytics Hub

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.

Ative a API Pub/Sub

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

  1. 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.

  2. Clique no nome da troca de dados onde quer criar a ficha.

  3. Clique em Criar ficha.

  4. Na página Criar ficha, selecione "Tópico do Pub/Sub" na lista Tipo de recurso.

  5. Selecione um tópico do Pub/Sub existente na lista Tópico partilhado ou clique em Criar um tópico.

  6. Na página Detalhes da ficha, no campo Nome a apresentar, introduza o nome da ficha.

  7. 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 allUsers ou allAuthenticatedusers a 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.

  8. 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.
  9. Reveja a página Pré-visualização da ficha.

  10. 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

  1. Aceda à página Partilha (Centro de análise).

    Aceda à partilha (Analytics Hub)

  2. Clique no nome da troca de dados que contém a ficha.

  3. Clique na ficha que quer atualizar.

  4. Clique em Editar ficha.

  5. Modifique os valores dos campos. Pode modificar todos os valores, exceto o tópico partilhado da ficha.

  6. 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

  1. Aceda à página Partilha (Centro de análise).

    Aceda à partilha (Analytics Hub)

  2. Clique no nome da troca de dados que contém a ficha.

  3. Clique na ficha que quer eliminar.

  4. Clique em Eliminar.

  5. Na caixa de diálogo Eliminar ficha?, confirme a eliminação escrevendo delete.

  6. 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:

  1. Aceda à página Partilha (Centro de análise).

    Aceda à partilha (Analytics Hub)

  2. Clique no nome da troca de dados que contém a ficha.

  3. Clique na ficha onde quer adicionar subscritores de tópicos partilhados.

  4. Clique em Definir autorizações.

  5. Para adicionar diretores, clique em Adicionar diretor.

  6. 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.
  7. 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.
  8. 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:

  1. Aceda à página Partilha (Centro de análise).

    Aceda à partilha (Analytics Hub)

  2. Clique no nome da troca de dados que contém a ficha para a qual quer gerir subscrições.

  3. Clique na ficha para a qual quer listar os subscritores de tópicos partilhados.

  4. Clique em Definir autorizações.

  5. Para adicionar diretores, clique em Adicionar diretor.

  6. No campo Novos responsáveis, introduza os nomes de utilizador ou os endereços de email dos subscritores que quer adicionar.

  7. Para Selecionar uma função, selecione Analytics Hub > Subscritor do Analytics Hub.

  8. Clique em Adicionar outra função.

  9. Para Selecionar uma função, selecione Analytics Hub > Proprietário da subscrição do Analytics Hub.

  10. 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

  1. 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.

  2. Clique no separador Subscrições para ver todas as subscrições da troca de dados.

  3. Selecione a caixa de verificação junto às subscrições que quer remover ou selecione todas as subscrições.

  4. Na caixa de diálogo Revogar subscrição?, introduza revoke para confirmar.

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

  1. Para ver uma lista das fichas às quais pode aceder, siga os passos descritos no artigo Ver fichas.

  2. Procure as fichas e clique numa ficha à qual quer subscrever. É apresentada uma caixa de diálogo com os detalhes da ficha.

  3. Clique em Subscrever para abrir a caixa de diálogo Criar subscrição.

  4. 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.

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

  6. 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?