Azure Cosmos DB SQL APIコンテナがあり、/customerIdでパーティション分割されています。注文が行われた際、サービスはアトミックに次の処理を実行する必要があります。(1) 注文ドキュメントを作成する、(2) 顧客プロファイルのopenOrderCountを更新する、(3) 顧客のカートドキュメントを削除する。これら3つのドキュメントはすべて同じcustomerId値を共有しています。サーバー側のストアドプロシージャを使用せずに、すべての操作がまとめて成功または失敗するようにしたいと考えています。どうすればよいですか?
解答を選択
オプションをタップして解答を確認してください。
正解: Azure Cosmos DB SDKのTransactionalBatchを使用して、customerIdと同じPartitionKey値を持つ作成、置換、削除操作を発行します。.
これが解答である理由
Azure Cosmos DBのTransactionalBatchは、同じ論理パーティションキー内の複数のポイント操作をアトミックに実行する機能を提供します。これにより、すべての操作がまとめて成功するか失敗するかのどちらかになり、ACIDトランザクションが保証されます。提示されたシナリオでは、すべてのドキュメントが同じcustomerId(パーティションキー)を共有しているため、TransactionalBatchが最適なソリューションです。クロスパーティションACIDトランザクションはCosmos DBでは直接サポートされていません。Change Feed Processorは最終的な整合性を提供しますが、アトミックな操作には適していません。ETagを使用した個別のリクエストは、アトミック性を保証せず、複雑な再試行ロジックが必要になります。
試験に合格 — 終わりのない解答探しなしで
この試験のすべての検証済み問題と解説を1か所で入手し、準備時間を大幅に節約しましょう。1,000以上の認定 · 20以上の言語 · 無料で開始。
試験に早く合格する → カード不要