代码之家  ›  专栏  ›  技术社区  ›  Kevin Loney

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

  •  2
  • Kevin Loney  · 技术社区  · 17 年前

    我正在工作的项目的需求似乎指向将关系数据库(如postgre、MySQL)与键值存储(如HBase、Cassandra)结合使用。我们的数据几乎可以很好地分成两种数据模型中的一种,除了少量的相互依赖性。

    这不是试图将关系数据库塞进键值存储;它们相互独立。

    有什么严重的理由不这样做吗?

    3 回复  |  直到 17 年前
        1
  •  3
  •   Jonathan Leffler    17 年前

    它应该很好用。

    您需要注意以下几点:

    • 您的程序现在负责存储之间的数据一致性,而不是关系模型。
    • 根据您的技术,您可能有也可能没有跨数据存储的事务。在这里,如果出现故障,您可能需要对一些手动清理工作进行编程。
        2
  •  2
  •   Jonathan Leffler    17 年前

    和设拉子·贝吉一样,我担心“除了少量的相互依赖”。有许多事情需要考虑,这些问题的答案将帮助你决定做什么。

    • 若相互依存关系出了问题,会发生什么?(客户赔钱——然后你需要在整个过程中使用DBMS;你赔钱——可能是一样的;有人被报告拥有3045分,而他们实际上拥有3046分——也许这并不重要。)
    • 当出现问题时,修复“混乱”有多难?
    • 有多少工作在键值存储上,有多少工作在DBMS上?
    • 可以通过将一些东西从键值存储移到DBMS来消除相互依赖性吗?
    • 当用作键值存储时,DBMS的速度有多慢?(你确定没有办法让它接近平价吗?)

    如果您对这些问题和相关问题有足够的答案,那么可以采用混合设置-您已经仔细考虑了,权衡了风险,形成了判断,继续进行是合理的。如果你没有答案,就去找他们。

        3
  •  0
  •   Jonathan Leffler    17 年前

    当您说键值存储时,您的意思是像在会话或缓存类型的实现中一样吗?做这样的事情总是有原因的……从数据库中读取和写入数据通常是您资源最密集的操作。更多细节?