6

SimpleDB、Azure Tables、Cassandra、CouchDB、MongoDb などのさまざまな nosql データベース間での移植性を提供する共通のデータ アクセス フレームワークを探しています。アプリを構築しており、顧客がいずれかを使用できるようにしたいと考えています。彼らが望むnosqlストア。

よりリレーショナルなシナリオでは、nHibernate または Entity Framework よりも Linq を使用しますが、nosql データベース用の同等のフレームワークは見つかりませんでした。かなりの共通点があるように見えますが、私が見つけたのはデータベース固有の API だけです。存在しますか?できればLINQを使用したもの。

4

4 に答える 4

4

これらのことはあまりにも異なっていて、あまりにも具体的ではありません(少なくとも今のところ)。IDによってのみアクセスされるオブジェクトのラッパーのように、本当に単純なものが必要な場合は、希望があるかもしれません。実際、NoRMを見ると、さまざまなプロバイダーに適応できる可能性があります。

ただし、機能の小さなコアセットを除けば、これらの「NoSQL」データベースは多くの点でまったく異なります。つまり、さまざまなmap / reduce関数をどのように無差別に実装しますか?異なるアトミック操作をサポートする場合、アトミック操作をどのように実装しますか?

いずれにせよ、NoSQLのライフサイクルは時期尚早であり、これらすべてにとらわれないフレームワークを用意することはできません。Azureは基本的に、「ホストされたSQLサーバー」を優先してNoSQL製品を廃止しました。MongoDBはおそらく20か月前、CouchDBはまだバージョン0.11.xであり、SimpleDBは24か月未満であり、Cassandraはバージョン0.6.2であり、おそらく2、3年は定期的に使用されています。

私たちはまだそこにいません。

于 2010-06-28T04:22:42.827 に答える
2

一般的なクエリ言語 (UnQL と呼ばれる) が開発されています: http://www.unqlspec.org/display/UnQL/Home

于 2011-08-11T11:29:00.337 に答える
1

MongoDB用のLINQプロバイダーはありますが、「すべての」nosqldbに対する汎用の.netlinqプロバイダーはないと思います。

一般的なnosqlクエリ言語について考えている人もいます:http://nosql.mypopescu.com/post/731261002/a-common-nosql-query-language

于 2010-06-28T03:47:13.560 に答える
0

基本的な永続性要件しかない場合は、Memcached、Redis、InMemory、および FileSystem キャッシングのプロバイダーを使用して、共通のキャッシング APIを維持します。

Redis のみをサポートしていますが、非常に使い慣れた C# API を持つC# Redis クライアントがあります。永続的な POCO 型をネイティブにサポートし、Redis の高度なサーバー側データ構造のすべてをネイティブ .NET IList、ICollection データ構造として公開するため、LINQ などの既存の C# API で簡単に使用できます。

于 2010-09-11T15:26:21.547 に答える