SQL NOSQL混合可能与否?

时间:2012-11-25 15:23:35

标签: sql nosql

我在关系数据库上有一个应用程序,需要更改才能保留更多数据。我的问题是,只有2个表将存储更多数据(最多数十亿条目),其中一个表由fk“链接”到其他表。我可以放弃这些表的关系模型。 我想保持db的其余部分完好无损,只更改这两个表。我也在这些表上做了很多查询 - 从简单的选择到分组和子查询 - 所以那里有更多的问题。

我对NoSQL的体验是有限的,所以我问的是哪一个兄弟姐妹(如果有的话)适合我的需要: - 庞大的数据 - 复杂的查询 - 与SQL数据库集成。这并不像前两个那么重要,如果值得,我可以将我的整个数据库迁移到等价物。

由于

1 个答案:

答案 0 :(得分:3)

关系数据库和NoSQL方法都可以处理具有数十亿个数据点的数据。根据提供的信息,很难提出有意义的具体建议。了解更多关于您要对数据执行的操作,选择有关硬件和网络拓扑的选项等等,将会很有帮助。

我假设您当前正在使用关系数据库,您可能已经考虑过分区或以其他方式构建较大的表,以便您的查询性能令人满意。这个活动本身可能是非常重要的,但恕我直言,一个优秀的数据库设计与优化的SQL可以在你明确需要探索替代方案之前走很长的路。

但是,如果您的数据使用看起来像一次写入,经常阅读,连接依赖项是可管理的,您需要对数据集执行一些聚合,那么您可能会开始研究Hadoop或MongoDB等替代方法 - 然而,这些选择需要在性能,功能,平台要求,延迟等方面进行权衡。如果没有两者之间的数据重复,您在查询级别上关于NoSQL存储库和SQL数据库之间的集成的特定问题可能无法实现。例如,MongoDB不喜欢加入(http://stackoverflow.com/questions/4067197/mongodb-and-joins),因此您必须考虑到这一点设计持久性模型,这可能涉及重复数据。

我想说的是 - 确定“正确”的方法取决于你的具体目标和限制。