2017-08-03 70 views
0

當我們掃描DynamoDB表格時,我們可以/應該使用LastEvaluatedKey來跟蹤進度,以便在發生故障時可以恢復。該文件說,在插入時掃描DynamoDB表格

LastEvaluateKeyThe primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request.

我的問題是,如果我開始掃描,暫停,插入幾行,並從以前LastEvaluatedKey恢復掃描,我會恢復掃描後獲得這些新行?

我的猜測是我可能會錯過一些新的行,因爲新密鑰將被散列並且值可能小於LastEvaluatedKey

我的猜測是對的嗎?任何解釋或文件鏈接表示讚賞。

回答

1

它是通過你的數據順序去,它不知道在這個過程中添加的所有項目:

掃描操作順序進行;但是,爲了在較大的表或輔助索引上獲得更快的性能 ,應用程序可以通過提供段和TotalSegments 參數請求並行掃描操作 。

它不僅會錯過一些你已經開始掃描,也可以錯過一些添加項目前的掃描,如果你使用的是最終一致的讀取開始的之後加入的項目:

掃描在訪問 表中的數據時使用最終一致的讀取;因此,結果集可能不包括操作開始之前表中數據 的更改。

如果您需要跟蹤開始掃描後添加的項目,則可以使用DynamoDB streams