2

私の現在のプロジェクトでは、異種データベースにアクセスするためのクエリ言語を統一しようとしています。異種データベースとは、データにアクセスするためのクエリ言語が異なることを意味します。たとえば、SQLはApache Derbyからデータにアクセスするためのクエリ言語ですが、MongoDBの場合は非SQLです。

私の質問は、「異種データベースを統合するために提案されたドメイン固有言語はありますか?」です。

他の取り組みもお気軽にご相談ください。

4

4 に答える 4

1

JPQLをNoSQLデータベースに一般化することを目的としたHibernateOGMと呼ばれるプロジェクトがあります。

彼らのウェブページから:

Hibernate Object / Grid Mapper(OGM)は、NoSQLソリューションにJava Persistence(JPA)サポートを提供することを目的としています。Hibernate Coreのエンジンを再利用しますが、エンティティをリレーショナルデータベースではなくNoSQLデータストアに永続化します。Java Persistence Query Language(JP-QL)を再利用してデータを検索します。

自分で試したわけではないので、どれだけ便利かは言えません。

于 2012-10-08T15:58:34.410 に答える
1

それは非常に興味深い質問です。UnQL(非構造化データクエリ言語)と呼ばれるソリューションが少なくとも1つ提案されています-http ://www.couchbase.com/press-releases/unql-query-language
箱から出してすぐに、UnQLは少なくともCouchDBとSQLiteで機能すると思います。これは大きな一歩のようです。

個人的には、構造化データと非構造化データのアプローチの概念が異なるため、このようなタスクは難しい作業のように思われます。とにかく、特定のアプリケーションで使用される明確に定義されたSQLおよびNoSQLデータモデル用にこのようなDSLを開発するのは比較的簡単なはずです。

于 2012-10-08T15:28:16.933 に答える
1

JSONiqは、さまざまなSQLおよびNoSQL製品からのデータを処理できます。 JSONiqのオープンソース実装には、Couchbase、Oracle NoSQL、SQLite、およびJDBC用のコネクタがあります。たとえば、次のスライドデッキは、CouchbaseとMongoDBの両方で実行されている同じクエリを示しています:https ://speakerdeck.com/wcandillon/jsoniq-the-sql-of-nosql

于 2013-05-06T06:49:44.210 に答える
0

SPARQLは、W3Cで標準化されたクエリ言語であり、特定のタイプのデータベースではなく、抽象データモデル(RDF )上で機能するため、異種データベースクエリのイネーブラーとして非常に適しています。

SPARQLの実装は、ネイティブRDFデータベース(トリプルストアと呼ばれることが多い)を含むさまざまなNoSQLデータベースの上、およびリレーショナルデータベースの上に存在します。

于 2013-05-06T06:56:55.113 に答える