Compartilhamento de stream com o Pub/Sub

É possível compartilhar tópicos do Pub/Sub pelo Analytics Hub para selecionar 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 compartilhados usando as trocas e listagens do Analytics Hub, permitindo que você categorize e agrupe de forma lógica grandes conjuntos de tópicos do Pub/Sub e provisioneie o acesso em grande escala.

Você pode compartilhar dados de streaming para fazer o seguinte:

  • Serviços financeiros:
    • Compartilhe preços, cotações e pedidos de instrumentos em tempo real
    • Detectar lavagem de dinheiro e fraudes de pagamento
    • Oferecer suporte a cálculos de risco de negociação
  • Bens de consumo não duráveis e de varejo (CPG):
    • Ajudar as lojas a gerenciar o inventário em tempo real
    • Personalizar o marketing e o suporte ao cliente
    • Ajustar os preços de forma dinâmica
    • Monitorar canais de mídias sociais
    • Otimizar layouts de lojas físicas
  • Saúde:
    • Use algoritmos preditivos para monitorar pacientes e analisar riscos em tempo real
    • Monitorar sinais vitais com dispositivos médicos portáteis
    • 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:
    • Analisar a integridade da rede e prever falhas
    • Descobrir padrões de comportamento do usuário para localizar melhor dispositivos e antenas

Papéis

Os papéis para compartilhar tópicos do Pub/Sub são análogos ao compartilhamento de conjuntos de dados do BigQuery:

Arquitetura

O diagrama a seguir descreve como os editores e assinantes dos recursos do Pub/Sub interagem com o Analytics Hub:

Interação entre editores do Analytics Hub e o Analytics Hub.
Figura 1. Fluxo de trabalho do editor e assinante do Analytics Hub com tópicos do Pub/Sub.

Tópicos compartilhados

Um tópico compartilhado é a unidade de compartilhamento de um tópico do Pub/Sub no Analytics Hub. Como editor, você cria ou usa um tópico do Pub/Sub para distribuir dados de mensagens aos assinantes. O Analytics Hub não replica o tópico do Pub/Sub de origem.

Listagens

Uma listagem é criada quando um editor adiciona um tópico compartilhado a uma troca. Ele contém uma referência ao tópico compartilhado.

Exchanges

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

Assinaturas do Pub/Sub vinculadas

Quando você se inscreve em uma listagem com um tópico compartilhado, uma assinatura do Pub/Sub vinculada é criada no projeto do assinante. Uma assinatura do Pub/Sub também é representada no projeto do editor como uma assinatura do Pub/Sub e uma assinatura da listagem do Analytics Hub.

Limitações

O compartilhamento de stream com o Pub/Sub tem as seguintes limitações:

  • Um tópico compartilhado pode ter no máximo 10.000 assinaturas do Pub/Sub. Esse limite inclui assinaturas vinculadas do Pub/Sub e assinaturas do Pub/Sub criadas fora do Analytics Hub, por exemplo, assinaturas criadas diretamente do Pub/Sub.
  • Os tópicos compartilhados são indexados no Data Catalog, mas não é possível filtrar especificamente pelo tipo de recurso.
  • As métricas de uso não são capturadas para assinaturas do Pub/Sub vinculadas no Analytics Hub. É possível conferir as métricas de uso no Pub/Sub.

Ativar a API Analytics Hub

Para ativar a API Analytics Hub, faça o seguinte:

Console

Acesse a biblioteca de APIs e ative a API Analytics Hub para seu projeto do Google Cloud.

Ativar a API Analytics Hub

gcloud

Execute o comando gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Habilitar a API Pub/Sub

Acesse a Biblioteca de APIs e ative a API Pub/Sub no seu projeto do Google Cloud.

Habilitar a API Pub/Sub

Fluxos de trabalho do editor

Como editor do Analytics Hub, você pode fazer o seguinte:

  • Adicionar tópicos compartilhados a uma troca criando uma listagem
  • Atualizar uma listagem
  • Excluir uma listagem
  • Compartilhar um anúncio
  • Gerenciar as inscrições na sua página
  • Remover assinantes da sua listagem

Outras permissões do editor

Para realizar tarefas de editor, você precisa ter o papel de editor do Analytics Hub (roles/analyticshub.publisher) em uma troca ou listagem. Para conferir todas as trocas de dados nos projetos em uma organização a que você tem acesso, é preciso ter a permissão resourcemanager.organizations.get.

