【问题标题】:How to Design HBase Schema如何设计 HBase Schema
【发布时间】:2011-06-13 10:41:48
【问题描述】:

我们目前有一个正在运行的项目,它使用 RDBMS 数据库(有很多表和用于操作数据的存储过程)。当前流程是这样的:数据访问层将调用存储过程,该存储过程将从 RDBMS 中插入/删除/更新或获取数据(请注意,这些存储过程不执行任何批量处理。)。当前的数据结构包含大量主键、外键关系并对现有数据库表进行大量更新。a 我只想知道我们是否可以将 HBase 用于我们的目的?那么我们如何使用 Hadoop 和 HBase 代替 RDBMS?

【问题讨论】:

  • 我已将您的两个帐户合并在一起。 Please read this Faq entry about cookie-based accounts. 另外,StackOverflow 不是论坛;如果您有新问题,请提出新问题。如果您想在问题中包含更多信息,请edit it。如果您想与其中一位已回答的人互动,您可以给他们留言而不是回答。

标签: schema hadoop hbase


【解决方案1】:

您需要问自己,RDBMS 没有为您做什么,您希望通过迁移到 Hadoop/HBase 来实现什么?

这篇文章可能会有所帮助。还有很多。 http://it.toolbox.com/blogs/madgreek/nosql-vs-rdbms-apples-and-oranges-37713

如果目的是尝试新技术,我建议尝试他们的教程/入门。

如果您要解决的问题很明确,那么您可能需要阐明问题。

祝你好运!

【讨论】:

  • @charbel 当前系统存在性能问题是第一点。另外,我们希望将当前系统转换为分布式 KVS 以实现高可用性、容错和性能改进系统(我们也在评估 KVS 参数临时)。所以我很困惑将当前的关系数据/模式(具有复杂的数据结构)迁移到非结构化或半结构化数据中。当使用 hbase(作为其存储键值存储)时,我们面临缺乏连接表(如在 RBDMS 中)来获取数据的问题。有什么方法可以使用 HBase 有效地搜索列族中的数据?
  • 我认为@Charbel 的意思是您必须完全重新设计您的架构以及如何使用系统。正如您所指出的,没有连接的概念。这意味着您应该非规范化您的设计并重新考虑如何集成您的应用程序和数据存储
  • @Carbel,感谢您的回复。实际上考虑一个简单的用例。假设我在 RDBMS 中有两个关系表员工和部门。在 RDBMS 中,我可以通过使用 sql 查询连接这些表来检索数据,因为它们具有主外键关系。但是我如何在 hbase 中设计相同的表?或者我如何使用 hbase 保持相同的关系?我需要这两个表中的数据(加入后).. 我怎样才能在 Hbase 中实现它?
【解决方案2】:

仅仅因为您已经花费了大量的开发人员工作量,我不愿建议更换您当前的 rdbms。考虑到您的组织可能没有具有 hbase 所需经验的员工。迁移到 hbase 以及随之而来的数据转换和应用程序重写将非常昂贵且有风险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多