DP-900:Microsoft Azure Data Fundamentals Azure の非リレーショナルデータ 問5
Azure の非リレーショナルデータ/Azure ストレージの機能ある開発者は、Webアプリケーションのユーザープロファイルやデバイス情報のように、レコードごとに持つ項目が揃っていないデータを Azure Table Storage に格納することを検討しています。Azure Table Storage の特徴に関する次の記述のうち、誤っているものはどれか。
当サイトのオリジナル問題(DP-900:Microsoft Azure Data Fundamentalsの出題範囲「Azure の非リレーショナルデータ」に対応。実際の試験問題ではありません)
- Aパーティションキーとロウキーの組み合わせによって各エンティティを一意に識別し、テーブルごとにスキーマを固定せずに異なる構造のエンティティを混在させて格納できる。
- B複数のテーブルをまたいだ JOIN や外部キー制約を使った正規化済みのリレーショナルなクエリを得意としており、複雑な結合処理が必要なデータモデルに向いている。
- C同じパーティションキーを持つエンティティどうしはまとめて高速にクエリしたり、アトミックな一括操作の対象にしたりできる。
- D大量の構造化データを低コストで格納でき、同規模のデータを一般的な SQL データベースに格納する場合よりも低コストになる傾向がある。
正解:B
解説
誤っている記述は「複数のテーブルをまたいだ JOIN や外部キー制約を使った正規化済みのリレーショナルなクエリを得意としている」という選択肢です。Azure Table Storage はパーティションキーとロウキーによる key/attribute 型のスキーマレスな NoSQL ストアであり、複雑な JOIN や外部キー制約、正規化されたデータモデルを前提としたクエリは想定されていません。そうしたリレーショナルなクエリが必要な場合は、Azure SQL Database のようなリレーショナルデータベースを選ぶ必要があります。一方で、パーティションキー/ロウキーによるエンティティの一意識別とスキーマレスな格納、同一パーティションキー内での高速なクエリやアトミックな一括操作、SQL データベースと比べて低コストに大量データを格納できる点は、いずれも Table Storage の正しい特徴です。
選択肢ごとの解説
- A誤り。(これは正しい記述なので設問の答えではない)Table Storage はパーティションキーとロウキーでエンティティを一意に識別するスキーマレスな key/attribute ストアで、同じテーブル内に異なる構造のエンティティを混在させて格納できるため、正しい説明です。
- B正しい。(これが設問の「誤っている記述」に該当)Table Storage は JOIN や外部キー制約、正規化されたデータモデルを前提とした複雑なリレーショナルクエリには対応しておらず、そうした要件には Azure SQL Database などのリレーショナルデータベースが適しています。
- C誤り。(これは正しい記述なので設問の答えではない)同じパーティションキーを持つエンティティはまとめて高速にクエリでき、アトミックな一括操作の対象にもできるため、正しい説明です。
- D誤り。(これは正しい記述なので設問の答えではない)Table Storage は大量の構造化データを低コストで格納でき、同規模のデータを一般的な SQL データベースに格納する場合より低コストになる傾向があるため、正しい説明です。