Além disso, você precisa da permissão pubsub.topics.setIamPolicy no tópico do Pub/Sub que você quer listar. Para compartilhar tópicos com um esquema anexado, conceda aos assinantes do Analytics Hub a permissão pubsub.schemas.get no esquema anexado ao tópico. Isso permite que os assinantes do Analytics Hub analisem corretamente as mensagens da assinatura do Pub/Sub.

Criar uma ficha (para adicionar um tópico compartilhado)

Para adicionar um tema compartilhado a uma ficha, selecione uma das seguintes opções:

Console

  1. Acesse a página do Analytics Hub.

    Acessar o Analytics Hub

    Será exibida uma página que lista todas as trocas de dados que é possível acessar.

  2. Clique no nome da troca de dados na qual você quer criar a listagem.

  3. Clique em Criar listagem.

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

  5. Selecione um tópico do Pub/Sub no menu suspenso Tópico compartilhado ou clique em Criar um tópico.

  6. Na página Detalhes da listagem, em Nome de exibição, insira o nome da listagem.

  7. Digite os seguintes detalhes opcionais:

    • Categoria: selecione até duas categorias que melhor representam sua listagem. Os assinantes podem filtrar as listagens com base nessas categorias.

    • Afinidade de dados: regiões usadas pelo editor para publicar os dados. Essas informações são úteis para os assinantes minimizarem ou evitarem os custos de saída de rede do Pub/Sub lendo os dados da mesma região. Para mais informações sobre custos de saída, consulte Custos de transferência de dados.

    • Ícone: um ícone para a listagem. Os formatos de arquivo PNG e JPEG são compatíveis. O tamanho do arquivo dos ícones precisa ser inferior a 512 KiB e dimensões de no máximo 512 x 512 pixels.

    • Descrição: uma breve descrição sobre sua listagem. Os assinantes podem pesquisar listagens com base na descrição.

    • Descoberta pública: ative a descoberta pública da sua listagem no catálogo do Analytics Hub. Você também precisa definir permissões para a ficha. Clique em Ações na troca e em Definir permissões. Conceda a allUsers ou allAuthenticatedusers o papel de leitor do Analytics Hub. Clique em Permitir acesso público.

    • Documentação > Markdown: informações adicionais, como links para qualquer documento relevante e qualquer informação adicional que possa ajudar os assinantes a usar seu tópico.

  8. Na página Informações de contato da página de detalhes, insira os seguintes detalhes opcionais:

    • Contato principal: insira um e-mail ou um URL do contato principal da listagem.

    • Solicitar contato de acesso: insira um e-mail ou URL do formulário de entrada para que os assinantes entrem em contato com você.

    • Provedor: expanda a seção Provedor e especifique os detalhes nos seguintes campos:

      • Nome do provedor: o nome do provedor do tópico.
      • Contato principal do provedor: um e-mail ou um URL do contato principal do provedor do tópico.

      Os assinantes podem filtrar listagens com base nos provedores de dados.

    • Editor: expanda a seção Editor e especifique os detalhes nos campos a seguir:

      • Nome do editor: nome do editor que está criando a listagem.
      • Contato principal do editor: um e-mail ou um URL do contato principal do editor do tópico.
  9. Revise a página Prévia da ficha.

  10. Clique em Publicar.

API

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

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID

Substitua:

  • PROJECT_ID: o ID do projeto que contém a troca de dados em que você quer criar a ficha da empresa.
  • LOCATION: o local da troca de dados. Para mais informações sobre locais que aceitam o Analytics Hub, consulte Regiões compatíveis.
  • DATAEXCHANGE_ID: o ID da troca de dados.
  • LISTING_ID: o ID da ficha da empresa.

No corpo da solicitação, forneça os detalhes da listagem. Se a solicitação for bem-sucedida, o corpo da resposta conterá detalhes da listagem.

Para mais informações sobre as tarefas que podem ser executadas em fichas de empresa usando APIs, consulte Métodos projects.locations.dataExchanges.listings.

Atualizar uma listagem

Para atualizar uma ficha, selecione uma das seguintes opções:

Console

  1. Acesse a página do Analytics Hub.

    Acessar o Analytics Hub

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

  3. Clique na listagem que você quer atualizar.

  4. Clique em Editar listagem.

  5. Modifique os valores nos campos. É possível modificar todos os valores, exceto o tema compartilhado da listagem.

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

  • PROJECT_ID: o ID do projeto que contém a troca de dados em que você quer criar a ficha da empresa.
  • LOCATION: o local da troca de dados. Para mais informações sobre locais que aceitam o Analytics Hub, consulte Regiões compatíveis.
  • DATAEXCHANGE_ID: o ID da troca de dados.
  • LISTING_ID: o ID da ficha da empresa.
  • UPDATEMASK: a lista de campos que você quer atualizar. Para atualizar vários valores, use uma lista separada por vírgulas.

