Q35 — AWS DVA-C02 第1章

第 35/100 問 | ← 第1章

アプリケーションは、受信した各トランザクションに処理日付を追加します。このアプリケーションはPutItem操作を使用して、各トランザクションをAmazon DynamoDBテーブルに挿入します。各トランザクションには一意のID(transactionID)があります。時折、アプリケーションが同一トランザクションを複数回受信することがあります。 開発者は、DynamoDB内の重複トランザクションが最初に受信された日付ではなく、最新の処理日付を保持していることに気づきました。重複レコードは頻繁に発生しますが、大多数のトランザクションは一意です。 開発者が、PutItemが既存のレコードを更新しないように保証する、最もコスト効率の良いソリューションは何ですか?

正解: D. attribute_not_exists(transactionID)条件式を用いた条件付きPutを実装します。

解説

DynamoDBの条件式は、PutItemなどの書き込み操作時に特定の条件をチェックすることを可能にします。PutItemが既存のレコードを更新しないことを保証するには、transactionIDが存在しない場合のみ書き込みを許可する必要があります。選択肢Dはattribute_not_exists(transactionID)条件式を用いることでこれを実現し、transactionIDが存在しない場合にのみPutItemが成功します。これにより既存レコードの上書きを防ぎます。選択肢Aは技術的には可能ですが、余分なGetItem呼び出しを必要とするため効率が悪く、コストも高くなります。選択肢BのTTL(有効期限)は、過期した項目の自動削除に使用されるものであり、本問題とは無関係です。選択肢Cのattribute_existsはtransactionIDの存在をチェックするものであり、要求とは逆の動作になります。したがって、Dが最もコスト効率の良いソリューションです。 【灯笼考证提供:swufelp1999】