Azure認定資格 WEB問題集&徹底解説

DP-900:Microsoft Azure Data Fundamentals

正解 A問題
分野3:Azure 上の非リレーショナルデータの操作の考慮事項の説明 タスクステートメント3.1:Azure Storage の機能の説明 タスクステートメント3.2:Azure Cosmos DB の機能の説明
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある物流企業は、配送スキャンイベントをキーと値の形式で大量に記録するための保存先として、Azure Cosmos DB for Table ではなく Azure Table Storage を選定した。
この判断の根拠として最も適切なものはどれか。
  • 同等のワークロードにおいて、Azure Cosmos DB for Table よりも低コストで運用できるため
  • 複数のリージョンへの書き込み(マルチリージョン書き込み)を構成できるため
  • 読み取り・書き込みともに単一桁ミリ秒のレイテンシが SLA として保証されているため
  • クエリに使用できるインデックスとクエリ機能が Azure Cosmos DB for Table よりも高機能であるため
解説 頻出度★★★★★
この問題は、同じテーブル データ モデルと API を共有する 2 つのサービスのうち、あえて Azure Table Storage を選ぶ理由として、Table Storage の強みは低コスト。グローバル分散・レイテンシの裏付け・全プロパティの自動インデックスはすべて Azure Cosmos DB for Table 側の強みと切り分けられるかがポイント。
正解

A. 同等のワークロードにおいて、Azure Cosmos DB for Table よりも低コストで運用できるため

正解です。Azure Table Storage はストレージ アカウントの中で使うキー/値ストアで、料金は保存したデータ量とトランザクション数に応じた使用量ベースです。公式ドキュメントも Table Storage のデータ アクセスを「高速でコスト効率に優れる」と説明しています。
Azure Cosmos DB for Table は、同じデータ モデルのままより高いパフォーマンスと可用性、グローバル分散、自動セカンダリ インデックスを提供する上位のサービスです。Cosmos DB for Table にも使用量ベースのサーバーレス モードはありますが、こうした付加価値の分だけ、同等のワークロードでは一般に Table Storage の方が低コストになります。
配送スキャンのように「キーで書き込み、キーで引く」大量記録で高度な機能が要らないなら、コストを理由に Table Storage を選ぶのが妥当な判断です。

B. 複数のリージョンへの書き込み(マルチリージョン書き込み)を構成できるため

複数リージョンへの書き込み(マルチリージョン書き込み)はAzure Cosmos DB for Table の機能です。公式の比較表では、Cosmos DB for Table は 1 から 30 以上のリージョンにわたるターンキー グローバル配信を提供するとされています。
一方、Azure Table Storage のグローバル配信は「単一リージョン+任意で読み取り可能なセカンダリ リージョン 1 つ」で、通常時に書き込めるのはプライマリ リージョンだけです。複数リージョンへの書き込みは Table Storage を選ぶ根拠にならず、むしろ Cosmos DB for Table を選ぶ理由になります。

C. 読み取り・書き込みともに単一桁ミリ秒のレイテンシが SLA として保証されているため

読み取り・書き込みの1 桁ミリ秒のレイテンシ(99 パーセンタイルで読み取り 10 ミリ秒未満・書き込み 15 ミリ秒未満)を裏付けとして示しているのはAzure Cosmos DB for Tableです。
公式の比較表では、Azure Table Storage のレイテンシは「高速だが、待ち時間の上限はなし」とされています。レイテンシの保証が要件ならむしろ Cosmos DB for Table を選ぶべきで、Table Storage を選ぶ根拠にはなりません。

D. クエリに使用できるインデックスとクエリ機能が Azure Cosmos DB for Table よりも高機能であるため

2 つのサービスは同じテーブル データ モデルと操作を共有しており、大きな違いの 1 つがインデックスの範囲です。Azure Table Storage が持つのは PartitionKey と RowKey に対するプライマリ インデックスのみで、セカンダリ インデックスは無く、それ以外のプロパティでの絞り込みはスキャンになります。
一方、Azure Cosmos DB for Table はすべてのプロパティを自動的にインデックスし、インデックスを管理しなくてもクエリを高速化できます。インデックスとクエリ機能が高機能なのは Cosmos DB for Table 側であり、記述は逆です。

