合并关系型数据库和非关系型数据库

4

假设我有一个拥有100多个表的大型MySql数据库。尽管它运行得非常好,但我有两个表每年都可能超过1亿条记录。在这两个表上,我需要执行搜索和计算,而不仅仅是归档信息。

考虑由于其良好的可扩展性,将这些表的逻辑转移到NoSQL数据库中。(如MongoDB、CouchDB)

由于这些表中存储的信息在应用程序中经常被查询使用,我在思考是否有一种方法可以在两个数据库之间创建合并。

虽然能够编写自动从nosql数据库中拉取数据的sql查询将会很美妙,但也许有另一种方法;例如,在MySQL中使用存储的plsql过程来调用NoSQL数据库上的查询。或者从plsql中调用系统命令并获取结果。

只是想提一下,我以MySQL为例,它可以是任何数据库,如Oracle、Postgres。


1
你听说过 Sqoop (http://sqoop.apache.org/) 吗?它可以在关系型数据库和 Hadoop 之间传输数据。 - Kevin
不,但我一定会研究它。 - ionutab
我不太明白你的意思。你是想要将这两个表中的一半数据从关系型数据库传输到非关系型数据库吗?如果是全部的数据的话,为什么还要重定向查询? - Ravi Khakhkhar
不,不是完全的,一半来自NoSQL,一半来自RDBMS。 - ionutab
1
顺便说一下,我大学里有一个关于合并关系型数据库和NoSQL数据库的论文项目建议,看起来非常有趣。 - ali
开发混合的关系型数据库/非关系型数据库解决方案听起来像是一条漫长而痛苦的道路。最好制定一个适当的迁移计划,然后在准备就绪时切换开关。 - sthomps
1个回答

1
所以,做这样的事情的时候流行词是多语言持久化(也许这有助于进一步研究)。大多数情况下,您将不得不自己完成这些不同数据存储的集成。我知道两个解决方案,但我没有测试过。
第一个解决方案是使用EclipseLink作为两个数据存储之上的抽象层。我找到的第一个链接是:http://blog.eisele.net/2012/11/polyglot-persistence-eclipselink-with.html 第二个解决方案是使用PostgreSQL和外部数据封装器来在Postgres中嵌套nosql数据库:http://wiki.postgresql.org/wiki/Foreign_data_wrappers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接