2010-04-27 5 views
18

J'essaie actuellement de choisir entre différentes bases de données NoSQL pour mon projet. Le projet est écrit en clojure et javascript. Je suis actuellement à la recherche de trois candidats pour le stockage. Quelles sont les forces et les faiblesses relatives de MongoDB, FleetDB et CouchDB? Lequel est le mieux supporté dans Clojure? Lequel est le mieux supporté sous Linux? Ai-je manqué un meilleur produit (doit être libre et OSS)?Bases de données Clojure et NoSQL

Répondre

5

Nous utilisions Clojure + MongoDB, et ils ont travaillé ensemble très bien. Principalement à cause du modèle de données JSON, fourni par MongoDB, qui pourrait être facilement transformé vers/depuis les structures internes de Clojure.

0

considérez aussi Redis DB.

page du projet: http://code.google.com/p/redis/

et Clojure bibliothèque client pour elle: http://github.com/ragnard/redis-clojure/

+0

Ce qui est mieux ou différent Redis? –

+0

désolé, je n'ai aucune information sur les autres DB, vous avez mentionné. Je viens d'ajouter "redis" à votre liste de la DB, que j'ai essayé d'utiliser avec Clojure. ça fonctionne bien, mais il y a eu quelques problèmes de compilation sous Windows. – zmila

2

Je pense que le property graph data model de Neo4j est un ajustement très agréable à Clojure, voir this wiki page des liens vers plus d'informations. En ce qui concerne le libre, Neo4j est publié sous la licence AGPL3, ce qui signifie qu'il est libre d'utiliser dans des projets open source en utilisant une licence compatible. La société de soutien commercial Neo Technology peut fournir des licences commerciales.

+0

Pourquoi pensez-vous que Neo4j est meilleur? Le soutien de clojure ne semble pas avoir été mis à jour depuis l'année dernière. –

+1

Je n'ai pas prétendu que c'était mieux que quelque chose d'autre :-) Mais d'après ce que j'ai vu les données graphiques + Clojure fait un bon ajustement. Le dernier commit sur les fixations date d'il y a une semaine: http://github.com/bobby/clojure-neo4j – nawroth

+0

Je joue avec neo4j et clojure et je suis assez content jusqu'ici. Vous aurez probablement besoin d'autres types de dbs pour l'accompagner. J'utilise postgresql pour les requêtes non-traversal. La bibliothèque d'enveloppes [Borneo [(https://github.com/wagjo/borneo) est celle à utiliser. Ne vous embêtez pas si vos données n'ont pas de structure graphique naturelle. Aussi, Mad Wombat, je vous conseillerais de considérer vos dbs comme des structures de données optimisées pour des types de requêtes particuliers plutôt que comme des supports de stockage à source unique de vérité. –

0

Les MongoDB ont leur propre BSON (JSON binaire), ce qui peut améliorer les performances lors du mélange de nombreuses données binaires.

Comme il utilise javascript en interne, il serait probablement bon pour les parties Javascript du projet. Les dates de clj-time ne sont pas (n'étaient pas?) Compatibles avec le format de date de MongoDBs, bien que java.util.Date.s le soit.

Questions connexes