Azure認定資格 WEB問題集&徹底解説
DP-900:Microsoft Azure Data Fundamentals
問題文と選択肢
この要件を満たすために、Power BI のデータモデルで設定すべき機能として最も適切なものはどれか。
- SUM 関数を使った売上合計を返すメジャー(Measure)を新規に定義する
- 日付テーブルの列をレベルとしてまとめた階層(Hierarchy)を作成する
- 売上テーブルと日付テーブルの間にリレーションシップ(Relationship)を新規作成する
- DAX 式で四半期の値を算出する計算列(Calculated Column)を追加する
A. SUM 関数を使った売上合計を返すメジャー(Measure)を新規に定義する
メジャーは、売上合計のように分析・レポートの対象とする数値を定義するもので、ディメンション(製品・顧客・時間など)に沿って集計される値そのものです。
集計する売上の値を用意することはできても、「年 → 四半期 → 月 → 日」という掘り下げの順序は定義しません。どれだけメジャーを定義しても、ドリルダウンの経路は生まれないため不適です。
B. 日付テーブルの列をレベルとしてまとめた階層(Hierarchy)を作成する
Power BI でデータモデルとして定義するものは、Microsoft Fabric と同じくセマンティック モデル(従来の OLAP でいうキューブに相当する分析モデル)と呼ばれ、メジャーとディメンションで構成されます。階層はこのモデルの中で、ディメンション テーブルの列をレベルとして順序付けてまとめたものです。Learn は「階層を使用すると、ディメンションのさまざまなレベルで集計値をドリルアップまたはドリルダウンできる」と説明しています。
日付テーブルの年・四半期・月・日の列から階層を作成してビジュアルに配置すれば、年別の合計から四半期・月・日へと段階的に掘り下げられ、各レベルの集計値はクエリ時に計算されます。列が既にそろっている本問で足りないのは、この順序付けの定義です。
C. 売上テーブルと日付テーブルの間にリレーションシップ(Relationship)を新規作成する
リレーションシップは、ファクト テーブル(売上)とディメンション テーブル(日付)をキー列で関連付ける設定で、日付の属性で売上を絞り込んだり集計したりするための土台になります。
しかしリレーションシップが定めるのはテーブルどうしのつながりであって、日付テーブルの中で年・四半期・月・日をどの順に掘り下げるかは定義しません。テーブルを関連付けただけでは、段階的な掘り下げの経路は生まれないため不適です。
D. DAX 式で四半期の値を算出する計算列(Calculated Column)を追加する
計算列は、DAX 式で行ごとの値を計算してテーブルに新しい列を追加する機能で、たとえば日付から四半期を算出したい場合に使います。
しかし本問の日付テーブルには年・四半期・月・日の各列が既に用意されているため、四半期の列を新たに作る必要はありません。列を増やしても掘り下げの順序は定義されず、ドリルダウンには結局階層が必要です。
段階的な掘り下げ(ドリルダウン)=階層。メジャーは数値、計算列は列、リレーションシップはテーブルのつながり。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| 「年 → 四半期 → 月 → 日」の順に段階的に掘り下げたい | 掘り下げの順序(レベル)を定義し、ドリルアップ/ドリルダウンを可能にするモデル設定を探す →選択肢(B)は候補 |
| 年・四半期・月・日の各列が既に用意されている | 列を作る計算列は不要。足りないのは列ではなく、列の並び順の定義 →選択肢(D)を消す |
| 必要なのは集計する数値ではなく、掘り下げの経路 | メジャーは集計する値の定義で、掘り下げの順序を持たない →選択肢(A)を消す |
| テーブル間のつながりではなく、日付テーブル内のレベル構造が問われている | リレーションシップはテーブルを関連付けるだけで、レベルの順序は定義しない →選択肢(C)を消す |
| 残る設定 | 日付テーブルの列をレベルとしてまとめた階層 →選択肢(B)が正解 |
ひっかけポイント
- リレーションシップは「売上を日付で分析する」ための土台なので必要そうに見えるが、テーブルのつながりを作る設定と掘り下げの順序を作る設定は別物
- 「四半期」という語から、DAX で四半期を算出する計算列を連想させる選択肢。問題文の「各列が既に用意されている」という前提を読み落とさない
- メジャー・計算列・リレーションシップ・階層はいずれも Power BI のモデル ビューで扱う用語。「数値」「列」「つながり」「レベルの順序」のどれを定義するかで区別する
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「日付テーブルに四半期の列が無く、日付から四半期を求めて掘り下げに含めたい」 | まず計算列で四半期を算出し、そのうえで階層を作成する。 |
| 「売上テーブルと日付テーブルが関連付けられておらず、日付の属性で売上を集計できない」 | リレーションシップの作成が正解に変わる。 |
| 「前年比の伸び率など、集計結果から算出する指標をレポートに表示したい」 | メジャーの定義が正解に変わる。 |
| 「商品をカテゴリー → 商品の順に掘り下げたい」 | 製品ディメンションの列で階層を作成する(階層は時間以外のディメンションにも作れる)。 |
| 「OneLake 上の Delta テーブルを、モデルにデータをコピーせずにメモリ内で高速にクエリしたい」 | Direct Lake ストレージ モードが正解軸に。 |
リファレンス
この問題を解くために必要な知識を扱う公式ドキュメントです。| 知識項目 | 公式ドキュメント |
|---|---|
| セマンティック モデル、メジャーとディメンション、属性階層によるドリルアップ/ドリルダウン、Power BI のモデル ビュー | データ モデリングの主要概念について説明する - Training | Microsoft Learn |
この要件を満たすために、Power BI のデータモデルで設定すべき機能として最も適切なものはどれか。
- SUM 関数を使った売上合計を返すメジャー(Measure)を新規に定義する
- 日付テーブルの列をレベルとしてまとめた階層(Hierarchy)を作成する
- 売上テーブルと日付テーブルの間にリレーションシップ(Relationship)を新規作成する
- DAX 式で四半期の値を算出する計算列(Calculated Column)を追加する
次の問題前の問題
会員機能
お役立ち情報
姉妹サイト
AWS
- CLF:クラウドプラクティショナー
- SAA:ソリューションアーキテクト-アソシエイト
- AIF:AIプラクティショナー
- SOA:CloudOpsエンジニア-アソシエイト
- DVA:デベロッパー-アソシエイト
- DEA:データエンジニア-アソシエイト
- MLA:機械学習エンジニア-アソシエイト
- SAP:ソリューションアーキテクト-プロフェッショナル
- DOP:DevOpsエンジニア-プロフェッショナル
- AIP:生成AIデベロッパー-プロフェッショナル
- SCS:セキュリティ-専門知識
Microsoft Azure
- AZ-900:Microsoft Azure Fundamentals
- AZ-104:Microsoft Azure Administrator
- AI-901:Microsoft Azure AI Fundamentals
- DP-900:Microsoft Azure Data Fundamentals