DynamoDBMapper のオプションの設定 - Amazon DynamoDB

DynamoDBMapper のオプションの設定

DynamoDBMapper のインスタンスを作成すると、そのインスタンスには、特定のデフォルトの動作があります。DynamoDBMapperConfig クラスを使用して、このデフォルトの動作をオーバーライドできます。

次のコードスニペットでは、カスタム設定を使用して DynamoDBMapper を作成します。

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDBMapperConfig mapperConfig = DynamoDBMapperConfig.builder() .withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.CLOBBER) .withConsistentReads(DynamoDBMapperConfig.ConsistentReads.CONSISTENT) .withTableNameOverride(null) .withPaginationLoadingStrategy(DynamoDBMapperConfig.PaginationLoadingStrategy.EAGER_LOADING) .build(); DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig);

詳細については、AWS SDK for Java API リファレンスの「DynamoDBMapperConfig」を参照してください。

DynamoDBMapperConfig のインスタンスに対して、次の引数を指定できます。

  • DynamoDBMapperConfig.ConsistentReads 列挙値:

    • EVENTUAL – マッパーインスタンスは、結果整合性のある読み込みリクエストを使用します。

    • CONSISTENT – マッパーインスタンスは、強力な整合性のある読み取リクエストを使用します。このオプションの設定は、loadquery、または scan オペレーションに対して使用できます。強力な整合性のある読み込みは、パフォーマンスと請求に影響を与えます。詳細については、DynamoDB の製品の詳細ページを参照してください。

    マッパーインスタンスに読み込み整合性の設定を指定しない場合、デフォルトは CONSISTENT になります。

  • DynamoDBMapperConfig.PaginationLoadingStrategy 列挙値 – query または scan からの結果など、ページ分割されたデータのリストをマッパーインスタンスが処理する方法を制御します。

    • LAZY_LOADING – マッパーインスタンスは、可能な場合にデータをロードし、ロードされたすべての結果をメモリに保持します。

    • EAGER_LOADING – マッパーインスタンスは、リストが初期化されるとすぐにデータをロードします。

    • ITERATION_ONLY – リストからの読み込みに Iterator のみを使用することができます。反復中、リストは、前のすべての結果をクリアしてから、次のページをロードすることで、最大 1 ページのロードされた結果をメモリに維持するようにします。つまり、リストを反復できるのは 1 回だけです。メモリのオーバーヘッドを低減するために、大きい項目を処理するときにこの方法を使用することをお勧めします。

    マッパーインスタンスにページ分割ロードの方法を指定しない場合、デフォルトは LAZY_LOADING になります。

  • DynamoDBMapperConfig.SaveBehavior 列挙値 – 保存オペレーション中にマッパーインスタンスが属性を処理する方法を指定します。

    • UPDATE – 保存オペレーション中、すべてのモデル化された属性が更新され、モデル化されていない属性は影響を受けません。プリミティブな数値型(byte、int、long)は 0 に設定されます。オブジェクト型は null に設定されます。

    • CLOBBER – 保存オペレーション中、モデル化されていない属性も含め、すべての属性をクリアし置き換えます。このオペレーションを行うには、項目を削除し、再作成します。また、バージョン付きフィールドの制約は無視されます。

    マッパーインスタンスに保存動作を指定しない場合、デフォルトは UPDATE になります。

    注記

    DynamoDBMapper トランザクションオペレーションは DynamoDBMapperConfig.SaveBehavior 列挙をサポートしません。

  • DynamoDBMapperConfig.TableNameOverride オブジェクト – クラスの DynamoDBTable アノテーションによって指定されたテーブル名を無視し、代わりに指定した別のテーブル名を使用するように、マッパーインスタンスに指示します。これは、実行時にデータを複数のテーブルに分割する場合に役立ちます。

必要に応じて、オペレーションごとに DynamoDBMapper のデフォルトの設定オブジェクトをオーバーライドできます。