回答问题

好的,假设我有一个包含 100 多个表的大型 MySql 数据库。虽然它运行得很好,但我有两个表,每个表每年可以超过 1 亿个条目。在这两个表上,我必须执行搜索和计算,而不仅仅是存档信息。

我正在考虑将这些表的逻辑转移到 NoSQL 数据库,因为它具有良好的可扩展性。(MongoDB,CouchDB)

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

虽然能够编写一个自动从nosql db中提取数据的sql查询太漂亮了,但也许还有另一种方法;就像在 MySQL 中使用存储的 plsql 过程来调用 NoSQL 数据库上的查询一样。或者从 plsql 调用系统命令并获取结果。

只是想提一下,我以 MySQL 为例,它可以是任何东西,Oracle,Postgres。

Answers

所以做这样的事情的流行语是Polyglot Persistence(也许这有助于进一步的研究)。大多数情况下,您必须自己集成这些不同的数据存储。我知道有两种解决方案,但我还没有测试过它们。

第一个是使用 EclipseLink 作为两个数据存储之上的抽象。我为此找到的第一个链接:http://blog.eisele.net/2012/11/polyglot-persistence-eclipselink-with.html

第二个是使用 PostgreSQL 和外部数据包装器在 Postgres 中嵌套一个 nosql 数据库:http://wiki.postgresql.org/wiki/Foreign_data_wrappers

Logo

MongoDB社区为您提供最前沿的新闻资讯和知识内容

更多推荐