web-dev-qa-db-ja.com

DynamoDBから同じパーティションキーを持つ大きなデータを削除します

DynamoDBテーブルはこのように構成されています

A   B    C    D
1   id1  foo hi
1   id2  var hello

Aはパーティションキーで、Bはソートキーです。

パーティションキーしか持っておらず、ソートキーがわからず、同じパーティションキーを持つすべてのエントリを削除したいとします。

そのため、固定サイズ(1000など)のクエリでエントリをロードし、DynamoDBにパーティションキーが残っているエントリがなくなるまでバッチで削除することを考えています。

最初にロードせずにエントリを削除することはできますか?

https://docs.aws.Amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html

DeleteItem

テーブル内の単一のアイテムを主キーで削除します。

主キーには、すべての属性を指定する必要があります。たとえば、単純な主キーの場合、パーティションキーの値を指定するだけで済みます。複合主キーの場合、パーティションキーとソートキーの両方の値を指定する必要があります。

アイテムを削除するには、主キー全体(パーティション+ソートキー)を指定する必要があります。したがって、あなたの場合、パーティションキーでクエリを実行し、すべての主キーを取得してから、それらを使用して各アイテムを削除する必要があります。 BatchWriteItemを使用することもできます

https://docs.aws.Amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html

BatchWriteItem

BatchWriteItem操作は、1つ以上のテーブル内の複数のアイテムを配置または削除します。 BatchWriteItemへの1回の呼び出しで、最大16 MBのデータを書き込むことができます。これには、最大25の書き込みまたは削除要求を含めることができます。書き込まれる個々の項目は、最大400KBになる可能性があります。

DeleteRequest-指定されたアイテムに対してDeleteItem操作を実行します。削除されるアイテムは、Keyサブ要素によって識別されます。Key-アイテムを一意に識別する主キー属性値のマップ。このマップの各エントリは、属性名と属性値で構成されています。主キーごとに、すべてのキー属性を指定する必要があります。たとえば、単純な主キーの場合、パーティションキーの値を指定するだけで済みます。 複合主キーの場合、パーティションキーとソートキーの両方に値を指定する必要があります

8
F_SO_K