analógica integrada do CouchDB, mesmo que SQLite para o SQL Server
-
10-07-2019 - |
Pergunta
Eu gosto de uma idéia de bancos de dados orientados documentos, como CouchDB. Eu estou procurando analógico simples.
As minhas exigências é apenas:
- armazenamento de persistência para o esquema menos dados;
- alguns quering simples in-proc;
- bom ter transações e controle de versão;
- ruby ??API;
- map / reduce é aslo bom ter;
- deve funcionar em hospedagem compartilhada
O que não precisamos é REST / HTTP de interfaces (vou usá-lo in-proc). Também eu não preciso de todas as coisas escalabilidade.
Solução
Uma solução muito simples seria PStore partir de biblioteca padrão do ruby. Ele deve atender a quase todas as suas necessidades:
- PStore armazena rubi hierarquias de objeto em arquivos, assim você pode facilmente utilizar o Hash-like estruturas, você teria em CouchDB
- Você pode acessar o conteúdo do PStore com uma API simples
- Tem transações, mas há versões tanto quanto eu sei
- sim
- Você pode usar o mapa de Ruby e injetar funções
- Tudo que você precisa é ter acesso ao sistema de arquivos
Exemplo:
Inserir dados para o armazenamento:
require 'pstore'
store = PStore.new("/tmp/store")
store.transaction do
store["products"] = [{:name => "Test", :price => 100}
{:name => "Bla", :price => 120}
{:name => "Oink", :price => 300}]
end
Consulta a soma dos preços de todos os produtos:
store.transaction do
store['products'].map {|p| p[:price]}.inject {|sum, p| sum + p}
end
Mais informação neste blogue post
Outras dicas
Parece que você precisa Berkeley DB . Ele faz tudo o que você lista, exceto por mapa / reduzir.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow