Compartilhamento de stream com o Pub/Sub
O compartilhamento do BigQuery (antigo Analytics Hub) permite compartilhar tópicos do Pub/Sub para organizar e distribuir dados de streaming em tempo real entre organizações internas e externas. Usando trocas de dados e listagens, é possível categorizar e agrupar grandes conjuntos de tópicos do Pub/Sub e provisionar o acesso em escala.
Casos de uso
É possível compartilhar dados de streaming para dar suporte a casos de uso nos seguintes setores:
- Serviços financeiros:
- Compartilhe preços de instrumentos, cotações e pedidos que mudam rapidamente em tempo real.
- Detectar lavagem de dinheiro e fraude de pagamento.
- Oferecer suporte a cálculos de risco comercial.
- Bens de consumo não duráveis e de varejo (CPG):
- Gerencie o inventário da loja em tempo real.
- Personalizar o marketing e o suporte ao cliente.
- Ajuste os preços de forma dinâmica.
- Monitore os canais de mídias sociais.
- Otimizar os layouts das lojas físicas.
- Saúde:
- Capacite algoritmos preditivos para monitorar pacientes e analisar riscos em tempo real.
- Monitorar sinais vitais com dispositivos médicos wearable.
- Adquira, estruture, armazene e processe automaticamente dados de pacientes, profissionais de saúde e administração de instalações.
- Telecomunicações:
- Monitorar a integridade da rede e prever falhas.
- Descubra padrões de comportamento do usuário para localizar melhor dispositivos e antenas.
Papéis de compartilhamento por fluxo
Os papéis do Identity and Access Management (IAM) para compartilhar tópicos do Pub/Sub são semelhantes aos papéis para compartilhar conjuntos de dados do BigQuery:
- Administrador: gerencia permissões, visibilidade e associação de trocas e listagens. Esse papel é análogo ao papel do IAM de
Administrador do Analytics Hub
(
roles/analyticshub.admin). - Editor de tópicos compartilhados: cria, gerencia e concede acesso a listagens
dos tópicos compartilhados do Pub/Sub. Esse papel é análogo ao papel do IAM de
Editor do Analytics Hub
(
roles/analyticshub.publisher) ou Administrador de listagens do Analytics Hub (roles/analyticshub.listingAdmin). O editor é um usuário, não o aplicativo do editor que cria e envia mensagens para o tópico. - Assinante do tópico compartilhado: assina a listagem do tópico compartilhado e
configura como o Pub/Sub entrega as mensagens do tópico. Esse papel é
análogo ao papel do IAM de
assinante do Analytics Hub
(
roles/analyticshub.subscriber) ou proprietário de assinatura do Analytics Hub (roles/analyticshub.subscriptionOwner). Dependendo de como o Pub/Sub entrega os dados da mensagem, talvez sejam necessárias outras permissões, como permissões de conta de serviço do Pub/Sub para gravar mensagens no BigQuery.
Arquitetura
O diagrama a seguir mostra como os editores e assinantes de recursos do Pub/Sub interagem com o BigQuery Sharing:
O compartilhamento de stream com o Pub/Sub usa os seguintes componentes:
- Temas compartilhados
- Um tópico compartilhado é a unidade para compartilhar um tópico do Pub/Sub no BigQuery Sharing. Como editor de um tópico compartilhado, você cria ou usa um tópico do Pub/Sub para distribuir dados de mensagens aos assinantes. O BigQuery Sharing não replica o tópico de origem do Pub/Sub.
- Listagens
- Quando um editor adiciona um tópico compartilhado a uma troca, o BigQuery Sharing cria uma listagem que faz referência ao tópico compartilhado.
- Trocas
- Uma troca é um grupo lógico de listagens que fazem referência a tópicos compartilhados.
- Assinaturas do Pub/Sub vinculadas
- Quando um assinante se inscreve em uma listagem com um tópico compartilhado, o BigQuery Sharing cria uma assinatura do Pub/Sub vinculada no projeto do assinante. No projeto do editor do tópico compartilhado, a assinatura aparece como uma assinatura do Pub/Sub e uma assinatura de listagem do BigQuery Sharing.
Limitações
O compartilhamento de stream com o Pub/Sub tem as seguintes limitações:
- Um tópico compartilhado aceita 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 BigQuery Sharing, como assinaturas criadas diretamente no Pub/Sub.
Os tópicos compartilhados são indexados no Knowledge Catalog, mas não é possível filtrar especificamente pelo tipo de recurso.
As métricas de uso são capturadas e exibidas no painel de métricas para tópicos e assinaturas compartilhados do Pub/Sub, mas não estão disponíveis na visualização
INFORMATION_SCHEMA.SHARED_DATASET_USAGE.Essas métricas podem incluir:
- Publicar contagem de mensagens
- Publicar solicitações
- Capacidade de publicação em bytes
- As 5 principais assinaturas
- Bytes ingeridos
Para monitorar métricas, consulte Monitorar o Pub/Sub no Cloud Monitoring.
Antes de começar
Antes de compartilhar ou se inscrever em tópicos do Pub/Sub no compartilhamento do BigQuery, ative as APIs necessárias.
Ativar a API Analytics Hub
Para ativar a API Analytics Hub, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Biblioteca de APIs e ative a API Analytics Hub para o projeto do Google Cloud .
gcloud
Ative a API Analytics Hub usando o
comando gcloud services enable:
gcloud services enable analyticshub.googleapis.com
Habilitar a API Pub/Sub
Para ativar a API Pub/Sub, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Biblioteca de APIs e ative a API Pub/Sub para o projeto do Google Cloud .
gcloud
Ative a API Pub/Sub usando o
comando gcloud services enable:
gcloud services enable pubsub.googleapis.com
Fluxos de trabalho do editor de tópicos compartilhados
Como editor de um tópico compartilhado, você pode fazer o seguinte:
- Adicionar temas compartilhados a uma troca criando uma listagem.
- Atualizar uma listagem.
- Excluir uma listagem.
- Compartilhar uma listagem.
- Gerenciar assinaturas da sua listagem.
- Remover assinantes da sua listagem.
Outras permissões de editor
Para realizar tarefas de editor de tópicos compartilhados, você precisa ter o
papel de editor do Analytics Hub
(roles/analyticshub.publisher) em uma troca ou listagem. Para ver todas as
trocas de dados
a que você tem acesso nos projetos de uma organização, é 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 quer listar. Para compartilhar tópicos com um esquema
anexado, é preciso conceder aos assinantes do BigQuery Sharing a
permissão pubsub.schemas.get no esquema anexado ao tópico. Essa
permissão permite que os assinantes do BigQuery Sharing analisem mensagens da
assinatura do Pub/Sub.
Criar uma listagem de tópicos compartilhados
Para adicionar um tópico compartilhado a uma troca criando uma listagem, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Compartilhamento (Analytics Hub).
Acessar Compartilhamento (Analytics Hub)
A página lista todas as trocas de dados que você pode visualizar.
Clique no nome da troca de dados em que você quer criar a listagem.
Clique em Criar listagem.
Na página Criar listagem, na lista Tipo de recurso, selecione Tópico do Pub/Sub.
Na lista Tópico compartilhado, selecione um tópico do Pub/Sub ou clique em Criar um tópico.
Na página Detalhes da listagem, no campo Nome de exibição, insira o nome da listagem.
Opcional: digite os seguintes detalhes:
Categoria: selecione até cinco categorias que melhor representam sua listagem. Os assinantes de tópicos compartilhados podem filtrar as listagens com base nessas categorias.
Afinidade de dados: especifique as regiões em que você publica dados no tópico compartilhado. Essas informações ajudam os assinantes de tópicos compartilhados a minimizar ou evitar custos de saída de rede do Pub/Sub lendo dados da mesma região. Para mais informações sobre custos de saída, consulte Custos de transferência de dados.
Ícone: faça upload de um ícone PNG ou JPEG para a página de detalhes. Os ícones precisam ser menores que 512 KiB e ter dimensões de no máximo 512 x 512 pixels.
Descrição: insira uma breve descrição da sua listagem. Os assinantes de tópicos compartilhados podem pesquisar listagens com base na descrição.
Facilidade de descoberta pública: ative a facilidade de descoberta pública para sua listagem no catálogo do BigQuery Sharing. Depois de criar a listagem, você também precisa conceder a
allUsersouallAuthenticatedUserso papel de Leitor do Analytics Hub (roles/analyticshub.viewer) na listagem. Se a troca de dados já for pública, a listagem vai herdar essas permissões e não vai exigir mais nenhuma ação.Documentação > Markdown: insira outras informações, como links para documentações relevantes e outros detalhes que ajudam os assinantes do tópico compartilhado a usá-lo.
Opcional: na página Informações de contato da listagem, insira os seguintes detalhes:
Contato principal: insira um endereço de e-mail ou URL do contato principal da listagem.
Contato para solicitar acesso: insira um endereço de e-mail ou URL do formulário de entrada que os assinantes do tópico compartilhado podem usar para entrar em contato com você.
Provedor: expanda a seção Provedor e especifique os detalhes nos seguintes campos:
- Nome do provedor: insira o nome do provedor de tópicos.
- Contato principal do provedor: insira um endereço de e-mail ou URL do contato principal do provedor do tópico.
Os assinantes de tópicos compartilhados 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: insira seu nome ou o nome da sua organização como editor do tópico compartilhado.
- Contato principal do editor: insira um endereço de e-mail ou URL do seu contato principal como editor do tópico compartilhado.
Revise a página Visualização da ficha.
Para publicar a página de detalhes, clique em Publicar.
API
Use o
método projects.locations.dataExchanges.listings.create.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
Substitua:
PROJECT_ID: o ID do projeto que contém a troca de dados.LOCATION: o local da troca de dados. Para mais informações sobre locais que aceitam o BigQuery Sharing, consulte Regiões com disponibilidade.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 vai conter os 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 listagem, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Compartilhamento (Analytics Hub).
Clique no nome da troca de dados que contém a listagem.
Clique na listagem que você quer atualizar.
Clique em Editar listagem.
Modifique os valores dos campos. É possível modificar todos os valores, exceto o tópico compartilhado da listagem.
Para salvar as alterações, clique em Salvar.
API
Use o
método projects.locations.dataExchanges.listings.patch.
PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK
Substitua:
PROJECT_ID: o ID do projeto que contém a troca de dados.LOCATION: o local da troca de dados. Para mais informações sobre locais que aceitam o BigQuery Sharing, consulte Regiões com disponibilidade.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
Não é possível excluir listagens com tópicos compartilhados do Pub/Sub que tenham assinaturas ativas. Antes de excluir uma listagem de tópicos compartilhados, revogue todas as assinaturas ativas. Não é possível desfazer a exclusão de uma listagem.
Para excluir uma listagem, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Compartilhamento (Analytics Hub).
Clique no nome da troca de dados que contém a listagem.
Clique na listagem que você quer excluir.
Clique em Excluir.
Na caixa de diálogo Excluir listagem?, digite
deletepara confirmar a exclusão.Clique em Excluir.
API
Use o
método projects.locations.dataExchanges.listings.delete.
DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
Substitua:
PROJECT_ID: o ID do projeto que contém a troca de dados.LOCATION: o local da troca de dados. Para mais informações sobre locais que aceitam o BigQuery Sharing, consulte Regiões com disponibilidade.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 uma ficha
Para permitir que os usuários acessem uma listagem particular, defina uma 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 compartilhamento do BigQuery para todos os
usuários doGoogle Cloud (allAuthenticatedUsers).
Para permitir que os usuários solicitem acesso a listagens comerciais, conceda a eles o papel de Leitor do Analytics
Hub (roles/analyticshub.viewer).
Para conceder aos usuários acesso para ver ou se inscrever na sua listagem, faça o seguinte:
No console do Google Cloud , acesse a página Compartilhamento (Analytics Hub).
Clique no nome da troca de dados que contém a listagem.
Clique na listagem que você quer compartilhar.
Clique em Definir permissões.
Para adicionar principais, clique em Adicionar principal.
No campo Novos participantes, insira os detalhes com base no tipo de listagem:
- Para uma listagem particular, insira os endereços de e-mail dos principais a quem você quer conceder acesso.
- Para uma listagem pública, insira
allAuthenticatedUsers.
No menu Selecionar um papel, selecione Analytics Hub e, em seguida, selecione um dos seguintes papéis com base no tipo de listagem:
- Para uma listagem comercial, selecione Leitor do Analytics Hub. Com esse papel, os usuários podem ver a listagem e solicitar acesso.
- Para uma listagem particular ou pública não comercial, selecione Assinante do Analytics Hub. Com esse papel, os usuários podem fazer inscrição na listagem.
Para salvar as alterações, clique em Salvar.
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 de assinatura do Analytics Hub (roles/analyticshub.subscriptionOwner) na listagem.
Para conceder esses papéis em uma listagem, faça o seguinte:
No console do Google Cloud , acesse a página Compartilhamento (Analytics Hub).
Clique no nome da troca de dados que contém a listagem.
Clique na listagem para que você quer gerenciar as assinaturas.
Clique em Definir permissões.
Para adicionar principais, clique em Adicionar principal.
No campo Novos participantes, insira os nomes de usuário ou endereços de e-mail dos assinantes que você quer adicionar.
No menu Selecionar um papel, selecione Analytics Hub > Assinante do Analytics Hub.
Clique em Adicionar outro papel.
No menu Selecionar um papel, selecione Analytics Hub > Proprietário de assinatura do Analytics Hub.
Para salvar as alterações, clique em Salvar.
Você pode atualizar ou excluir assinantes a qualquer momento clicando em Definir permissões.
Revogar uma assinatura
Para remover uma assinatura de uma listagem de tópicos compartilhados do compartilhamento do BigQuery, selecione uma das seguintes opções:
Console
Para listar os assinantes de um tópico compartilhado em uma listagem, siga as Google Cloud instruções do console em Ver todas as assinaturas.
Para conferir todas as assinaturas da troca de dados, clique na guia Assinaturas.
Marque a caixa de seleção ao lado das assinaturas que você quer remover ou selecione todas e clique em Revogar.
Na caixa de diálogo Revogar assinatura?, insira
revokepara confirmar a revogação.Clique em Revogar.
API
Use o
método projects.locations.subscriptions.revoke.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
Substitua:
PROJECT_ID: o ID do projeto que contém a assinatura que você quer remover.LOCATION: o local da assinatura.SUBSCRIPTION_ID: o ID da assinatura que você quer remover.
Quando você revoga uma assinatura do BigQuery Sharing, um assinante de tópico compartilhado não recebe mais dados de mensagens do tópico compartilhado. A assinatura do Pub/Sub é removida do tópico compartilhado. Se você excluir uma assinatura diretamente do Pub/Sub, a assinatura do BigQuery Sharing vai persistir e você precisará excluir a assinatura no BigQuery Sharing.
Fluxos de trabalho de inscritos
Como assinante do BigQuery Sharing, é possível visualizar e assinar uma listagem. A inscrição em uma listagem de um tópico compartilhado cria uma assinatura do Pub/Sub vinculada no seu projeto. A assinatura do Pub/Sub fica visível no projeto do editor do tópico compartilhado.
Permissões adicionais de assinante
Para realizar tarefas de assinante, você precisa ter o
papel de assinante do Analytics Hub
(roles/analyticshub.subscriber) concedido no nível do projeto, da troca ou da
listagem.
Assinar uma listagem de tópicos compartilhados
Para assinar uma listagem com um tópico compartilhado, selecione uma das seguintes opções:
Console
Para ver as listagens disponíveis, siga as etapas em Ver listagens.
Navegue pelas listagens e clique naquela que você quer assinar. Uma caixa de diálogo com os detalhes da listagem será exibida.
Para abrir a caixa de diálogo Criar assinatura, clique em Assinar.
Se a API Analytics Hub não estiver ativada no projeto, uma mensagem de erro será exibida com um link para ativar a API. Clique em Ativar API Analytics Hub.
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 como os dados da mensagem são entregues.
- Duração da retenção de mensagens: defina a duração da retenção de mensagens.
- Período de validade: define quando a assinatura expira após inatividade, se houver.
- Prazo de confirmação: defina o prazo de confirmação.
- Filtro de assinatura: defina a sintaxe do filtro para as 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.
- Mensagens inativas: ative o encaminhamento de mensagens não entregues para um tópico de mensagens inativas.
- 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.
Para salvar as mudanças, clique em Criar. O BigQuery Sharing cria a assinatura vinculada do Pub/Sub no seu projeto.
API
Use o
método projects.locations.dataExchanges.listings.subscribe.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe
Substitua:
PROJECT_ID: o ID do projeto que contém a ficha 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 que contém a ficha 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 os detalhes da assinatura vinculada do Pub/Sub que você quer criar. Se a solicitação for bem-sucedida, o corpo da resposta vai conter os detalhes da assinatura.
Para mais informações sobre assinaturas do Pub/Sub, consulte Visão geral de assinaturas.
Preços
Os editores de tópicos compartilhados não pagam nenhuma cobrança adicional para listar e compartilhar tópicos usando o BigQuery Sharing. Os editores de tópicos compartilhados são cobrados pela capacidade de publicação, que é o total de bytes gravados no tópico compartilhado, e por qualquer saída de rede aplicável. Os assinantes de tópicos compartilhados são cobrados pela capacidade de assinatura, que é o total de bytes lidos da assinatura vinculada, e por qualquer saída de rede aplicável. Para mais informações, consulte os Preços do Pub/Sub.
VPC Service Controls
Para tópicos compartilhados de projetos com perímetros do VPC Service Controls, defina as regras de entrada e saída adequadas para conceder acesso a editores e assinantes de tópicos compartilhados.
A seguir
- Saiba como gerenciar suas listagens.
- Saiba como se inscrever em listagens.
- Saiba como monitorar seus recursos do Pub/Sub.
- Saiba como configurar regras do VPC Service Controls para compartilhamento do BigQuery.