2010-04-27 11 views
18

Ich versuche gerade, zwischen verschiedenen NoSQL-Datenbanken für mein Projekt auszuwählen. Das Projekt wird in clojure und javascript geschrieben. Ich betrachte derzeit drei Kandidaten für die Speicherung. Was sind die relativen Stärken und Schwächen von MongoDB, FleetDB und CouchDB? Welche wird in Clojure besser unterstützt? Welcher wird unter Linux besser unterstützt? Habe ich ein besseres Produkt vermisst (muss frei sein und OSS)?Clojure und NoSQL Datenbanken

Antwort

5

Wir wurden mit Clojure + MongoDB, und sie arbeiteten sehr gut zusammen. Hauptsächlich wegen des JSON-Datenmodells, das von MongoDB zur Verfügung gestellt wird, das leicht zu/von Clojure internen Strukturen umgewandelt werden könnte.

0

berücksichtigen Sie auch Redis DB.

Projektseite: http://code.google.com/p/redis/

und Clojure-Client-Bibliothek für sie: http://github.com/ragnard/redis-clojure/

+0

Was ist besser oder anders zu Redis? –

+0

Entschuldigung, ich habe keine Informationen über andere DBs, die du erwähnt hast. Ich habe gerade "redis" zu Ihrer Liste hinzugefügt die DB, die ich versuchte, mit Clojure zu verwenden. es läuft ok, aber es gab einige Probleme mit Build auf Windows. – zmila

2

ich denke, die property graph data model von Neo4j ist ein wirklich schönes fit zu Clojure, this wiki page für Links zu weiteren Informationen. Bezüglich der kostenlosen Version ist Neo4j unter der Lizenz AGPL3 veröffentlicht, was bedeutet, dass es kostenlos in Open-Source-Projekten mit einer kompatiblen Lizenz verwendet werden kann. Die kommerzielle Rückversicherungsgesellschaft Neo Technology kann kommerzielle Lizenzen bereitstellen.

+0

Warum denkst du Neo4j ist besser? Die Clojure-Unterstützung wurde seit letztem Jahr nicht aktualisiert. –

+1

Ich behauptete nicht, es war besser als etwas anderes :-) Aber von dem, was ich gesehen habe Graph Daten + Clojure macht eine gute Passform. Das letzte Commit auf der Bindung war vor einer Woche hier: http://github.com/bobby/clojure-neo4j – nawroth

+0

Ich habe mit neo4j und clojure gespielt und bin bisher recht zufrieden. Sie werden wahrscheinlich andere Arten von dbs brauchen, um damit zu gehen. Ich verwende postgresql für nicht-Traversal-Abfragen. Die Wrapper-Bibliothek [Borneo [(https://github.com/wagjo/borneo] ist die zu verwendende. Machen Sie sich keine Sorgen, wenn Ihre Daten keine natürliche Graphenstruktur haben. Außerdem, Mad Wombat, rate ich dazu, Ihre dbs als Datenstrukturen zu betrachten, die für bestimmte Abfragetypen optimiert sind, und nicht als Speichermedien mit einer einzigen Quelle. –

0

MongoDB haben ihre eigenen BSON (binäre JSON), die eine höhere Leistung beim Mischen einer Menge von Binärdaten geben kann.

Da es intern Javascript verwendet, wäre es wahrscheinlich gut für die Javascript-Teile des Projekts. Die Daten von clj-time sind nicht kompatibel mit MongoDBs Datumsformat, obwohl java.util.Date.s dies ist.

Verwandte Themen