Tabelas e visualizações
No Bigtable, os dados são armazenados em tabelas, e é possível criar vários tipos de visualizações delas. O tipo de visualização usado depende do seu caso de uso.
Tabelas
Uma tabela do Bigtable é um mapa de chave-valor classificado que armazena dados em linhas e colunas. Cada linha é indexada por uma chave de linha única. As colunas relacionadas entre si geralmente são agrupadas em um grupo de colunas.
O Bigtable tem um modelo de dados flexível, e as tabelas são esparsas. Isso significa que, se uma coluna não for usada em uma linha, nenhum dado será armazenado para ela. Não é necessário armazenar valores NULL para colunas não usadas, como em um banco de dados relacional. Em uma tabela do Bigtable, uma linha pode ter uma coluna e a linha ao lado dela 100 colunas.
Em uma linha, uma coluna pode conter várias células, cada uma identificada pela tupla de quatro elementos (chave de linha, grupo de colunas, qualificador de coluna, carimbo de data/hora). O armazenamento de várias células em uma coluna fornece um registro de como os dados armazenados para essa linha e coluna mudaram ao longo do tempo.
Uma tabela do Bigtable não oferece suporte a mesclagens, e as transações são compatíveis apenas com uma única linha.
Uma tabela é um recurso no nível da instância que é replicado automaticamente para cada cluster na instância. A retenção de dados é controlada com políticas de coleta de lixo definidas no nível do grupo de colunas.
Para mais informações, consulte a visão geral do Bigtable e as práticas recomendadas de design de esquema.
Visualizações
O Bigtable oferece suporte aos seguintes tipos de visualizações de tabela: visualizações lógicas, visualizações materializadas contínuas e visualizações autorizadas. As visualizações permitem compartilhar dados de tabelas com usuários e grupos específicos sem conceder acesso aos dados de origem subjacentes.
Visualizações lógicas
Uma visualização lógica (geralmente chamada apenas de visualização) é o resultado de uma consulta SQL. Ela funciona como uma tabela virtual que pode ser consultada por outras consultas SQL. Para mais informações, consulte Criar e gerenciar visualizações lógicas.
Visualizações parametrizadas
Uma visualização parametrizada é um tipo de visualização lógica que filtra dinamicamente intervalos de dados com base no contexto do aplicativo. Essa abordagem protege seus aplicativos contra injeção de SQL e reduz a necessidade de várias visualizações estáticas.
Para mais informações, consulte Visão geral das visualizações parametrizadas.
Visualizações materializadas contínuas
Uma visualização materializada contínua é criada pela execução contínua de uma consulta SQL em uma tabela do Bigtable. O Bigtable cria uma nova tabela com base na saída da consulta e a mantém sincronizada com a tabela de origem.
As visualizações materializadas contínuas podem ajudar a melhorar o desempenho das consultas. A nova tabela (a visualização materializada contínua) tem um esquema diferente da tabela de origem, contendo dados pré-agregados ou transformados otimizados para consultas diferentes das usadas na tabela de origem.
As visualizações materializadas contínuas são somente leitura. Você recebe cobranças pelo armazenamento de uma visualização materializada contínua, bem como pelo trabalho de processamento necessário para criar a segunda tabela, mantê-la sincronizada com a tabela de origem e replicá-la.
Para mais informações, consulte Visualizações materializadas contínuas.
Visualizações autorizadas
As visualizações autorizadas são visualizações de tabelas configuradas para incluir dados específicos e conceder acesso separadamente do acesso à tabela de origem. Uma visualização autorizada é definida por um arquivo de definição formatado em JSON.
Ao contrário das visualizações materializadas contínuas ou lógicas, as visualizações autorizadas do Bigtable podem ser usadas para controlar o acesso de leitura e gravação.
As visualizações autorizadas são úteis nos casos em que você armazena dados de vários clientes em uma tabela do Bigtable e quer conceder a cada cliente acesso apenas a um subconjunto da tabela que contém os dados dele.
As visualizações autorizadas não geram custos de armazenamento adicionais.
Para mais informações, consulte o Visão geral das visualizações autorizadas.
Comparações
A tabela a seguir fornece mais informações sobre como as visualizações de tabela do Bigtable são diferentes umas das outras.
| Visualizações lógicas | Visualizações parametrizadas | Visualizações materializadas contínuas | Visualizações autorizadas | |
|---|---|---|---|---|
| Estrutura | Tabela virtual que representa os resultados de uma consulta SQL | Tabela virtual que representa os resultados de uma consulta SQL | Tabela somente leitura com base em uma tabela de origem | Subconjunto de uma tabela |
| Definição | Consulta SQL | Consulta SQL usando VIEW_PARAMETERS() |
Consulta SQL | Arquivo de definição JSON |
| Consistência com a tabela de origem | Consistente quando a consulta é executada | Consistente quando a consulta é executada | Consistência eventual | Consistente quando a consulta é executada |
| Opções de consulta | É necessário usar SQL | SQL | SQL ou API Cloud Bigtable Data | API Cloud Bigtable Data |
| Gravável | Não | Não | Não | Sim |
| Armazenamento | Os dados permanecem na tabela de origem | Os dados permanecem na tabela de origem | Os dados são duplicados, agregados ou transformados e armazenados em uma nova tabela somente leitura | Os dados permanecem na tabela de origem |
| Custos de uso | Processamento de computação para executar a consulta | Processamento de computação para executar a consulta | Processamento de computação durante a sincronização, custos de armazenamento | Processamento de computação para executar a consulta |