DynamoDBで簡単なロギングサービスを書いています。
user_idハッシュとタイムスタンプ(Unixエポックint)範囲をキーとするログテーブルがあります。
サービスのユーザーがアカウントを終了すると、範囲の値に関係なく、テーブル内のすべてのアイテムを削除する必要があります。
この種の操作を実行するための推奨される方法は何ですか(何百万ものアイテムが削除される可能性があることに注意してください)?
私が見る限り、私の選択肢は:
A:スキャン操作を実行し、アイテムがなくなるまで、返された各アイテムに対してdeleteを呼び出します。
B:BatchGet操作を実行し、アイテムがなくなるまで各アイテムで削除を再度呼び出します
どちらも時間がかかるので、どちらもひどく見えます。
私が理想的には、LogTable.DeleteItem(user_id)を呼び出します-範囲を指定せずに、すべてを削除してもらいます。