结合使用关系数据库和键值存储

时间:2009-07-02 21:44:56

标签: database architecture

我正在工作的项目的要求似乎指向使用关系数据库(例如postgre,MySQL)和键值存储(例如HBase,Cassandra)。除少量相互依赖外,我们的数据几乎可以很好地分解为两种数据模型中的一种。

这不是尝试将关系数据库塞入键值存储区;他们彼此独立。

有没有严重的理由不这样做?

3 个答案:

答案 0 :(得分:3)

它应该可以正常工作。

您需要注意/注意以下几点:

  • 您的程序现在负责商店之间的数据一致性,而不是关系模型。
  • 根据您的技术,您可能会或可能不会拥有跨数据存储的事务。在这里,您可能需要在发生故障时编写一些手动清理工作。

答案 1 :(得分:2)

我在SQL DBMS领域工作,所以考虑到这种偏见,但是......

与Shiraz Bhaiji一样,我担心“除了少量的相互依存”。有许多事情需要考虑,其中的答案将帮助您确定要做什么。

  • 如果相互依赖出现问题,会发生什么? (客户赔钱 - 然后你需要在整个过程中使用DBMS;你赔钱 - 可​​能是相同的;有人报告说他们真的有3046分时有3045分 - 也许没关系。)
  • 当出现问题时,修复“烂摊子”有多难?
  • 关键值存储有多少工作,DBMS有多少工作?
  • 可以通过将一些东西从键值存储区移动到DBMS来消除相互依赖性吗?
  • DBMS用作键值存储时有多慢? (你确定没有办法让它足够接近平价?)
  • 灾难恢复方案中会发生什么?同步备份?

如果你对这些问题和相关问题有足够的答案,那么可以选择混合设置 - 你已经考虑过了,权衡了风险,形成了判断,并且继续进行是合理的。如果您没有答案,请联系他们。

答案 2 :(得分:0)

当你说键值存储时,你的意思是在会话或缓存类型的实现中?总是有理由做这样的事情......读取和写入数据库通常是最耗费资源的操作。更多细节?