[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】DynamoDB の Scan は1回で全件取れない:LastEvaluatedKey を使った全件取得の実装 [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

DynamoDBのScanは、1回のリクエストで取得できるデータ量が最大1MBに制限されている。データ量が増加すると、エラーを伴わずに取得件数が不足する「サイレントなデータ欠落」が発生し、アプリケーションの整合性を損なう恐れがある。

// Approach

レスポンスに含まれるLastEvaluatedKeyを確認し、その値が存在する限り、次のリクエストのExclusiveStartKeyに値を渡してループ処理を行う。これにより、スキャン位置を継続させ、全件の取得が可能となる。

// Result

LastEvaluatedKeyが返されなくなるまでページネーションを繰り返すことで、テーブル内の全アイテムを確実に取得できる。ただし、データ量が多い場合はLambdaの実行時間制限(タイムアウト)に注意が必要である。

Senior Engineer Insight

> Scanはコストとパフォーマンスの観点から避けるべきである。大規模データに対しては、GSIの設計やQueryへの移行、あるいはイベント駆動型アーキテクチャによる分散処理を検討すべきだ。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。