Armazenar dados em bigtables
Video: Armazenamento de dados na HP12c
Conteúdo
A Bigtable tem mesas apenas como um RDBMS faz, mas ao contrário de um RDBMS, um mesas 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, chamada 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 tem de ser identificada exclusivamente. Isto é onde a chave de linha vem dentro. A chave de linha é uma string exclusiva usado 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 é fundamental para garantir um bom desempenho.
A chave de linha bem concebido 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.
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 em seu cluster de banco de dados a receber mais carga (pedidos) do que os outros servidores, retardando o desempenho visível ao usuário de seu serviço de banco de dados inteiro.
Criando famílias de colunas
Uma família coluna é um agrupamento lógico de colunas. Embora Bigtables permitem variar o número de colunas suportados em qualquer definição de tabela em tempo de execução, você deve especificar as famílias de colunas permitidas na frente. Estes geralmente não podem ser modificados sem levar o servidor offline. 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 em Linha de endereço 1 e código postal. Estes dois exemplos são ambos muito bem na mesma família coluna endereço residencial.
Tendo em números variáveis 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 versões diferentes. Estas 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, que basicamente é a sinalização que o valor é eliminado em um determinado ponto no tempo.
Todos os valores para a mesma chave de linha e coluna 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, valores são matrizes simplesmente byte. Por exemplo, eles podem ser texto, números ou até mesmo imagens. O que você armazena neles é até você.
Video: Como Salvar Arquivos no Google Drive - Arquivos online Gratís | Ezec Tech
Apenas alguns clones Bigtable apoiar valor 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 seus índices de consulta gama (menos do que e maior 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.