2012-08-22 35 views
1

我目前正在制定增量更新用戶數據的策略。我們假設我們的數據庫中有100_000_000條記錄,每個工作流程更新大約1_000_000條記錄。數百萬記錄的增量更新,索引與加入

這個想法是更新MapReduce作業中的記錄。使用索引存儲(如Cassandra)能夠隨機訪問當前記錄是否有用?或者最好從HDFS中檢索數據並將新信息加入現有記錄。

記錄大小爲O(200字節)。用戶數據具有固定長度,但應可擴展。日誌事件具有相似但不相等的結構。用戶記錄的數量可能會增加。近乎實時的更新是可取的,即。 3小時的時間間隔是不可接受的,幾分鐘就可以。

您是否對這些規模和數據有過任何經驗? 豬加盟速度是否夠快?閱讀所有記錄是否始終是瓶頸? Cassandra能夠有效地保存這些數據量嗎?哪種解決方案可擴展?那系統的複雜性呢?

回答

1

您需要首先定義您的要求。你的記錄量不是問題,但你沒有記錄長度。他們是否固定長度,固定字段號碼,可能會隨時間改變格式?我們在談論100字節記錄還是100,000字節記錄?如果您希望按字段/列進行查詢,則需要在字段/列上使用索引,除非您使用map/reduce完成所有工作。將用戶記錄數保持在100mill(1臺服務器可能就足夠了),還是每年增長100%(可能多臺服務器隨着時間的推移增加新服務器)。

如何訪問更新記錄取決於您是否需要實時更新它們或是否可以運行批處理作業。更新是每分鐘,每小時還是每月?

我強烈建議你做一些實驗。你有沒有做過任何測試?這會給你一個問題的背景,這將導致更客觀的問題和答案。根據你的問題,你不可能'白板'解決方案。