DynamoDB

since 2021-10-14

https://aws.amazon.com/jp/dynamodb/

Python ライブラリ = PynamoDB

https://pynamodb.readthedocs.io/en/latest/

SQL

クオータ

ページネーション

1つの Query のサイズの制限 1MB

テーブルクエリ結果をページ分割する = LastEvaluatedKey を使う

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Query.Pagination.html

PynamoDB + last_evaluated_key

https://pynamodb.readthedocs.io/en/latest/indexes.html#pagination-and-last-evaluated-key

メモ

同じもの

  • partition key = hash key
  • sort key = range key

テーブル設計

  • query で partition key は完全一致だけ使える。マルチテナントみたいなサービスだったらテナントID。そうでないなら「何か決まった値」にするか「フルスキャンしたくない条件」をなにか探すか。。
  • query で range key は大小比較(範囲絞り込み)できる。例えば UTCDateTimeAttribute = 文字列を格納して、日付で範囲指定。
  • partition key だけのテーブル、partition + range のテーブルが可能。range key だけのテーブルは作れない。

GlobalSecondaryIndex

PartiQL

  • where 使うなら partition key を省略できない、など、制約はありそう
  • PynamoDB の query と scan の使い分けほど厳しくはなさそう

過去スライド

dynamodb.txt · 最終更新: 2021/10/14 16:28 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0