2009-08-14 66 views
0

我正在处理涉及监视大量rss/atom feed的项目。我想使用hbase进行数据存储,并且在设计模式时遇到一些问题。对于第一次迭代,我希望能够生成汇总的Feed(从反向时间顺序的所有Feed中的最后100个帖子)。使用hbase的Feed聚合器。如何设计架构?

目前我使用两个表:

Feeds: column families Content and Meta : raw feed stored in Content:raw 
Urls: column families Content and Meta : raw post version store in Content:raw and the rest of the data found in RSS stored in Meta 

我需要某种形式的索引表的汇总饲料。我应该如何构建? hbase是这种应用程序的不错选择吗?

问题更新:是否有可能(以hbase为基础)设计一个可以高效回答下面列出的查询的模式? HBase的用户邮件列表上

SELECT data FROM Urls ORDER BY date DESC LIMIT 100 

回答

2

彼得Rietzler答案:

在我们的项目,我们正在处理事件 名单,我们也有类似的 要求。我们通过 明智地选择我们的行键进行订购。我们使用 以下关键我们的活动(它们 应该由时间升序 的顺序排列):

eventListName/yyyyMMddHHmmssSSS-000 [-111]

其中eventListName是 事件列表的名称而000是三位数 实例ID 应用 不同的运行实例之间的歧义,和-111是可选的,以在发生 上一个实例相同毫秒 歧义的事件。

我们还插入和人工 行每天用id

eventListName/yyyyMMddHHmmssSSS

这使我们能够在 开始扫描每一天的开始,而不 通过事件列表搜索。

你需要知道的事实, 如果你有 插入一个非常高的负荷,那么总有一个HBase的区域 服务器正忙插入而 其他空闲......如果这是一个 问题你,你必须找到 为你的目的不同的钥匙。

你也可以使用HBase的指数 表,但我与它 没有经验,我记得邮件的邮件 名单上,这将双所有 请求,因为API会先 查找索引表,然后原始表 ??? (如果这不正确,请纠正我 ...)

亲切的问候,彼得

感谢彼得。