DynamoDBのScanリクエスト1回で取得できるデータは最大1MB
DynamoDB でのスキャンの操作 - Amazon DynamoDB
1 回の Scan リクエストで、最大 1 MB のデータを取得できます。DynamoDB では、必要に応じてこのデータにフィルター式を適用して、結果をユーザーに返す前に絞り込むことができます。
1MB以上考慮して取得したい場合は、LastEvaluatedKey を使用してループ処理する
参考記事
ScanでDynamoDBテーブルから1MB以上のデータを取得する方法について | DevelopersIO
DynamoDB の Scan でテーブルのデータを漏れなく取得する為のメモ - ようへいの日々精進XP
Golangはじめて物語(第5話: DynamoDBで1MB以上のアイテムリストをクエリする) - Qiita
DynamoDB は1回の Query 関数で取得し切れない場合、「ここから続けてね」という情報を QueryOutput 構造体の LastEvaluatedKey に格納して返してくる。
この情報を持ち廻って、Query の ExclusiveStartKey に設定することで、次の Query では続きを取得してくれる。
LastEvaluatedKey が返ってきていれば、続きがある。無ければ、続きがないのでQueryを終わっていい。
for ループで LastEvalueateKey をチェックして繰り返し取得する実装になりそう
guregu/dynamoではScan.All() が既に考慮してくれている?要調査
https://github.com/guregu/dynamo/blob/master/scan.go#L111