Par chave-valor bancos de dados em um ambiente de dados Big
De longe, o mais simples dos bancos de dados em um ambiente de dados NoSQL grande (não-only-SQL) são aqueles em que o modelo par chave-valor (KVP). bases de dados KVP não requerem um esquema (como RDBMSs) e oferecem grande flexibilidade e escalabilidade.
bases de dados KVP não oferecem capacidade de ACID (atomicidade, consistência, isolamento, durabilidade), e requerem implementadores de pensar sobre a colocação de dados, replicação e tolerância a falhas, pois não são expressamente controlado pela tecnologia em si. bases de dados KVP não são digitados. Como resultado, a maior parte dos dados é armazenado como cordas.
Chave | Valor |
---|---|
Cor | Azul |
Libação | Cerveja |
Herói | Soldado |
Este é um conjunto muito simplificada de chaves e valores. Em uma implementação de dados grande, muitas pessoas têm idéias diferentes sobre a cores, libações, e heróis.
Chave | Valor |
---|---|
FacebookUser12345_Color | Vermelho |
TwitterUser67890_Color | acastanhado |
FoursquareUser45678_Libation | vinho # 147-White # 148- |
Google + User24356_Libation | martini # 147-seco com uma torção # 148- |
LinkedInUser87654_Hero | Número 147-Top de vendas performer # 148- |
Como o número de usuários aumenta, mantendo o controle de chaves precisas e valores relacionados pode ser um desafio. Se você precisa manter o controle das opiniões de milhões de usuários, o número de pares chave-valor associado com eles pode aumentar exponencialmente. Se você não deseja restringir as escolhas para os valores, a representação da cadeia genérica do KVP proporciona flexibilidade e legibilidade.
Você pode precisar de alguns dados de ajuda para organizar adicionais em um banco de dados de valores-chave. A maioria oferece a capacidade de chaves de agregação (e seus valores relacionados) em uma coleção. As coleções podem consistir de qualquer número de pares chave-valor e não requerem controle exclusivo dos elementos KVP individuais.
Um banco de dados do par chave-valor de código aberto amplamente utilizado é chamado Riak. Ele é desenvolvido e suportado por uma empresa chamada Basho Technologies e está disponível sob a v2.0 Apache Software License.
Riak é uma implementação muito rápida e escalável de um banco de dados de valores-chave. Ele suporta um ambiente de alto volume com rápida mudança de dados, porque é leve. Riak é particularmente eficaz na análise em tempo real da negociação de serviços financeiros. Ela usa # 147 baldes # 148- como um mecanismo de organização para coleções de chaves e valores.
implementações Riak são aglomerados de nós físicos ou virtuais organizados de forma peer-to-peer. No nó mestre existe, de modo que o cluster é resistente e altamente escalável. Todos os dados e operações são distribuídos em todo o cluster. Cluster maior desempenho melhor e mais rápido do que aglomerados com menos nós. Comunicação no cluster é implementado através de um protocolo especial chamado fofoca. Fofoca armazena informações de status sobre as informações de cluster e ações sobre baldes.
Riak tem muitos recursos e é parte de um ecossistema que consiste no seguinte:
Processamento paralelo: Usando MapReduce, Riak suporta uma capacidade de decompor e recompor consultas em todo o cluster para análise em tempo real e computação.
Links e ligação curta: Riak pode ser construído de modo a imitar uma base de dados gráfico usando ligações. Um link pode ser pensado como uma conexão unidirecional entre pares chave-valor. Andar a pé (a seguir) as ligações irá fornecer um mapa de relações entre pares chave-valor.
Pesquisa: Riak Search tem uma capacidade de pesquisa de texto completo distribuído tolerante a falhas,. Baldes podem ser indexados para uma rápida resolução de valor para as chaves.
índices secundários: Os desenvolvedores podem marcar valores com um ou mais valores de chave de campo. O aplicativo pode, em seguida, consulta o índice e retornar uma lista de chaves correspondentes. Isto pode ser muito útil em grandes implementações de dados porque a operação é atómica e vai apoiar comportamentos em tempo real.
implementações Riak são mais adequados para
dados de usuário para as redes sociais, comunidades, ou jogos
De alto volume, recolha de dados rich-media e armazenamento
camadas de armazenamento em cache para conectar RDBMS e bancos de dados NoSQL
As aplicações móveis que requerem flexibilidade e confiabilidade