2017-05-05 25 views
0

私は、データベース操作のためのAWS dynamodbを指し示すスプリングブートマイクロサービスを構築しています。私は相互作用するために以下のライブラリを使用しています:このような操作はCrudRepositoryでうまくいきますが、大量操作では非常に遅いです。 dynamodbのjdbcTemplate.batchUpdate()のようなオプションはありますか?AWS DynamodbのスプリングブートアプリケーションでのJdbctemplateの使用

<dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-dynamodb</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.github.derjust</groupId> 
     <artifactId>spring-data-dynamodb</artifactId> 
     <version>4.5.0</version> 
    </dependency> 
+0

Dynamodbにはバッチ更新機能がありません。それは原子でなければなりません。 – notionquest

答えて

0

spring-data-dynamodb上の利用可能batchSaveは、既存のアイテムを更新しませんAWS SDK DynamoDBMapper batchSaveを使用しています。

DynamoDBMapper.batchSaveは、既存アイテムの更新をサポートしないAmazonDynamoDB.batchWriteItem()を内部的に呼び出します。

DynamoDBMapper batchSave: -

は AmazonDynamoDB.batchWriteItem(BatchWriteItemRequest)APIへの1つ以上のコールを使用して、指定されたオブジェクトを保存します。 APIの必要に応じて、バージョン のチェックは実行されません。

このメソッドは、 AmazonDynamoDB.batchWriteItem()要求が 既存のアイテムを更新サポートしていないようSaveBehavior.CLOBBERが、指定されたかのように任意のSaveBehaviorがマッパーに設定し、常に 振る舞う無視します。

関連する問題