Armazenar dados em Bigtables

A Bigtable tem mesas apenas como um RDBMS faz, mas ao contrário de um RDBMS, uma mesa de Bigtable geralmente não têm relacionamentos com outras tabelas. Em vez disso, dados complexos são agrupados em uma única tabela.

Uma tabela em um Bigtable consiste em grupos de colunas, chamado famílias de colunas, e uma chave de linha. Estes, juntamente activar a pesquisa rápida de um único registro de dados mantidos em um Bigtable.

Usando as teclas de linha

Cada linha deve ser identificada exclusivamente. Este é o lugar onde a chave de linha vem dentro. A chave de linha é uma cadeia exclusiva usada para referenciar um único registro em um Bigtable. Você pode pensar neles como sendo semelhante a uma chave primária ou como um número de segurança social para Bigtables.

Muitos Bigtables não fornecem bons índices secundários (índices sobre valores das colunas), para desenvolver uma chave de linha que permite a pesquisa rápida de registros é crucial para garantir um bom desempenho.

A chave de linha bem # 8208-projetado permite um registro para ser localizado sem ter que ter sua aplicação ler e verificar a aplicabilidade de cada gravar a si mesmo. É mais rápido para o banco de dados para fazer isso.

As chaves de linha também são utilizados pela maioria dos Bigtables para distribuir uniformemente os registros entre os servidores. A chave de linha mal projetado levará a um servidor no cluster de banco de dados a receber mais carga (pedidos) do que os outros servidores, retardando usuário # desempenho 8208-visível do seu serviço de banco de dados inteiro.

Criando famílias de colunas

Uma família de colunas é um agrupamento lógico de colunas. Embora Bigtables permitem variar o número de colunas suportadas por qualquer definição de tabela em tempo de execução, você deve especificar as famílias de colunas permitidas na frente. Estes tipicamente não pode ser modificado sem tomar o servidor off-line. Como exemplo, uma aplicação de livro de endereço pode usar uma família de endereço residencial. Isso poderia conter as colunas Morada Linha 1, Linha de endereço 2, área, cidade, município, estado, país e código postal.

Nem todos os endereços terá dados em todos os campos. Por exemplo, Morada Linha 2, área e County pode muitas vezes estar em branco. Por outro lado, você pode ter dados somente na Linha de endereço 1 e código postal. Estes dois exemplos são ambos muito bem na mesma família coluna de endereço residencial.

Tendo em números variados de colunas tem os seus inconvenientes. Se você quiser HBase, por exemplo, para listar todas as colunas dentro de uma família particular, você deve iterar sobre todas as linhas para obter a lista completa das colunas! Então, você precisa manter o controle de seu modelo de dados em seu aplicativo com um clone Bigtable para evitar essa perda de desempenho.

usando timestamps

Cada valor dentro de uma coluna pode tipicamente armazenar diferentes versões. Estes nº 173-versões são referenciados usando um valor de timestamp.

Valores nunca são modificados - um valor diferente é adicionado com um timestamp diferente. Para excluir um valor, você adiciona um marcador lápide com o valor, o que basicamente é a sinalização de que o valor é eliminado em um determinado ponto no tempo.

Todos os valores para a mesma chave de linha e coluna da família são armazenados juntos, o que significa que todas as pesquisas ou decisões versão são tomadas em um único lugar onde todos os dados relevantes reside.

Manipulação de valores binários

Em Bigtables, os valores são arrays simplesmente bytes. Por exemplo, eles podem ser texto, números, imagens ou mesmo. O que você armazena neles é com você.

Apenas alguns clones Bigtable valor de suporte # 8208-digitação. Hypertable, por exemplo, permite que você defina os tipos e adicionar índices secundários a valores. Cassandra também permite definir os tipos de valores, mas a sua gama # índices 8208-consulta (menos # 8208-que e maior # 8208 do que as operações para cada tipo de dados) estão limitados a acelerar operações de pesquisa principais, e não operações de comparação de valor.

menu