No corpo da solicitação, especifique os valores atualizados.

Para mais informações sobre as tarefas que podem ser executadas em fichas de empresa usando APIs, consulte Métodos projects.locations.dataExchanges.listings.

Excluir uma listagem

As listagens com tópicos compartilhados do Pub/Sub não podem ser excluídas com assinaturas ativas. Revogue todas as assinaturas ativas antes de tentar excluir uma página de tópico compartilhada. Não é possível desfazer a exclusão de uma listagem. Para excluir uma ficha, selecione uma das seguintes opções:

Console

  1. Acesse a página do Analytics Hub.

    Acessar o Analytics Hub

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

  3. Clique na listagem que você quer excluir.

  4. Clique em Excluir.

  5. Na caixa de diálogo Excluir lista?, confirme a exclusão digitando Excluir.

  6. Clique em Excluir.

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:

  • PROJECT_ID: o ID do projeto que contém a troca de dados em que você quer criar a ficha da empresa.
  • LOCATION: o local da troca de dados. Para mais informações sobre locais que aceitam o Analytics Hub, consulte Regiões compatíveis.
  • DATAEXCHANGE_ID: o ID da troca de dados.
  • LISTING_ID: o ID da ficha da empresa.

Para mais informações sobre as tarefas que podem ser executadas em fichas de empresa usando APIs, consulte Métodos projects.locations.dataExchanges.listings.

Compartilhar um anúncio

Se você quiser permitir que os usuários acessem uma listagem particular, defina a política do IAM para um indivíduo ou um grupo para essa listagem. No caso de uma listagem comercial, sua troca de dados precisa ser pública. As listagens em uma troca de dados pública aparecem no Analytics Hub para todos os usuários do Google Cloud (allAuthenticatedUsers). Para permitir que os usuários solicitem acesso a listagens comerciais, é necessário conceder a eles o papel de leitor do Analytics Hub.

Para conceder aos usuários acesso para ver ou se inscrever na sua listagem, siga estas etapas:

  1. Acesse a página do Analytics Hub.

    Acessar o Analytics Hub

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

  3. Clique na ficha que você quer adicionar inscritos.

  4. Clique em Definir permissões.

  5. Para adicionar participantes, clique em Adicionar participante.

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

    • Para uma listagem particular, insira e-mails da identidade a quem você quer conceder acesso.
    • Para uma ficha pública, adicione allAuthenticatedUsers.
  7. Em Selecionar um papel, mantenha o ponteiro sobre o Analytics Hub e, com base no tipo de ficha, selecione um dos seguintes papéis:

    • Para uma listagem comercial, selecione a função Leitor do Analytics Hub. Com esse papel, os usuários podem acessar a listagem e solicitar acesso.
    • Para uma listagem particular ou pública não comercial, selecione a função Assinante do Analytics Hub. Este papel permite que os usuários assinem a ficha.
  8. Clique em Salvar.

Para mais informações, consulte Papéis de Assinante e Leitor do Analytics Hub.

Gerenciar assinaturas

Para permitir que um usuário se inscreva em uma listagem com um tópico compartilhado, conceda a ele os papéis de Assinante do Analytics Hub (roles/analyticshub.subscriber) e Proprietário da assinatura do Analytics Hub (roles/analyticshub.subscriptionOwner) em uma listagem específica:

  1. Acesse a página do Analytics Hub.

    Acessar o Analytics Hub

  2. Clique no nome da troca de dados que contém a listagem para que você quer gerenciar as assinaturas.

  3. Clique na listagem para que você quer listar todos os assinantes.

  4. Clique em Definir permissões.

  5. Para adicionar participantes, clique em Adicionar participante.

  6. No campo Novos participantes, insira os nomes de usuário ou os e-mails dos assinantes que você quer adicionar.

  7. Em Selecionar uma função, escolha Analytics Hub > Assinante do Analytics Hub.

  8. Clique em Adicionar outro papel.

  9. Em Selecionar uma função, escolha Analytics Hub > Proprietário de assinatura do Analytics Hub.

  10. Clique em Salvar.

Você pode excluir e atualizar os assinantes a qualquer momento clicando em Definir permissões.

Revogar uma assinatura

Para remover uma assinatura de uma listagem de tópico compartilhado do Analytics Hub, selecione uma das seguintes opções:

