我正在开始一个涉及存储大型对象数据库和对象之间关系的个人项目。我选择了Hadoop和HBase,因为它需要是多节点的,并且大部分数据都是稀疏的。
来自RDBMS世界我花了很多时间阅读HBase的面向列的结构,并且根据当前的文档,我无法弄清楚如何存储对象和对象之间的关系。
对象本身可以与其他对象具有无限数量的关系,以及无限数量的任意属性。关系也可以具有属性。我的目标是让两个“人”对象通过“已婚”关系链接,而已婚关系有一个属性“日期”,我希望(将来)能够写一个MapReduce来快速找到所有在x和y之间结婚的人。
答案 0 :(得分:1)
有两个步骤可以遵循(据我所知)。
如果搜索结果可以等待MapReduce完成,那么它很好,但是如果你需要更快速的结果,我会实际上使用另一种工具进行各种搜索,例如弹性搜索,Apache Solr,Apache Lucene等。范围查询在搜索工具(如Solr)中非常简单,结果将比MapReduce快。选择搜索工具的另一个原因是根据需要获取排序顺序。