2017-07-01 16 views
0

私は3 GSIのDynamoDBテーブルを持っています。私はテーブル上で3つの操作を実行する必要があります - 保存、削除、取得します。すべてのアイテムは一意になります。私は混乱してい 一つが良くなりますどの -DynamoDBMapperConfig ClobberまたはUpdateを使用してDynamoDBからアイテムを保存および削除する場合

I持って、次の変数 - 1 iは1 iは、削除のために使用すべき保存

ddbMapper.save(item, ddbMapperConfigUpdate); or ddbMapper.save(item, ddbMapperConfigClobber); 

のために使うべき

ddbMapperConfigClobber = new DynamoDBMapperConfig.Builder().withConsistentReads(
      DynamoDBMapperConfig.ConsistentReads.CONSISTENT) 
      .withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.CLOBBER).build(); 


ddbMapperConfigUpdate = new DynamoDBMapperConfig.Builder().withConsistentReads(
      DynamoDBMapperConfig.ConsistentReads.CONSISTENT) 
      .withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.UPDATE).build(); 

-

ddbMapper.delete(item,ddbMapperConfigClobber); or ddbMapper.delete(item,ddbMapperConfigUpdate); 

答えて

0

ここには、さまざまな保存動作を説明するAWSドキュメントがあります。

https://aws.amazon.com/blogs/developer/using-the-savebehavior-configuration-for-the-dynamodbmapper/

各項目が存在異なる挙動を有します。

私はあなたが保存/読み取り/削除と更新ではなく、DynamoDBがトランザクションデータベースではないことを覚えておく必要があると言います。ですから、再試行と冪等について考える必要があります。 DynamoDBの実行自体の配信メカニズムがあります。また、発信者の保証レベル(少なくとも1回、最大で1回など)があります。

あなたが気に入っているかどうかにかかわらず、更新プログラムを気にする必要があります。 これはある意味で「重要」ではないかもしれませんが(なぜなら、同じ情報が常に伝播することを何とか保証しているからです)、DynamoDBはそのことを知らないので、質問に答える必要があります)

関連する問題