Tabelas e vistas
No Bigtable, armazena os seus dados em tabelas e pode criar vários tipos de vistas das suas tabelas. O tipo de vista que usa depende do seu exemplo de utilização.
Tabelas
Uma tabela do Bigtable é um mapa de chave/valor ordenado que armazena dados em linhas e colunas. Cada linha é indexada por uma única chave de linha exclusiva. As colunas relacionadas entre si são normalmente agrupadas numa família de colunas.
O Bigtable tem um modelo de dados flexível e as respetivas tabelas são esparsas. Isto significa que, se uma coluna não for usada numa linha, não são armazenados dados para a coluna. Não tem de armazenar valores NULL para colunas não usadas, como faria com uma base de dados relacional. Numa tabela do Bigtable, uma determinada linha pode ter uma coluna e a linha seguinte 100 colunas.
Numa linha, uma coluna pode conter várias células, cada uma identificada pela tupla de quatro elementos (chave da linha, família de colunas, qualificador de coluna e data/hora). O armazenamento de várias células numa coluna fornece um registo de como os dados armazenados para essa linha e coluna mudaram ao longo do tempo.
Uma tabela do Bigtable não suporta junções e as transações só são suportadas numa única linha.
Uma tabela é um recurso ao nível da instância que é replicado automaticamente para todos os clusters na instância. A retenção de dados é controlada com políticas de recolha de lixo que são definidas ao nível da família de colunas.
Para mais informações, consulte a vista geral do Bigtable e as práticas recomendadas de criação de esquemas.
Visualizações
O Bigtable suporta os seguintes tipos de vistas de tabelas: vistas lógicas, vistas materializadas contínuas e vistas autorizadas. As vistas permitem-lhe partilhar dados de tabelas com utilizadores e grupos específicos sem lhes dar acesso aos dados de origem subjacentes.
Visualizações lógicas
Uma vista lógica, muitas vezes referida apenas como uma vista, é o resultado de uma consulta SQL. Funciona como uma tabela virtual que pode ser consultada por outras consultas SQL. Para mais informações, consulte o artigo Crie e faça a gestão de visualizações lógicas.
Vistas materializadas contínuas
Uma vista materializada contínua é criada através da execução contínua de uma consulta SQL numa tabela do Bigtable. O Bigtable cria uma nova tabela com base no resultado da consulta e mantém-na sincronizada com a tabela de origem.
As vistas materializadas contínuas podem ajudar a melhorar o desempenho das consultas. A nova tabela, a vista materializada contínua, tem um esquema diferente da tabela de origem, contendo dados pré-agregados ou transformados que estão otimizados para consultas diferentes das usadas na tabela de origem.
As vistas materializadas contínuas são só de leitura. É-lhe cobrado o armazenamento de uma vista materializada contínua, bem como o 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 o artigo Vistas materializadas contínuas.
Vistas autorizadas
As vistas autorizadas são vistas de tabelas que configura para incluir dados de tabelas específicos e, em seguida, concede acesso separadamente do acesso à tabela de origem. Uma vista autorizada é definida por um ficheiro de definição formatado em JSON.
Ao contrário das vistas materializadas contínuas ou das vistas lógicas, as vistas autorizadas do Bigtable podem ser usadas para controlar o acesso de leitura e escrita.
As vistas autorizadas são úteis nos casos em que armazena dados de vários clientes numa tabela do Bigtable e quer conceder a cada cliente acesso apenas a um subconjunto da tabela que contém os respetivos dados.
As visualizações autorizadas não incorrem em custos de armazenamento adicionais.
Para mais informações, consulte a Vista geral das visualizações autorizadas.
Comparações
A tabela seguinte fornece informações adicionais sobre as diferenças entre as vistas de tabelas do Bigtable.
Visualizações lógicas | Vistas materializadas contínuas | Vistas autorizadas | |
---|---|---|---|
Estrutura | Tabela virtual que representa os resultados de uma consulta SQL | Tabela só de leitura baseada numa tabela de origem | Subconjunto de uma tabela |
Definição | Consulta SQL | Consulta SQL | Ficheiro de definição JSON |
Consistência com a tabela de origem | Consistente quando a consulta é executada | Eventualmente consistente | Consistente quando a consulta é executada |
Opções de consulta | Tem de usar SQL | SQL ou Bigtable Data API | Bigtable Data API |
Gravável | Não | Não | Sim |
Armazenamento | Os dados permanecem na tabela de origem | Os dados são duplicados, agregados ou transformados e armazenados numa nova tabela só de leitura | Os dados permanecem na tabela de origem |
Custos de utilização | 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 |