Criar e gerenciar visualizações lógicas
As visualizações lógicas no Bigtable permitem salvar consultas SQL como tabelas virtuais que outras consultas SQL podem referenciar enquanto os dados permanecem na tabela de origem. Com essas visualizações, você pode:
- Evite repetir a lógica de consulta
- Apresentar dados em um formato relacional
- Restringir o acesso de leitura a linhas ou colunas específicas
É possível criar e gerenciar visualizações lógicas usando a Google Cloud CLI ou o editor de consultas do Bigtable Studio no console do Google Cloud . É possível consultar visualizações lógicas usando o editor de consultas ou qualquer uma das bibliotecas de cliente do Bigtable que oferecem suporte a SQL. Para uma comparação com visualizações materializadas contínuas e visualizações autorizadas, consulte Tabelas e visualizações.
Sobre as visualizações lógicas
Com as visualizações lógicas, é possível fazer o seguinte com os dados do Bigtable:
- Evite a repetição de consultas: é possível armazenar e desenvolver o mapeamento de colunas e a lógica de transmissão em uma visualização lógica, que pode ser usada por outras visualizações lógicas em vez de copiar e colar essa lógica ou precisar entendê-la.
- Integração com sistemas projetados para ler bancos de dados relacionais: as visualizações lógicas permitem que você leia os dados do Bigtable como uma tabela de banco de dados relacional ou do Cassandra.
- Executar a mesma visualização lógica em várias tabelas: ao modificar a cláusula
FROM, é possível usar a mesma visualização para consultar qualquer tabela na instância do Bigtable. - Fornecer uma interface consistente: seu aplicativo pode usar uma visualização lógica, mesmo que a tabela de origem mude.
- Limitar o acesso de leitura a colunas ou linhas específicas: é possível expor apenas os dados que você quer permitir que os usuários leiam, sem conceder acesso à tabela inteira.
Uma visualização lógica é um recurso no nível da instância com as seguintes características:
- É preciso usar os recursos SQL compatíveis com o GoogleSQL para Bigtable.
- A consulta SQL que define uma visualização lógica não pode usar
SELECT *. - Somente leitura
- Precisa ser lido com SQL em vez de uma chamada para
ReadRows - Pode ser consultado usando qualquer uma das bibliotecas de cliente do Bigtable que oferecem suporte a SQL.
- Usa direitos de definidor. É possível consultar uma visualização lógica se você tiver permissões para ler nela, mesmo que não tenha permissão para ler na tabela de origem.
A chave de linha, o qualificador de coluna e os valores de coluna que você usa para definir uma visualização lógica são tratados como dados de serviço. Por esse motivo, não crie uma visualização lógica usando chave de linha, qualificador de coluna ou valores de coluna que contenham informações sensíveis. Para mais informações sobre como os dados de serviço são processados, consulte o Aviso de privacidade doGoogle Cloud .
Antes de começar
Siga estas etapas se você planeja usar a CLI gcloud:
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Funções exigidas
Para trabalhar com visualizações lógicas, você precisa das seguintes permissões:
Para gerenciar visualizações lógicas:
- Para criar, atualizar ou excluir visualizações lógicas, você precisa do
papel de administrador do Bigtable (
roles/bigtable.admin) na instância. - Como alternativa, peça ao administrador para conceder as seguintes permissões no nível da instância:
- Criar:
bigtable.logicalViews.create - Atualizar:
bigtable.logicalViews.update - Excluir:
bigtable.logicalViews.delete
- Criar:
Para acessar e consultar visualizações lógicas:
- Para listar ou descrever visualizações lógicas, você precisa do papel de Leitor do Bigtable (
roles/bigtable.reader) na instância. Como alternativa, peça ao administrador para conceder as seguintes permissões no nível da instância:
- Lista:
bigtable.logicalViews.list - Descreva:
bigtable.logicalViews.get
- Lista:
Para consultar uma visualização lógica, você precisa da permissão
bigtable.logicalViews.readRowsna visualização lógica.
Para criar uma visualização lógica:
- É preciso ter pelo menos a permissão
bigtable.tables.readRowsna tabela de origem.
Para conceder acesso de leitura a uma visualização específica:
É possível conceder a um usuário permissão para ler uma visualização lógica específica, mesmo que ele
não tenha outras permissões do Bigtable. Para fazer isso, use uma
condição do IAM para conceder a permissão bigtable.logicalViews.readRows
somente nessa visualização:
- Conceda ao usuário o papel
bigtable.readerno projeto. Crie uma condição do IAM que limite a permissão
bigtable.logicalViews.readRowsà visualização lógica específica. Exemplo:resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEWSubstitua:
PROJECT_ID: o projeto do Google Cloud em que a instância do Bigtable está.VIEW: um ID de até 128 caracteres para a nova visualização lógica. O ID precisa ser exclusivo entre os IDs de tabela e de visualização na instância.INSTANCE_ID: o ID da instância em que a visualização lógica será criada.
Para mais informações, consulte Gerenciar o acesso a recursos usando as condições do IAM.
Para mais informações sobre todos os papéis e permissões disponíveis, consulte Controle de acesso do Bigtable com o IAM.
Criar uma visualização lógica
Console
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Selecione uma instância.
No painel de navegação, clique em Bigtable Studio.
Abra uma nova guia clicando em e escolhendo Editor.
No editor de consultas, escreva sua consulta. Se a consulta for um SQL válido, uma mensagem Válido será exibida.
Opcional: para formatar sua instrução no estilo SQL, clique em Formatar.
Clique em Executar. Os resultados da consulta aparecem na tabela Resultados.
Quando estiver contente com a consulta, clique na seta de expansão Salvar como e escolha Salvar como visualização lógica.
Na caixa de diálogo Salvar visualização lógica, insira um nome para a visualização e clique em Salvar.
Para mais informações sobre como usar o editor de consultas, consulte Gerenciar seus dados usando o Bigtable Studio.
gcloud
Para criar uma visualização lógica, use o comando gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
Substitua:
VIEW: um ID de até 128 caracteres para a nova visualização lógica. O ID precisa ser exclusivo entre os IDs de tabela e de visualização na instância.QUERY: uma consulta válida do GoogleSQL para Bigtable. A consulta não pode usarSELECT *.INSTANCE: o ID da instância em que a visualização lógica será criada.
Opcional:
- Para proteger a visualização lógica contra exclusão, adicione ao final do comando a
flag
--deletion-protection. Se você não aplicar essa configuração, a visualização lógica poderá ser excluída. Para permitir explicitamente a exclusão da visualização lógica, basta anexar--no-deletion-protection. Para mais informações, consulte a seção Atualizar uma visualização lógica deste documento.
Atualizar uma visualização lógica
Console
Não é possível atualizar a proteção contra exclusão de uma visualização lógica no console doGoogle Cloud . Para ativar ou desativar a proteção contra exclusão, use a Google Cloud CLI.
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Selecione uma instância na lista.
No painel de navegação, clique em Bigtable Studio. Uma lista de visualizações é exibida no explorador.
Opcional: as primeiras 10 visualizações na instância são listadas. Para ver mais 10, clique em Mostrar mais.
Ao lado da visualização que você quer atualizar, clique no menu de ações more_vert e em Ver definição.
Modifique a consulta.
Clique em Executar.
Depois de verificar se o painel de resultados mostra os dados que devem ser incluídos na visualização, clique em Salvar como.
Na caixa de diálogo, insira o ID da visualização que você modificou.
A caixa de diálogo mostra uma mensagem avisando que você está substituindo a visualização atual.
Clique em Salvar.
gcloud
Para atualizar uma visualização lógica para executar uma consulta diferente ou modificar a proteção contra exclusão, use o comando gcloud bigtable logical-views update. É necessário especificar a consulta, a proteção contra exclusão ou ambas.
Para atualizar a consulta de uma visualização lógica:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
Para ativar a proteção contra exclusão em uma visualização lógica:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=true
Para desativar a proteção contra exclusão de uma visualização lógica:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=false
Substitua:
VIEW: o ID da visualização lógica a ser atualizada.INSTANCE: o ID da instância que contém a visualização lógica.QUERY: uma consulta válida do GoogleSQL.
Excluir uma visualização lógica
Essa ação é permanente.
Se uma visualização lógica tiver a proteção contra exclusão ativada, não será possível excluí-la. Para excluir uma visualização lógica que tenha a proteção contra exclusão ativada, é necessário atualizar a visualização lógica para desativar a proteção contra exclusão. Para mais informações, consulte a seção Atualizar uma visualização lógica deste documento.
Console
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Selecione uma instância na lista.
No painel de navegação, clique em Bigtable Studio. Uma lista de visualizações é exibida no explorador.
Opcional: as primeiras 10 visualizações na instância são listadas. Para ver mais 10, clique em Mostrar mais.
Expanda Visualizações.
Ao lado da visualização que você quer excluir, clique no menu de ações more_vert e em Excluir.
gcloud
Para excluir uma visualização lógica, use o comando gcloud bigtable logical-views delete.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Substitua:
VIEW: o ID da visualização lógica a ser atualizada.INSTANCE: o ID da instância que contém a visualização lógica.
Receber uma lista de visualizações lógicas de uma instância
É possível ver uma lista de visualizações lógicas de uma instância.
Console
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Selecione uma instância na lista.
No painel de navegação, clique em Bigtable Studio. Uma lista de visualizações é exibida no explorador.
Opcional: as primeiras 10 visualizações na instância são listadas. Para ver mais 10, clique em Mostrar mais.
gcloud
Para ver uma lista de visualizações lógicas de uma instância, use o comando gcloud bigtable logical-views list.
gcloud bigtable logical-views list --instance=INSTANCE
Substitua INSTANCE pelo ID da instância.
Descrever uma visualização lógica
Para ver detalhes sobre uma visualização lógica, use o comando gcloud bigtable logical-views
describe.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
O terminal exibe detalhes semelhantes aos seguintes:
createTime: '2025-03-07T19:49:56.316578Z'
etag: W/"/v1/17919275593532352351"
name: projects/my-project/instances/my-instance/logicalViews/my-view
query: SELECT street FROM addresses
updateTime: '2025-03-07T19:49:56.316578Z'
deletion_protection: true
Consultar uma visualização lógica
Depois de criar uma visualização lógica, é possível consultá-la usando SQL, assim como você consulta
uma tabela comum. É possível usar visualizações lógicas na cláusula FROM de instruções
SELECT.
No editor de consultas, insira uma consulta do GoogleSQL que faça referência ao nome
da visualização. Por exemplo, se a visualização se chamar MyLogicalView:
SELECT *
FROM MyLogicalView
LIMIT 100;
Para mais informações sobre como executar consultas SQL no Bigtable, consulte Consultar seus dados com SQL no editor de consultas.
Limitações
- Não é possível criar visualizações lógicas em tabelas com granularidade de carimbo de data/hora de microssegundos.
A seguir
- Para saber mais sobre como consultar dados do Bigtable com SQL, consulte Visão geral do GoogleSQL para Bigtable.
- Para pré-computar e armazenar em cache os resultados de consulta de uma tabela de origem, consulte Visualizações materializadas contínuas.
- Para configurar o acesso de leitura e gravação refinado a subconjuntos específicos de dados, consulte Visão geral das visualizações autorizadas.
- Para filtrar dinamicamente os dados de visualização lógica com base no contexto do aplicativo, consulte Visão geral das visualizações parametrizadas.