Azure Table Storage のデータモデルに関する正しい説明を 2 つ選択してください。
- A. 1 つのエンティティには最大 252 個のカスタムプロパティを持つことができ、スキーマレスで各エンティティが異なるフィールドを持てる
- B. エンティティはパーティションキーとロウキーの組み合わせで一意に識別され、同一パーティション内のクエリが最も効率的である
- C. パーティションキーの値は変更できないため、作成後にエンティティを別パーティションに移動することは自動的に行われる
- D. テーブル内のすべてのエンティティは同じスキーマ(同じフィールド定義)に準拠する必要がある
- E. ロウキーはパーティション内で一意である必要があり、同一パーティション内でのソート順にも使われる
解答と解説を見る
正解: B, E
Azure Table Storage は NoSQL キーバリューストアであり、エンティティはパーティションキー(PartitionKey)とロウキー(RowKey)の組み合わせで一意に識別される。同一パーティションキーを持つエンティティは同じ物理ノードに格納されるため、パーティション内クエリ(パーティションキーを指定したクエリ)が最も効率的である。またロウキーはパーティション内で一意であり、ロウキーのアルファベット順でエンティティが格納・返却される。選択肢 A は誤りで、1 エンティティが持てるプロパティはシステムプロパティ 3 つ(PartitionKey・RowKey・Timestamp)を含めて最大 255 プロパティであり、カスタムプロパティは 252 個が上限である。この部分自体は正しい。しかし「スキーマレスで各エンティティが異なるフィールドを持てる」は正しい記述だが、選択肢 D と矛盾するため D が誤りであると明示する。選択肢 C は誤りで、パーティションキーの変更は自動的には行われず、既存エンティティを削除して新しいパーティションキーで再作成する必要がある。選択肢 D は誤りで、Azure Table Storage はスキーマレスであり各エンティティが異なるプロパティセットを持つことができる。