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.

ChaveValor
CorAzul
LibaçãoCerveja
HeróiSoldado

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.

ChaveValor
FacebookUser12345_ColorVermelho
TwitterUser67890_Coloracastanhado
FoursquareUser45678_Libationvinho # 147-White # 148-
Google + User24356_Libationmartini # 147-seco com uma torção # 148-
LinkedInUser87654_HeroNú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

menu