Boto3でDynamoDBのテーブルから複数レコードを一括で削除する

大瀧

2023.04.05

1225

こんにちは、大瀧です。

最近Boto3でDynamoDBのデータを操作することがあったので備忘録として残しておきます。

コード全体

注意点として、table/batch_writer()メソッドは一度に25件までしか削除できないため、forループで処理する。


import boto3


# 削除対象のレコードのパーティションキーをリストで指定
keys_to_delete = ['key1', 'key2', 'key3']


# DynamoDBテーブルに接続
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('table_name')


# BatchWriteItemリクエストを作成するためのリスト
delete_requests = []


# 削除対象のパーティションキーを含むDeleteRequestを作成し、リストに追加
for key in keys_to_delete:
    delete_requests.append({
        'DeleteRequest': {
            'Key': {
                'partition_key_name': key
            }
        }
    })


# BatchWriteItemリクエストを実行する
with table.batch_writer() as batch:
    for request in delete_requests:
        batch.delete_item(request['DeleteRequest']['Key'])


この記事をシェアする