2009-08-14 55 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會先 查找索引表,然後原始表 ??? (如果這不正確,請糾正我 ...)

親切的問候,彼得

感謝彼得。