Partilha de streams com o Pub/Sub

Pode partilhar tópicos do Pub/Sub através da partilha do BigQuery para organizar e distribuir uma biblioteca de dados de streaming por 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, estimativas e ordens de instrumentos que mudam rapidamente em tempo real
    • Detetar branqueamento de capitais e fraudes de pagamento
    • Suporte cálculos de risco de negociação
  • Retalho e bens de grande consumo (CPG):
    • Ajudar as lojas a gerir o inventário em tempo real
    • Personalize o marketing e o apoio ao cliente
    • Ajuste os preços dinamicamente
    • Monitorize os canais de redes sociais
    • Otimize os esquemas das lojas físicas
  • Cuidados de saúde:
    • Potencie os algoritmos preditivos para monitorizar os pacientes e analisar o risco em tempo real
    • Monitorize sinais vitais com dispositivos médicos wearable
    • Aquisição, estruturação, armazenamento e processamento automáticos de dados de pacientes, profissionais de saúde e administração de instalações
  • Telecomunicações:
    • Reveja o estado da rede e preveja 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:

Interação
entre os publicadores do centro de análise e a partilha.
Figura 1. Fluxo de trabalho de publicador e subscritor do Analytics Hub com tópicos Pub/Sub.

Tópicos partilhados

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

Fichas

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

Bolsas

Uma bolsa é 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 associada no projeto do subscritor. Uma subscrição do Pub/Sub também é representada no projeto do publicador 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 pode ter 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, subscrições 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
    • As 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

Enquanto publicador do Analytics Hub, 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, tem de ter a função de publicador do Analytics Hub (roles/analyticshub.publisher) numa troca ou numa ficha. Para ver todas as trocas de dados em todos os projetos de uma 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 do Analytics Hub a autorização pubsub.schemas.get no esquema anexado ao tópico. Isto permite que os subscritores do Analytics Hub 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)

    É apresentada uma página com todas as trocas de dados às quais pode aceder.

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

  3. Clique em Criar ficha.

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

  5. Selecione um tópico do Pub/Sub existente no menu pendente Tópico partilhado ou clique em Criar um tópico.

  6. Na página Detalhes da ficha, em 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 podem filtrar as fichas com base nestas categorias.

    • Afinidade de dados: regiões usadas pelo publicador para publicar os dados. Estas informações são úteis para os subscritores minimizarem ou evitarem os custos de saída da rede do Pub/Sub lendo os 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 um tamanho de ficheiro inferior a 512 KiB e dimensões não superiores a 512 x 512 píxeis.

    • Descrição: uma breve descrição sobre a sua ficha. Os subscritores podem pesquisar fichas com base na descrição.

    • Visibilidade pública: ative a visibilidade pública da sua ficha no catálogo de partilha do BigQuery. Também tem de definir autorizações para a ficha. Clique em Ações da troca e em Definir autorizações. Atribua à função allUsers ou allAuthenticatedusers a função de leitor do centro do Analytics. Clique em Permitir acesso público.

    • Documentação > Remarcação: informações adicionais, como links para documentação relevante e informações adicionais que possam ajudar os subscritores 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 email ou um URL do contacto principal da ficha.

    • Contacto de pedido de acesso: introduza um email ou um URL do formulário de admissão para os subscritores entrarem 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 email ou um URL do contacto principal do fornecedor do tópico.

      Os subscritores podem filtrar as 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 que está a criar a ficha.
      • Contacto principal do publicador: um email ou um URL do contacto principal do publicador do tópico.
  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 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 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 nos 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 método projects.locations.dataExchanges.listings.patch.

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 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 com subscrições ativas. Revogue todas as subscrições ativas antes de tentar eliminar uma ficha de tópico partilhada. Não é possível 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 eliminar.

  6. Clique em Eliminar.

API

Use o método projects.locations.dataExchanges.listings.delete.

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

Se quiser conceder aos utilizadores acesso a uma ficha privada, tem de definir a 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úblicos aparecem em Partilha para todos os utilizadores do Google Cloud (allAuthenticatedUsers). Para permitir que os utilizadores solicitem acesso a fichas comerciais, tem de conceder-lhes a função de leitor do Analytics Hub.

Para conceder aos utilizadores acesso à visualização ou à subscrição da sua ficha, siga estes passos:

  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 à qual quer adicionar subscritores.

  4. Clique em Definir autorizações.

  5. Para adicionar diretores, clique em Adicionar diretor.

  6. No campo Novos diretores, adicione os seguintes detalhes com base no tipo de ficha:

    • Para uma ficha privada, introduza os emails da identidade à qual quer conceder acesso.
    • Para uma ficha pública, adicione allAuthenticatedUsers.
  7. No menu Selecionar uma função, selecione Analytics Hub e, de seguida, com base no tipo de ficha, selecione uma das seguintes funções:

    • 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 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 as subscrições.

  3. Clique na ficha de empresa para a qual quer apresentar todos os subscritores.

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

Pode eliminar e atualizar subscritores em qualquer altura clicando em Definir autorizações.

Revogue uma subscrição

Para remover uma subscrição de uma lista de tópicos partilhada da partilha, selecione uma das seguintes opções:

Consola

  1. Para listar todos os subscritores de uma ficha, siga as Google Cloud instruções da consola em Veja 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 revogar 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.

Ao revogar uma subscrição da partilha do BigQuery, um subscritor deixa de receber dados de mensagens do tópico partilhado. A subscrição do Pub/Sub é desanexada do tópico partilhado. Se uma subscrição for eliminada diretamente do Pub/Sub, a subscrição de partilha do BigQuery vai persistir e tem de ser limpa.

Fluxos de trabalho de subscritores

Enquanto subscritor do Analytics Hub, pode ver e subscrever uma ficha. A subscrição de uma ficha de um tópico partilhado cria uma subscrição do Pub/Sub associada no projeto do subscritor. A subscrição do Pub/Sub vai estar visível no projeto do publicador.

Autorizações adicionais para subscritores

Tem de ter a função 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 tem acesso, siga os passos em Ver fichas.

  2. Procure as fichas e clique numa que queira 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 a API Analytics Hub ativada 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 o mecanismo de fornecimento dos dados de mensagens.
    • Duração da retenção de mensagens: defina a duração da retenção de mensagens.
    • Período de expiração: definido para quando a subscrição expira após inatividade, se for o caso.
    • Prazo de confirmação: defina a hora do prazo de confirmação.
    • Filtro de subscrição: defina a sintaxe do filtro nas 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 ordem.
    • 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 o artigo 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 método projects.locations.dataExchanges.listings.subscribe.

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 à qual 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

Não existe qualquer custo adicional para os publicadores de tópicos do Pub/Sub listarem e partilharem tópicos através da partilha. Os publicadores são cobrados pelo número total de bytes escritos (débito de publicação) no tópico partilhado e na saída da rede (se aplicável). Os subscritores são cobrados pelo número total de bytes lidos (débito de subscrição) da subscrição associada e da saída de rede (se aplicável). Consulte os preços do Pub/Sub para ver detalhes adicionais.

VPC Service Controls

Para tópicos partilhados de projetos que tenham perímetros dos VPC Service Controls, pode definir as regras de entrada e saída adequadas necessárias para conceder acesso a publicadores e subscritores.