2010-04-27 13 views
18

Attualmente sto cercando di scegliere tra diversi database NoSQL per il mio progetto. Il progetto è stato scritto in clojure e javascript. Attualmente sto esaminando tre candidati per l'archiviazione. Quali sono i punti di forza e di debolezza relativi di MongoDB, FleetDB e CouchDB? Quale è meglio supportato in Clojure? Quale è meglio supportato sotto Linux? Ho perso un prodotto migliore (deve essere gratuito e OSS)?Database Clojure e NoSQL

risposta

5

usavamo Clojure + MongoDB, e hanno lavorato molto bene insieme. Principalmente a causa del modello di dati JSON, fornito da MongoDB, che potrebbe essere facilmente trasformato in/da strutture interne Clojure.

0

considerare anche Redis DB.

pagina del progetto: http://code.google.com/p/redis/

e clojure libreria client per esso: http://github.com/ragnard/redis-clojure/

+0

Cosa c'è di meglio o di diverso in Redis? –

+0

scusa, non ho informazioni su altri database, hai menzionato. ho appena aggiunto "redis" alla lista il DB, che ho provato ad usare con Clojure. funziona bene, ma ci sono alcuni problemi con la build su Windows. – zmila

2

Penso che la property graph data model di Neo4j è davvero un bel bene di Clojure, vedere this wiki page per collegamenti a ulteriori informazioni. Per quanto riguarda il free, Neo4j è rilasciato sotto la licenza AGPL3, il che significa che è gratuito per l'utilizzo in progetti open source utilizzando una licenza compatibile. La società di supporto commerciale Neo Technology può fornire licenze commerciali.

+0

Perché pensi che Neo4j sia migliore? Il supporto per il clojure sembra non essere stato aggiornato dall'anno scorso. –

+1

Non ho affermato che fosse meglio di qualcos'altro :-) Ma da quello che ho visto i dati del grafico + Clojure si adatta bene. L'ultimo commit sui binding era solo una settimana fa qui: http://github.com/bobby/clojure-neo4j – nawroth

+0

Ho giocato con neo4j e clojure e sono abbastanza soddisfatto finora. Probabilmente avrai bisogno di altri tipi di dbs per utilizzarlo. Sto usando postgresql per le query non-traversal. La libreria [Borneo [(https://github.com/wagjo/borneo) è quella da usare. Non preoccuparti se i tuoi dati non hanno una struttura grafica naturale. Inoltre, Mad Wombat, ti suggerirei di pensare alle tue DB come strutture dati ottimizzate per particolari tipi di query piuttosto che come supporti di archiviazione a sorgente singola di verità. –

0

MongoDB ha il proprio BSON (JSON binario) che può offrire prestazioni più elevate quando si mischiano molti dati binari.

Poiché utilizza javascript internamente, probabilmente sarebbe utile per le parti Javascript del progetto. Le date di clj-time non sono (non erano?) Compatibili con il formato data di MongoDB anche se java.util.Date.s lo sono.

Problemi correlati