ユーザ用ツール

サイト用ツール


dynamodb

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 の使い分けほど厳しくはなさそう

過去スライド

https://www.slideshare.net/nishimotz/200429-python

<html> <iframe src="www.slideshare.net/slideshow/embed_code/key/M7addDvZBofHhI" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="www.slideshare.net/nishimotz/200429-python" title="200429 python" target="_blank">200429 python</a> </strong> from <strong><a href="https://www.slideshare.net/nishimotz" target="_blank">Takuya Nishimoto</a></strong> </div> </html>

dynamodb.txt · 最終更新: 2021/10/14 16:28 by Takuya Nishimoto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki