現在、プロジェクトでさまざまなNoSQLデータベースを選択しようとしています。プロジェクトはclojureとjavascriptで書かれています。私は現在、ストレージの3つの候補を検討しています。MongoDB、FleetDB、CouchDBの相対的な長所と短所は何ですか?Clojureでより適切にサポートされているのはどれですか?Linuxでより適切にサポートされているのはどれですか?私はより良い製品を見逃しましたか(無料でOSSでなければなりません)?
6 に答える
私たちはClojure+MongoDBを使用していましたが、それらは非常にうまく連携していました。主に、MongoDBによって提供されるJSONデータモデルが原因で、Clojureの内部構造との間で簡単に変換できます。
MongoDBとCouchDBの比較:http ://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
Neo4jのプロパティグラフデータモデルはClojureに非常に適していると思います。詳細については、このwikiページを参照してください。無料に関しては、Neo4jはAGPL3ライセンスの下でリリースされています。つまり、互換性のあるライセンスを使用して、オープンソースプロジェクトで無料で使用できます。商業支援会社のNeoTechnologyは、商業ライセンスを提供できます。
この質問を見た人がClojure1.3で動作するredis-clojureの現在のバージョンを探している場合は、https ://github.com/tavisrudd/redis-clojureにアクセスしてください。
RedisDBも検討してください。
プロジェクトページ:http ://code.google.com/p/redis/
そしてそれのためのclojureクライアントライブラリ:http ://github.com/ragnard/redis-clojure/
MongoDBには独自のBSON(バイナリJSON)があり、大量のバイナリデータをシャッフルするときにパフォーマンスが向上する可能性があります。
内部でjavascriptを使用しているので、プロジェクトのJavascript部分に適していると思われます。clj-timeの日付は、java.util.Date.sとは異なりますが、MongoDBの日付形式と互換性がありません(そうではありませんでしたか?)。