【发布时间】:2013-04-14 23:29:04
【问题描述】:
我要设计一个Hbase表来存储用户信息,这些信息是针对社交网络的,比如:年龄、性别、教育、爱好、读过的书、去过的国家…… 注意:我们将来可能会添加更多信息,我们现在不知道所有信息。
例如: 姓名:Olha,年龄:25,性别:女,学历:信息技术学士,学历:计算机科学硕士,爱好:篮球,爱好:乒乓球,书籍:随风而逝,书籍:达芬奇密码,语言:英语,语言:法语,国家:德国
主要思想是能够进行如下查询: 返回所有女性,年龄:22岁,会说:英语,会说:法语,读过随风而逝的书,喜欢乒乓球,喜欢篮球和德语。
因此您可以向搜索查询添加任何条件。
您对优化此类搜索查询的 HBASE 表架构(行键、列族...)有何建议(考虑到我们将来会添加更多信息) 编写此类查询(扫描、获取、MapReduce)的最佳方法是什么。
谢谢
【问题讨论】:
-
我不认为 HBase 是复杂和动态查询的好选择。
-
对于这种高度互连的实体,我会考虑像 Neo4J 或 Titan 这样的图形数据库。取决于您对复制、可用性和成熟度的要求。
-
这是一个研究项目,所以我必须使用Hbase。
标签: hadoop nosql query-optimization hbase