2017-02-14 58 views

回答

0

通過使用UpdateItem API,Query API和GSI的組合,您可以通過在DynamoDB中上次讀取的時間回想項目。 首先,估算您的應用程序從DynamoDB表中隨機讀取價值1MB的項目的時間量。假設我們正在處理小項目,並且每個項目是< = 1KB,那麼如果表中的RPS爲100,則應用程序需要10秒鐘才能隨機讀取1MB的數據。 其次,創建一個GSI,用於投影所有屬性並被鍵入(PK = read_time_bucket,SK = read_time)。 GSI上的WPS應該等於小項目時基表的RPS。第三,使用帶有(ReturnAttributes = ALL_NEW,UpdateExpression =「SET read_time_bucket =:bucket,read_time =:time」,ExpressionAttributeValues = {「:bucket」:,「:time」:})參數的UpdateItem API來「讀取」每一個項目。 UpdateItemResult將包含該項目以及更新的上次讀取時間和存儲桶。 第四,您可以使用查詢API按照上次GSI上的讀取時間查找項目,並使用read_time_bucket和read_time上的關鍵條件。 您將需要根據項目大小和基表上的讀取/寫入模式來調整您的時間段大小和吞吐量設置。如果項目大小過大,請將投影限制爲SELECTED_ATTRIBUTES或KEYS_ONLY。