Criar e gerenciar visualizações lógicas

No Bigtable, uma visualização 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 visualizações lógicas e como criar e realizar operações nelas. Para uma comparação com visualizações materializadas contínuas e visualizações autorizadas, consulte Tabelas e visualizações.

As visualizações lógicas permitem que você faça o seguinte com seus dados do Bigtable:

  • Evitar a repetição de consultas: é possível armazenar e desenvolver a lógica de mapeamento e conversão de colunas em uma visualização lógica, que outras visualizações lógicas podem usar em vez de copiar e colar essa lógica ou precisar entendê-la.
  • Integrar com sistemas projetados para ler bancos de dados relacionais: as visualizações lógicas permitem que você faça com que seus dados do Bigtable sejam lidos como uma tabela de banco de dados relacional ou uma tabela do Cassandra.
  • Executar a mesma visualização lógica em várias tabelas: ao modificar a FROM cláusula, é 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 dar acesso a toda a tabela.

Uma visualização lógica é um recurso no nível da instância. É possível criar uma visualização lógica usando a Google Cloud CLI ou o editor de consultas do Bigtable Studio no console Google Cloud . Para consultar uma visualização lógica, use o editor de consultas do Bigtable Studio ou qualquer uma das bibliotecas de cliente do Bigtable que oferecem suporte a SQL.

Uma visualização lógica tem as seguintes características:

  • Precisa usar recursos SQL com suporte do GoogleSQL para Bigtable
  • Somente leitura
  • Precisa ser lida com SQL em vez de uma chamada para ReadRows
  • Pode ser consultada 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 dela, mesmo que não tenha permissão para ler da tabela de origem.

A chave de linha, o qualificador de coluna e os valores de coluna usados 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 a chave de linha, o qualificador de coluna ou os valores de coluna que contenham informações sensíveis. Para informações sobre como os dados de serviço são tratados, consulte o Google Cloud Aviso de privacidade.

Antes de começar

Siga estas etapas se você planeja usar a CLI gcloud:

  1. Instale a Google Cloud CLI.

  2. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

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

Para visualizar e consultar visualizações lógicas:

  • Para listar ou descrever visualizações lógicas, você precisa do papel 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
    • Descrever: bigtable.logicalViews.get
  • Para consultar uma visualização lógica, você precisa da permissão bigtable.logicalViews.readRows na visualização lógica.

Para criar uma visualização lógica:

  • É preciso ter pelo menos a permissão bigtable.tables.readRows na 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 apenas nessa visualização:

  1. Conceda ao usuário o papel bigtable.reader no projeto.
  2. 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/VIEW
    

    Substitua:

    • PROJECT_ID: o Google Cloud projeto 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 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

  1. Abra a lista de instâncias do Bigtable no Google Cloud console.

    Abrir a lista de instâncias

  2. Selecione uma instância.

  3. No painel de navegação, clique em Bigtable Studio.

  4. Abra uma nova guia clicando em e escolhendo Editor.

    1. No editor de consultas, escreva sua consulta. Se a consulta for SQL válida, uma mensagem Válida será exibida.

    2. Opcional: para formatar sua instrução no estilo SQL, clique em Formatar.

    3. Clique em Executar. Os resultados da consulta aparecem na tabela Resultados.

    4. Quando estiver satisfeito com a consulta, clique na seta do expansor Salvar como e escolha Salvar como visualização lógica.

  5. Na caixa de diálogo Salvar sua 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 gcloud bigtable logical-views create comando.

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
  • 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, anexe o comando com a flag --deletion-protection. Se você não aplicar essa configuração, a visualização lógica poderá ser excluída. Também é possível permitir explicitamente a exclusão da visualização lógica anexando --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 Google Cloud console. Para ativar ou desativar a proteção contra exclusão, use a Google Cloud CLI.

  1. Abra a lista de instâncias do Bigtable no Google Cloud console.

    Abrir a lista de instâncias

  2. Selecione uma instância na lista.

  3. No painel de navegação, clique em Bigtable Studio. Uma lista de visualizações é exibida no Explorer.

  4. Opcional: as 10 primeiras visualizações na instância são listadas. Para ver mais 10, clique em Mostrar mais.

  5. Ao lado da visualização que você quer atualizar, clique no more_vert menu de ações, e em Ver definição.

  6. Modifique a consulta.

  7. Clique em Executar.

  8. Depois de verificar se o painel de resultados mostra os dados que precisam ser incluídos na visualização, clique em Salvar como.

  9. Na caixa de diálogo, insira o ID da visualização modificada.

    A caixa de diálogo mostra uma mensagem avisando que você está substituindo a visualização atual.

  10. 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 gcloud bigtable logical-views update comando. É necessário especificar a consulta, a proteção contra exclusão ou ambos.

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 de 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, atualize 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

  1. Abra a lista de instâncias do Bigtable no Google Cloud console.

    Abrir a lista de instâncias

  2. Selecione uma instância na lista.

  3. No painel de navegação, clique em Bigtable Studio. Uma lista de visualizações é exibida no Explorer.

  4. Opcional: as 10 primeiras visualizações na instância são listadas. Para ver mais 10, clique em Mostrar mais.

  5. Expanda Visualizações.

  6. Ao lado da visualização que você quer excluir, clique no more_vert menu de ações, e em Excluir.

gcloud

Para excluir uma visualização lógica, use o gcloud bigtable logical-views delete comando.

  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 para uma instância

É possível conferir uma lista de visualizações lógicas para uma instância.

Console

  1. Abra a lista de instâncias do Bigtable no Google Cloud console.

    Abrir a lista de instâncias

  2. Selecione uma instância na lista.

  3. No painel de navegação, clique em Bigtable Studio. Uma lista de visualizações é exibida no Explorer.

  4. Opcional: as 10 primeiras visualizações na instância são listadas. Para ver mais 10, clique em Mostrar mais.

gcloud

Para conferir uma lista de visualizações lógicas de uma instância, use o gcloud bigtable logical-views list comando.

gcloud bigtable logical-views list --instance=INSTANCE

Substitua INSTANCE pelo ID da instância.

Descrever uma visualização lógica

Para receber detalhes sobre uma visualização lógica, use o gcloud bigtable logical-views describe comando.

  gcloud bigtable logical-views describe VIEW \
      --instance=INSTANCE

O terminal mostra detalhes semelhantes a estes:

  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 uma tabela normal. É 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 for chamada de 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.

A seguir