Console

  1. Para listar todos os assinantes de uma listagem, siga as instruções do console do Google Cloud em Ver todas as assinaturas.

  2. Clique na guia Assinaturas para conferir todas as assinaturas na troca de dados.

  3. Marque a caixa de seleção ao lado das assinaturas que você quer remover ou selecione todas.

  4. Na caixa de diálogo Revogar assinatura?, digite "revogar" para confirmar.

  5. Clique em Revogar.

API

Para remover uma assinatura, use o método projects.locations.subscriptions.revoke.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke

Substitua:

  • PROJECT_ID: o ID do projeto da assinatura que você quer remover.
  • LOCATION: o local da assinatura.
  • SUBSCRIPTION_ID: o ID da assinatura que você quer remover.

Ao revogar uma assinatura do Analytics Hub, o assinante não recebe mais dados de mensagens do tópico compartilhado. A assinatura do Pub/Sub é removida do tópico compartilhado. Se uma assinatura for excluída diretamente do Pub/Sub, a assinatura do Analytics Hub vai persistir e precisará ser limpa.

Fluxos de trabalho de inscritos

Como assinante do Analytics Hub, você pode acessar e se inscrever em uma listagem. A inscrição em uma listagem de um tópico compartilhado cria uma assinatura do Pub/Sub vinculada no projeto do assinante. A assinatura do Pub/Sub vai aparecer no projeto do editor.

Permissões adicionais de assinante

É necessário ter o papel de assinante do Analytics Hub (roles/analyticshub.subscriber) concedido no nível do projeto, da troca ou da listagem para realizar tarefas de assinante.

Assinar uma página de detalhes de um tópico compartilhado

Para assinar uma listagem com um tópico compartilhado, selecione uma das seguintes opções:

Console

  1. Para conferir uma lista de listagens às quais você tem acesso, siga as etapas em Ver listagens.

  2. Navegue pelas listagens e clique naquela que você quer assinar. Uma caixa de diálogo com os detalhes da listagem será exibida.

  3. Clique em Assinar para abrir a caixa de diálogo Criar assinatura.

  4. Se a API Analytics Hub não estiver ativada no projeto, uma mensagem de erro vai aparecer com um link para ativar a API. Clique em Ativar a API Analytics Hub.

  5. Na caixa de diálogo Criar assinatura, especifique os seguintes detalhes:

    • ID da assinatura:especifique o nome da assinatura que você está criando.
    • Tipo de entrega:selecione o mecanismo de entrega dos dados da mensagem.
    • Duração da retenção de mensagens:defina a duração da retenção de mensagens.
    • Período de expiração:defina quando a assinatura vai expirar após a inatividade, se isso acontecer.
    • Prazo de confirmação:defina o prazo de confirmação.
    • Filtro de assinatura:defina a sintaxe do filtro nas mensagens.
    • Entrega exatamente uma vez:ative a entrega exatamente uma vez.
    • Ordem das mensagens:ative a ordenação das mensagens com uma chave de ordem.
    • Mensagens mortas:ative as mensagens mortas.
    • Política de repetição:defina uma política de repetição.

    Para mais informações sobre as propriedades de assinatura do Pub/Sub, consulte Propriedades de assinatura.

  6. Para salvar as alterações, clique em Criar. A assinatura vinculada do Pub/Sub é 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:

  • PROJECT_ID: o ID do projeto da ficha da empresa em que você quer se inscrever.
  • LOCATION: o local da ficha em que você quer se inscrever.
  • DATAEXCHANGE_ID: o ID da troca de dados da ficha da empresa em que você quer se inscrever.
  • LISTING_ID: o ID da ficha da empresa em que você quer se inscrever.

No corpo da solicitação, especifique a assinatura do Pub/Sub em que você quer criar a assinatura vinculada do Pub/Sub. Se a solicitação for concluída, o corpo da resposta estará vazio.

Para mais informações sobre assinaturas do Pub/Sub, consulte Visão geral das assinaturas.

Preços

Não há cobrança extra para que os editores de tópicos do Pub/Sub listem e compartilhem tópicos pelo Analytics Hub. Os editores são cobrados pelo número total de bytes gravados (capacidade de publicação) no tópico compartilhado e na saída da rede (se aplicável). Os assinantes são cobrados pelo número total de bytes lidos (capacidade de assinatura) da assinatura vinculada e da saída de rede (se aplicável). Consulte os preços do Pub/Sub para mais detalhes.

VPC Service Controls

Para tópicos compartilhados de projetos com perímetros do VPC Service Controls, é possível definir as regras de entrada e saída adequadas para conceder acesso a editores e assinantes.