2013-07-29 11 views
0

我想知道什麼是設置活動流數據表的密鑰的最佳方法。每個活動類型將具有不同的屬性(使用一些常見的屬性)。以下是對一些項目將包括一個例子:我應該如何爲活動流表設置我的DynamoDB密鑰

一個後續活動:

  • USER_ID
  • 時間戳
  • follower_user_id
  • followee_user_id

註釋活動

  • 類型
  • USER_ID
  • 時間戳
  • COMMENT_ID
  • commenter_user_id
  • commented_user_id

用於顯示我將查詢反對使用該流r_id並按時間戳排序。也將有其他類型的查詢 - 比如我會偶爾需要查詢USER_ID和類型,以及類似的東西COMMENT_ID,follower_user_id等

所以我的問題是:

  1. 如果我的主鍵使用user_id和時間戳的散列和範圍鍵?
  2. 我是否需要對每一個其他項目進行二級索引 - 例如comment_id還是會在沒有索引的情況下返回足夠快的結果?二級索引被限制爲5,這對於我需要執行的所有類型的查詢來說都是不夠的。

回答

0

我會考慮是否可以將數據分割成兩個(或多個)表格 - 以便更好地使用您的查詢。兩者結合起來的(如果)需要,即 - 你的類型將成爲您的表,而不是一個鑑別,就像您在SQL

如果不分開的表,那麼我的答案是

  1. 是的 - 我認爲這將是最好的選擇,因爲它似乎大部分時間,這將是你使用它的方式。
  2. 不,但您需要考慮最常見的查詢以及其周圍的性能考慮因素。哪些需要表現 - 哪些足夠好?

緩存和異步處理的組合可以允許緩慢執行的掃描足夠好 - 但它並不排除擁有一些本地二級索引的要求。

相關問題