レコードのパージ(一括削除)処理を書きました。将来の自分へのメモとしてソースコードを残したいと思います。そもそもこの書き方がベストな気が全くしないので、コードを晒すことでいろいろコメントをもらえないかなーという魂胆です。コメント頂けるとありがたいです。レコード削除の要件についてまず今回私が叶えたかった要件についてです。対象はHashキーとRangeキーを持つテーブルHashキーは全レコード共通(現時点では)Rangeキーにはレコードの作成時刻がYYYYMMDDHHMI形式で格納されているレコードは毎分作られるので、何もしないとそれなりの数のレコードが溜まっていく。そこで、一週間以上前までに作られたレコードを全て消したいが実現したいことです。下記の記事で全てのレコードを消すケース(RDBでいうTRUNCATE)が紹介されていたので、参考にさせていただきました。ありがとうございます。qiita.com一括削除プログラム私が作成したコードは下記になります。幾つか課題感があるので共有します。今回実現したかった要件は「YYYYMMDD2359より前の(小さい)レコードを全て削除」でした。設定し、Fromは無しできないかなと考えていました。空文字やNoneは受けつられなかったので、アプリ仕様を鑑みて下記のような形にしました。YYYYMMDD2359より前の(小さい)レコードを全て削除」となりました。今回はいいんですが、将来的にこれじゃダメな要件が出てくるかもしれないので(まぁどうにかなりそうですが)、どこかで調べてみたいところです。_get_week_ago_as_YYYYMMDD2359()))['Items']やろうと思えばできるのですが、全てのHashキーを取得して、その数だけこの処理をする形はイマイチなんじゃないかと悩み中です。削除速度についてあまり効率のいい削除方式ではないなーと思ったので、1分間でどれくらいのレコードを削除できるか実験してみたところ、1分間で約350レコードという結果でした。5にして実験してみると約20秒で約600件のレコードを削除できました。制限時間5分ギリギリかなーという状況です。上げる必要があるかもしれません。あげるのもどうかなーと考え中です。関する記事を書きました。知見が溜まってきた気がするのですが、「将来の拡張性を(ある程度)担保できる設計」についてはまだまだナレッジが不足している気がします。こればっかりは実際にシステムを運用してみて良い思いや辛い思いをしていくしかないと思いますので、今後も継続して使っていければと思います。今年もよろしくお願いします。はてなブログPro2児の父なITエンジニアです。好きなサッカーチームは川崎フロンターレです。その他、子育て、社会問題、シビックテック関連の記事についても書いていきたいと思います:)※各ポストは個人の意見であり、所属する組織の見解とは関係ありません。(1)月別アーカイブその他プライバシーポリシースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。