好吧,假设我有一个包含100多个表的大型MySql数据库。 虽然它运行得很好但我有两个表,每个表每年可以超过1亿个条目。 在这两个表中,我必须执行搜索和计算,而不仅仅是存档信息。
由于具有良好的可扩展性,我考虑将这些表的逻辑转移到NoSQL数据库。(MongoDB,CouchDB)
由于存储在这些表中的信息通过应用程序在许多查询中使用,我想是否有办法在两个数据库之间创建合并。
虽然能够编写一个自动从nosql db中提取数据的sql查询太漂亮了但也许有另一种方法;比如在MySQL中使用存储的plsql程序来调用NoSQL数据库上的查询。或者从plsql调用系统命令并获取结果。
只是想提一下,我用MySQL作为例子,它可以是任何东西,Oracle,Postgres。
答案 0 :(得分:1)
因此,做这样的事情的流行语是 Polyglot Persistence (这可能有助于进一步研究)。大多数情况下,您必须自己集成这些不同的数据存储区。我知道有两种解决方案,但我还没有测试过它们。
第一个是使用EclipseLink作为两个数据存储区之上的抽象。我找到的第一个链接:http://blog.eisele.net/2012/11/polyglot-persistence-eclipselink-with.html
第二个是使用PostgreSQL和Foreign数据包装器在Postgres中嵌套一个nosql数据库:http://wiki.postgresql.org/wiki/Foreign_data_wrappers