これだけ覚える(記憶フック)
安さなら Table Storage、性能・グローバル分散・自動インデックスなら Cosmos DB for Table。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
Cosmos DB for Table ではなく Table Storage を選んだ根拠 両者は同じデータ モデル・同じ SDK。Table Storage の側にある強みは低コスト
→選択肢(A)が正解
複数リージョンへの書き込み Table Storage は単一リージョン+読み取り可能なセカンダリ 1 つまで。グローバル分散は Cosmos DB for Table 側
→選択肢(B)を消す
単一桁ミリ秒のレイテンシ保証 Table Storage は「高速だが待ち時間の上限なし」。レイテンシの裏付けは Cosmos DB for Table
→選択肢(C)を消す
インデックスとクエリ機能 Table Storage はPartitionKey・RowKey のみ、Cosmos DB for Table は全プロパティを自動インデックス
→選択肢(D)を消す
配送スキャンイベントをキーと値の形式で大量に記録する キーで書いてキーで引く単純なアクセスなら高機能は不要で、コストが判断軸になる
→選択肢(A)が正解
ひっかけポイント
  • 選択肢 B〜D はどれも「実在する機能」で正しそうに聞こえるが、いずれもAzure Cosmos DB for Table 側の強み。「Table Storage を選んだ理由」としては主語が逆になっている
  • 「Cosmos DB はスループットを予約して常に課金される」と覚えているとコスト比較を雑に判断しがち。Cosmos DB for Table にも使用量ベースのサーバーレス モードがある。それでも高性能・グローバル分散の対価として一般に Table Storage の方が安い、が正確な理解
  • Table Storage もストレージ アカウントの geo 冗長で別リージョンにコピーを持てるため「マルチリージョン対応」と混同しやすいが、セカンダリは読み取り用の 1 リージョンだけで、複数リージョンへの書き込みはできない
  • 「Cosmos DB for Table は別物で、問い合わせ方法も違う」と思い込みがちだが、両者は同じテーブル データ モデル・同じ Azure Tables SDKで操作できる。違いは性能・分散・インデックス・料金
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「世界中のユーザーに低レイテンシで提供し、複数リージョンで書き込みたい」 Azure Cosmos DB for Table が正解に変わる。
「PartitionKey・RowKey 以外の任意のプロパティで高速にクエリしたい(インデックス管理はしたくない)」 全プロパティを自動インデックスする Azure Cosmos DB for Table。
「既存の Table Storage アプリをコードをほぼ変えずに性能強化したい」 同じ Azure Tables SDK で接続できる Azure Cosmos DB for Table への移行が正解軸に。
「キーと値の記録ではなく、動画や画像などのファイルを安く保存したい」 Azure Blob Storage(アクセス層で保管コストを調整できる)。
「項目の異なるJSON ドキュメントをそのまま格納し、SQL ライクにクエリしたい」 Azure Cosmos DB for NoSQL が正解軸に。
関連サービスの解説 Azure Table Storage
Azure Cosmos DB
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
Azure Table Storage と Azure Cosmos DB for Table の比較(レイテンシ・グローバル配信・インデックス・料金) Azure Table Storage のサポート - Azure Cosmos DB for Table | Microsoft Learn
Table Storage のコスト効率と、Cosmos DB for Table(サーバーレス モードあり)との関係 テーブル ストレージの概要 - Azure のオブジェクト ストレージ | Microsoft Learn
Azure Table Storage のデータ モデルと、Cosmos DB for Table が加える性能・グローバル分散・自動セカンダリ インデックス Azure Tables の詳細情報 - Training | Microsoft Learn
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.17 解説
ある物流企業は、配送スキャンイベントをキーと値の形式で大量に記録するための保存先として、Azure Cosmos DB for Table ではなく Azure Table Storage を選定した。
この判断の根拠として最も適切なものはどれか。
  • 同等のワークロードにおいて、Azure Cosmos DB for Table よりも低コストで運用できるため
  • 複数のリージョンへの書き込み(マルチリージョン書き込み)を構成できるため
  • 読み取り・書き込みともに単一桁ミリ秒のレイテンシが SLA として保証されているため
  • クエリに使用できるインデックスとクエリ機能が Azure Cosmos DB for Table よりも高機能であるため

(会員限定)当問題の評価をお願いします。改善に活用します。