我正在使用Amazon DynamoDB爲活動流存儲基於事件的數據。哪個哈希鍵最適合DynamoDB中的事件數據?
我自動爲每個月創建一個新表,並打算將事件數據存儲在每個相關表中。這樣,只要刪除舊錶格,我可以在需要時快速刪除舊的月份,並且可以更好地調整到更新的表格。
但是,根據閱讀亞馬遜文檔,我可以看到散列鍵本身非常重要。
預置吞吐量取決於主鍵選擇和單個項目的工作負載模式。在存儲數據時,Amazon DynamoDB將一個表項目分成多個分區, 主要基於散列鍵元素分配數據。與表關聯的預配置吞吐量在分區之間也均勻分配 ,而不跨 分區跨預配吞吐量共享。
我很難找到我的頭。
所以我的問題,與上面的是一種精神,這散列鍵是在這兩者之間更好:
1382465533_john.doe
或:
john.doe_1382465533
上述鍵是用戶標識和事件時間戳的組合。
如何將這些表將被查詢...
這些表將不有一系列關鍵作爲,不要求這個用例。
此數據將用於爲用戶構建活動源。
當事件發生時,將個人活動ID推送(扇出)到用戶關注者redis列表中(每個用戶一個列表);
因此,當用戶請求的流,我們做到以下幾點:通過activityid的從Redis的
- 獲取列表和構建BatchGetItem查詢拉出來DynamoDB的。
考慮到這一切,我需要了解的是如何最好地在活動表中定義我的散列鍵。首先是時間戳或首先使用userid。 DynamoDB使用什麼邏輯來自動分區散列鍵?
在此先感謝您的任何建議。