Crie e faça a gestão de vistas lógicas
No Bigtable, uma vista lógica é o resultado de uma consulta SQL que funciona como uma tabela virtual que pode ser consultada por outras consultas SQL. Os dados permanecem na tabela de origem.
Este documento descreve as vistas lógicas e como criar e realizar operações nas mesmas. Para uma comparação com as vistas materializadas contínuas e as vistas autorizadas, consulte o artigo Tabelas e vistas.
As vistas lógicas permitem-lhe fazer o seguinte com os seus dados do Bigtable:
- Evite a repetição de consultas: pode armazenar e desenvolver o mapeamento de colunas e a lógica de conversão de tipos numa vista lógica, que as vistas lógicas adicionais podem usar em vez de copiar e colar essa lógica ou precisar de a compreender.
- Integre com sistemas concebidos para ler a partir de bases de dados relacionais: as vistas lógicas permitem-lhe fazer com que os seus dados do Bigtable sejam lidos como uma tabela de base de dados relacional ou uma tabela do Cassandra.
- Executar a mesma vista lógica em várias tabelas: ao modificar a cláusula
FROM
, pode usar a mesma vista para consultar qualquer tabela na sua instância do Bigtable. - Oferecer uma interface consistente: a sua aplicação pode usar uma vista lógica, mesmo que a tabela de origem seja alterada.
- Limitar o acesso de leitura a colunas ou linhas específicas: pode expor apenas os dados que quer permitir que os utilizadores leiam, sem lhes dar acesso à tabela inteira.
Uma vista lógica é um recurso ao nível da instância. Pode criar uma vista lógica através da Google Cloud CLI ou do editor de consultas do Bigtable Studio na Google Cloud consola. Para consultar uma vista lógica, pode usar o editor de consultas do Bigtable Studio ou qualquer uma das bibliotecas de cliente do Bigtable que suportam SQL.
Uma vista lógica tem as seguintes características:
- Tem de usar funcionalidades SQL suportadas pelo GoogleSQL para Bigtable
- Só de leitura
- Tem de ser lido com SQL em vez de com uma chamada para
ReadRows
- Podem ser consultadas através de qualquer uma das bibliotecas cliente do Bigtable que suportam SQL
- Usa direitos do definidor. Pode consultar uma vista lógica se tiver autorizações para ler a partir da mesma, mesmo que não tenha autorização para ler a partir da tabela de origem.
A chave da linha, o qualificador da coluna e os valores da coluna que usa para definir uma vista lógica são tratados como dados de serviço. Por este motivo, não crie uma vista lógica com a chave da linha, o qualificador da coluna ou os valores das colunas que contenham informações confidenciais. Para obter informações sobre como os dados de serviço são processados, consulte o Google Cloud Aviso de Privacidade.
Antes de começar
Siga os passos seguintes se planear usar a CLI gcloud:
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Funções necessárias
Para trabalhar com visualizações lógicas, precisa das seguintes autorizações:
Para gerir vistas lógicas:
- Para criar, atualizar ou eliminar vistas lógicas, precisa da função
Bigtable Admin (
roles/bigtable.admin
) na instância. - Em alternativa, pode pedir ao administrador que lhe conceda as seguintes
autorizações ao nível da instância:
- Criado:
bigtable.logicalViews.create
- Atualização:
bigtable.logicalViews.update
- Eliminar:
bigtable.logicalViews.delete
- Criado:
Para ver e consultar vistas lógicas:
- Para listar ou descrever visualizações lógicas, precisa da função Bigtable
Reader (
roles/bigtable.reader
) na instância. Em alternativa, pode pedir ao administrador que lhe conceda as seguintes autorizações ao nível da instância:
- Lista:
bigtable.logicalViews.list
- Descrever:
bigtable.logicalViews.get
- Lista:
Para consultar uma visualização lógica, precisa da autorização
bigtable.logicalViews.readRows
na visualização lógica.
Para criar uma vista lógica:
- Tem de ter, pelo menos, autorização
bigtable.tables.readRows
na tabela de origem.
Para conceder acesso de leitura a uma vista específica:
Pode conceder a um utilizador autorização para ler uma visualização lógica específica, mesmo que não tenha outras autorizações do Bigtable. Para o fazer, use uma condição do IAM para conceder a autorização bigtable.logicalViews.readRows
apenas nessa visualização de propriedade:
- Conceda ao utilizador a função de
bigtable.reader
no projeto. Crie uma condição de IAM que limite a autorização
bigtable.logicalViews.readRows
à vista lógica específica. Por exemplo:resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW
Substitua o seguinte:
PROJECT_ID
: o Google Cloud projeto em que a sua instância do Bigtable se encontra.VIEW
: um ID com um máximo de 128 carateres para a nova vista lógica. O ID tem de ser exclusivo entre os IDs de tabelas e os IDs de vistas na instância.INSTANCE_ID
: o ID da instância na qual criar a vista lógica.
Para mais informações, consulte o artigo Faça a gestão do acesso aos recursos através das condições do IAM.
Para mais informações sobre todas as funções e autorizações disponíveis, consulte o artigo Controlo de acesso do Bigtable com a IAM.
Crie uma vista lógica
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Selecione uma instância.
No painel de navegação, clique em Bigtable Studio.
Abra um novo separador clicando em
e, de seguida, escolhendo Editor.No editor de consultas, escreva a sua consulta. Se a consulta for SQL válida, é apresentada a mensagem Válido.
Opcional: para formatar a declaração no estilo SQL, clique em Formatar.
Clique em Executar. Os resultados da consulta aparecem na tabela Resultados.
Quando estiver tudo pronto, clique em Guardar e, de seguida, escolha Guardar vista.
Para mais informações sobre a utilização do editor de consultas, consulte o artigo Faça a gestão dos seus dados com o Bigtable Studio.
gcloud
Para criar uma vista lógica, use o comando
gcloud bigtable logical-views create
.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
Substitua o seguinte:
VIEW
: um ID com um máximo de 128 carateres para a nova vista lógica. O ID tem de ser exclusivo entre os IDs de tabelas e os IDs de vistas na instância.QUERY
: um GoogleSQL válido para uma consulta do BigtableINSTANCE
: o ID da instância na qual criar a vista lógica
Opcional:
- Para proteger a vista lógica contra a eliminação, acrescente o comando com a flag
--deletion-protection
. Se não aplicar esta definição, a vista lógica pode ser eliminada. Também pode permitir explicitamente a eliminação da vista lógica anexando--no-deletion-protection
. Para mais informações, consulte a secção Modifique a proteção contra eliminação deste documento.
Atualize uma vista lógica
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Selecione uma instância na lista.
No painel de navegação, clique em Bigtable Studio. É apresentada uma lista de vistas no explorador.
Opcional: são apresentadas as primeiras 10 visualizações na instância. Para ver mais 10, clique em Mostrar mais.
Junto à vista que quer atualizar, clique no menu de ações more_vert e, de seguida, clique em Ver definição.
Modifique a consulta.
Clique em Executar.
Depois de verificar que o painel de resultados mostra os dados que devem ser incluídos na vista, clique em Guardar como.
Na caixa de diálogo, introduza o ID da vista que modificou.
A caixa de diálogo apresenta uma mensagem de aviso a indicar que está a substituir a vista existente.
Clique em Guardar.
gcloud
Para atualizar uma vista lógica para executar uma consulta diferente, use o comando
gcloud bigtable logical-views update
.
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
Substitua o seguinte:
VIEW
: o ID da vista lógica a atualizarQUERY
: uma consulta GoogleSQL válidaINSTANCE
: o ID da instância que contém a vista lógica
Para atualizar uma vista lógica de modo a modificar a proteção contra eliminação, consulte a secção Modificar a proteção contra eliminação deste documento.
Elimine uma visualização lógica
Esta ação é permanente.
Se uma vista lógica tiver a proteção contra eliminação ativada, não pode eliminá-la. Para eliminar uma vista lógica com a proteção contra eliminação ativada, tem de atualizar a vista lógica para desativar a proteção contra eliminação. Para mais informações, consulte a secção Modifique a proteção contra eliminação deste documento.
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Selecione uma instância na lista.
No painel de navegação, clique em Bigtable Studio. É apresentada uma lista de vistas no explorador.
Opcional: são apresentadas as primeiras 10 visualizações na instância. Para ver mais 10, clique em Mostrar mais.
Expanda Visualizações.
Junto à vista que quer eliminar, clique no menu de ações more_vert e, de seguida, clique em Eliminar.
gcloud
Para eliminar uma vista lógica, use o comando
gcloud bigtable logical-views delete
.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Substitua o seguinte:
VIEW
: o ID da vista lógica a atualizarINSTANCE
: o ID da instância que contém a vista lógica
Obtenha uma lista de vistas lógicas para uma instância
Pode ver uma lista de vistas lógicas para uma instância.
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Selecione uma instância na lista.
No painel de navegação, clique em Bigtable Studio. É apresentada uma lista de vistas no explorador.
Opcional: são apresentadas as primeiras 10 visualizações na instância. Para ver mais 10, clique em Mostrar mais.
gcloud
Para ver uma lista de vistas 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.
Descreva uma vista lógica
Para obter detalhes sobre uma vista lógica, use o comando gcloud bigtable logical-views
describe
.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
O terminal apresenta 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 vista lógica
Depois de criar uma vista lógica, pode consultá-la através de SQL, tal como consulta uma tabela normal. Pode usar vistas lógicas na cláusula FROM
de declarações SELECT
.
No editor de consultas, introduza uma consulta GoogleSQL que faça referência ao nome da vista. Por exemplo, se a vista se chamar MyLogicalView
:
SELECT *
FROM MyLogicalView
LIMIT 100;
Para mais informações sobre a execução de consultas SQL no Bigtable, consulte o artigo Consultar os dados com SQL no editor de consultas.
Modifique a proteção contra eliminação
A proteção contra eliminação impede a eliminação da vista lógica. Para ativar ou desativar a proteção contra eliminação de uma vista lógica, precisa das autorizações necessárias. Para mais informações, consulte a secção Funções necessárias deste documento.
gcloud
Para ativar a proteção contra eliminação para uma vista lógica, execute o comando
gcloud bigtable logical-views update
:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection
Para desativar a proteção contra eliminação de uma vista lógica, execute o seguinte comando:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--no-deletion-protection
Substitua o seguinte:
VIEW
: um ID com um máximo de 128 carateres para a vista lógica. O ID tem de ser exclusivo entre os IDs de tabelas e visualizações na instância.INSTANCE
: o ID da instância na qual a vista lógica vai ser atualizada.
O que se segue?
- Vista geral do GoogleSQL para Bigtable
- Vistas materializadas contínuas
- Vista geral das vistas autorizadas