2015-06-27 51 views
0

如果我想用大量域名填充DynamoDB表,則每個域名(example.com)都有兩部分,主機名(示例)和頂級域(COM)。在DynamoDB中存儲域名

我想確定如何最好地使用散列和範圍主鍵來存儲這個。根據文檔,你想分散密鑰的哈希部分,所以我想應該使用完整的域名(example.com),範圍可以是域的更新日期。這將允許我查詢在特定日期之後更新的所有域。這聽起來像是一個很好的設計嗎?

爲了獲得最大的DynamoDB吞吐量,創建表格,其中 哈希鍵元素具有大量不同的值,和值 要求相當均勻,如隨機越好。

+1

與NoSQL問題一樣。最好是,如果你有什麼問題你會申請。讀/寫比率等。 –

+0

每天寫更新一次,讀取是零星和隨機的。 – Adam

回答

0

使用域名作爲散列鍵和更新日期作爲範圍鍵似乎給出了散列鍵的良好物理分佈。但是,如果域名每秒更新超過500次,那麼我會評估其他策略,如將udpates寫入以UUID作爲散列鍵的表中,在更新表上啓用DynamoDB Stream並使用KCL使用該流+ Streams Adapter或Lambda在您存儲系統當前狀態的位置更新緩存。最後,查詢操作一次只涉及一個特定的散列鍵,但是,如果您使用日期時間字符串作爲範圍鍵,則您可以確切地向前和向後分頁,從最近或最近的更新開始特定的域名。