在我目前的项目中,我正在尝试统一访问异构数据库的查询语言。异构数据库意味着它们用于访问数据的查询语言是不同的。例如,SQL是一种用于从Apache Derby访问数据的查询语言,而nonSQL用于MongoDB。
我的问题是“有没有任何领域特定的语言,已经被提出来统一异构数据库?”
请随时指导我的其他努力以及。
发布于 2012-10-08 23:28:17
这是一个相当有趣的问题。至少有一个被提议的解决方案被称为UnQL (非结构化数据查询语言)- http://www.couchbase.com/press-releases/unql-query-language。
我想开箱即用的UnQL至少可以在CouchDB和SQLite上工作。这似乎是向前迈出的一大步。
就我个人而言,我想说这样的任务似乎是一项棘手的任务,因为结构化和非结构化数据方法之间存在概念上的差异。无论如何,为某个应用程序使用的定义良好的SQL和NoSQL数据模型开发这样的DSL应该是相对容易的。
发布于 2012-10-08 23:58:34
有一个名为Hibernate OGM的项目,其目标是将JPQL推广到NoSQL数据库。
从他们的网页:
Java对象/网格映射器(OGM)旨在为NoSQL解决方案提供
持久性支持。它重用了Hibernate Core的引擎,但将实体持久化到NoSQL数据存储中,而不是关系数据库中。它重用Java Persistence Query Language (JP-QL)来搜索数据。
我没有亲自尝试过,所以我不能说它有多有用。
发布于 2013-05-06 14:49:44
JSONiq可以处理来自不同SQL和NoSQL产品的数据。The open source implementation of JSONiq有用于Couchbase、Oracle NoSQL、SQLite和JDBC的连接器。例如,下面的幻灯片展示了在Couchbase和MongoDB上执行的相同查询:https://speakerdeck.com/wcandillon/jsoniq-the-sql-of-nosql
https://stackoverflow.com/questions/12784297
复制相似问题