2010-04-27 19 views
18

Actualmente estoy tratando de elegir entre diferentes bases de datos NoSQL para mi proyecto. El proyecto está siendo escrito en clojure y javascript. Actualmente estoy buscando tres candidatos para el almacenamiento. ¿Cuáles son las fortalezas y debilidades relativas de MongoDB, FleetDB y CouchDB? ¿Cuál está mejor soportado en Clojure? ¿Cuál está mejor soportado en Linux? ¿Extrañé un mejor producto (tiene que ser gratis y OSS)?Clojure y bases de datos NoSQL

Respuesta

5

Estábamos usando Clojure + MongoDB, y trabajaron muy bien juntos. Principalmente debido al modelo de datos JSON, provisto por MongoDB, que podría transformarse fácilmente a/desde las estructuras internas de Clojure.

0

considera también Redis DB.

página del proyecto: http://code.google.com/p/redis/

y clojure biblioteca cliente para ello: http://github.com/ragnard/redis-clojure/

+0

Qué es mejor o diferente sobre Redis? –

+0

lo siento, no tengo información sobre otros DB, mencionaste. acabo de agregar "redis" a su lista de la base de datos, que traté de usar con Clojure. funciona bien, pero hubo algunos problemas con la compilación en Windows. – zmila

2

creo que el property graph data model de Neo4j es un muy buen ajuste a Clojure, ver this wiki page para los enlaces a más información. En cuanto a la versión gratuita, Neo4j se lanzó bajo la licencia AGPL3, lo que significa que es de uso gratuito en proyectos de código abierto con una licencia compatible. La compañía comercial de respaldo Neo Technology puede proporcionar licencias comerciales.

+0

¿Por qué crees que Neo4j es mejor? El soporte de clojure parece no haberse actualizado desde el año pasado. –

+1

No dije que fuera mejor que otra cosa :-) Pero por lo que he visto, los datos de gráficos + Clojure encajan perfectamente. El último compromiso sobre las fijaciones fue hace solo una semana: http://github.com/bobby/clojure-neo4j – nawroth

+0

He estado jugando con neo4j y clojure y estoy muy satisfecho hasta ahora. Probablemente necesites otros tipos de dbs para completarlo. Estoy usando postgresql para consultas no transversales. La biblioteca de contenedor [Borneo [(https://github.com/wagjo/borneo) es la que se debe usar. No se moleste si sus datos no tienen una estructura gráfica natural. Además, Mad Wombat, te aconsejaría pensar en tus dbs como estructuras de datos optimizadas para tipos de consultas particulares en lugar de como medios de almacenamiento de una sola fuente de verdad. –

0

MongoDB tiene su propio BSON (JSON binario) que puede proporcionar un mayor rendimiento al barajar una gran cantidad de datos binarios.

Dado que utiliza javascript internamente, probablemente sería bueno para las partes de JavaScript del proyecto. Las fechas de clj-time no son (¿no?) Compatibles con el formato de fecha de MongoDB aunque java.util.Date.s sí lo son.

Cuestiones relacionadas