0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DynamoDB読み取り整合性

Posted at

DynamoDB の「読み取り整合性」は、データの一貫性(Consistency)をどう保証するかに関する設定です。DynamoDB では主に以下の2種類があります:


🧩 1. Eventually Consistent Reads(結果整合性のある読み取り)

✅ 特徴:

  • デフォルトの動作
  • 直前に書き込んだ値が、すぐに反映されない可能性がある
  • 少し待てば正しいデータが読める(最終的に整合性が取れる)

🔍 利点:

  • スループットが高く、読み取りコストが安い(1/2ユニット)
  • 読み取り性能を重視するユースケースで有効

🧩 2. Strongly Consistent Reads(強い整合性のある読み取り)

✅ 特徴:

  • 常に最新のデータを返す(書き込み後すぐに反映)
  • パーティション間での整合性を保証

🔍 利点:

  • 読み取りの正確性が重要な場面(たとえば在庫数、残高)に最適

⚠️ 注意点:

  • スループット使用量が多く、結果整合性の2倍の**読み取り容量ユニット(RCU)**を消費
  • グローバルテーブルでは使用不可(最強整合性はリージョンをまたいで保証できない)

✅ 比較表

特性 結果整合性 (Eventually Consistent) 強い整合性 (Strongly Consistent)
最新データの保証 ❌ すぐには保証されない ✅ 常に最新の書き込みが反映
RCU消費量 1 2
デフォルトかどうか ✅ はい ❌ 手動指定が必要
グローバルテーブル対応 ✅ 対応 ❌ 非対応

💡 使い分けのポイント

ユースケース 適した整合性
ユーザー投稿一覧の表示など 結果整合性(速さ重視)
在庫確認・口座残高・設定値確認 強い整合性(正確性重視)

🔧 強い整合性を使う方法(例)

AWS SDKやCLIで ConsistentRead を明示的に true にします:

aws dynamodb get-item \
  --table-name Products \
  --key '{"ProductId": {"S": "123"}}' \
  --consistent-read

✅ まとめ

用語 説明
結果整合性 高速・安価だが直前の書き込みが見えない可能性あり
強い整合性 常に最新のデータ取得が保証されるが、スループット消費が多い
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?