AI-200:Developing AI Cloud Solutions on Azure Azure データ管理サービスを使った AI ソリューションの開発 問1
Azure データ管理サービスを使った AI ソリューションの開発/Azure Cosmos DB for NoSQL を使った AI ソリューションの開発Azure Cosmos DB for NoSQL のコンテナーに、問い合わせの記録を保存しています。各項目には、検索には使わない長い本文(rawText プロパティ)が含まれており、書き込みのたびに消費する要求ユニット(RU)が大きいことが課題です。クエリでは rawText を条件に使いません。RU を抑える方法として適切なものはどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure データ管理サービスを使った AI ソリューションの開発」に対応。実際の試験問題ではありません)
- A整合性レベルを Strong に変更し、書き込みのたびにすべてのリージョンで同期させる
- BrawText の内容を項目の id に含め、ポイント読み取りで取得できるようにする
- Cインデックス作成モードを none に変更し、すべてのクエリでインデックスを使わないようにする
- Dインデックス作成ポリシーの excludedPaths に /rawText/? を追加し、検索に使わないプロパティをインデックスの対象から外す
正解:D
解説
Cosmos DB for NoSQL は、既定ですべてのプロパティにインデックスを作成します。インデックスが多いほど、書き込みで消費する RU とストレージが増えます。クエリで使わない大きなプロパティを excludedPaths でインデックスの対象から外すと、ほかのプロパティでの検索を保ったまま、書き込みの RU を抑えられます。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。整合性レベルを強くしても RU は減りません。かえって遅延やコストが増える方向の変更です。
- B誤り。id は項目を一意に識別する短い値に使うものです。長い本文を含めても、書き込み時のインデックス作成の負担は減りません。
- C誤り。インデックスを作らないと書き込みの負担は減りますが、ほかのプロパティを条件にしたクエリが非効率になり、要件に支障が出ます。
- D正しい。使わないプロパティだけをインデックスから除外するのが、検索性能を保ちながら書き込みの RU を減らす基本的な方法です。