Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DynamoDBには集計系のクエリがないけどなんとかしたい

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 DynamoDBには集計系のクエリがないけどなんとかしたい

JAWS-UG彩の国埼玉支部 #8 彩の国埼玉支部 1周年 登壇資料

Avatar for 村上優稀

村上優稀

May 29, 2026

More Decks by 村上優稀

Other Decks in Programming

Transcript

  1. DynamoDBの仕組み 5 PK:USER#mucyan ja_text:一番好きなAWSサービス は? en_text:What is your favorite AWS

    service? PK SK japanese_text english_text USER#mucyan "550e8400-…" あなたが一番好きなAWSのサー ビスは何ですか? What is your favorite AWS service? USER#mucyan “923e2397-…" GSIのマルチキーサポートに興味 があります。 I'm interested in GSI multi-key support. USER#alice “343e9247-…" チップを渡そうとすると、おじさん は「必要ない、握手しよう」と言って くれました。 When I tried to give him a tip, he said, 'No need. Just shake my hand.' USER#alice “627e9641-…" 本当にカッコいいおじさんでした。 He was such a cool and classy old man. Partition1 Partition2 Partition3 Partition4 Partition5 Partition6 → O(1) 定数時間 PKを元に格納先 が決まる
  2. 7 で も 現 実 は こういうのが欲しくなる 1. 今週アクティブなユーザーが何人いるか知り たい

    2. 月単位で使用量を知りたい 3. ジョブの成功率を定期的に確認したい 私も趣味ツールをDynamoDBで運用していて
  3. 2. その文章を何回練習したか知りたい 11 書き込み時に集計を完了させてしまう方式(事前集計) PK SK japanese_text english_text answer_count USER

    #mucyan "550e8400- …" あなたが一番好きなAWSの サービスは何ですか? What is your favorite AWS service? 3 USER #mucyan “923e2397- …" GSIのマルチキーサポートに 興味があります。 I'm interested in GSI multi-key support. 5 瞬間英作文テーブル:answer_countは都度+1して更新 ⚫ RDB脳 ⚫ とりあえずデータ溜めておいたら、SQLでいかようにも集計できる ⚫ DynamoDB脳 ⚫ どんな集計したいか決めて、その集計ができるようにDB設計をする ⚫ RDBではDB設計が先、アクセスパターンは後 ⚫ DynamoDBではアクセスパターンが先、DB設計は後
  4. 3. 練習回数や習得済み割合を知りたい 13 DB層ではなくアプリコード側で集計する方式 PK SK result answered_at USER #mucyan

    SENTENCE#550e… #RECORD#1 good 2026-03-29T13:34:57+00:00 USER #mucyan SENTENCE#550e… #RECORD#2 bad 2026-03-29T13:35:10+00:00 学習レコードテーブル:不変ログとして保存 余談:SKにanswered_at含めればよかったと後悔中。。。 アプリコード側で扱えるデータ量なら、 アプリコード側で集計すればよい(TypeScriptなりPythonなりJavaなり)
  5. まとめ 集計も意外となんとかできるし、DynamoDB使おう!(特に個人開発) ⚫ 安い ⚫ RDS使ったら最低でも月に2000〜3000円はかかりません? ⚫ 個人開発レベルならDynamoDB無料枠に収まる場合が多い ⚫ アクセスパターンを自分で決めれるなら、クセ強いDynamoDBを採用しや

    すい ⚫ ネットワークのこと考えなくて良いの楽(Lambda + Dynamoの場合) ⚫ RDSやと踏み台サーバの用意とかするのめんどくさい ⚫ Aurora ServerlessがVPCなしのIAM認証で使えるそうだが、、、 ⚫ 速いってロマン 14