Instiq
第3章 · セマンティックモデルと探索・分析·v2.0.0·更新 2026/7/16·読了目安 約9分

変更要約: DP-600 第3章を深掘り(図ja化・比較表/シナリオ/FAQ/ひっかけ/深掘り段落を全節に追加)

3.1セマンティックモデルと DAX

この節の要点

Power BI の セマンティックモデル(旧データセット)、リレーションシップメジャーDAX)、Direct Lake ストレージモードを理解します。分析の「意味の層」を実装し、最適化します。

準備したデータにビジネスの意味(メジャー・関係・階層)を与えるのが セマンティックモデル です。計算は DAX で定義します。

3.1.1セマンティックモデルの要素

セマンティックモデルがファクト/ディメンションのテーブル間リレーションシップ(1対多)を持ち、メジャー(DAX:SUM/CALCULATE など)と階層を定義し、ストレージモード(Direct Lake=OneLake の Delta を高速参照/Import/DirectQuery)を選び、Power BI レポートが参照する構成を示した図。
セマンティックモデルと DAX
  • リレーションシップ:テーブル間(ファクト↔ディメンション)の1 対多の関係を定義する。
  • メジャー(DAX)SUM・CALCULATE・タイムインテリジェンスなどの計算式を DAX で定義する。
  • ストレージモードDirect Lake(OneLake の Delta を高速参照)/Import/DirectQuery から選ぶ。
  • 階層/書式:ドリル用の階層や表示書式を整え、レポートで使いやすくする。
試験ポイント

「意味の層=セマンティックモデル」「計算=メジャー(DAX)」「ファクト↔ディメンション=1 対多リレーション」「OneLake の Delta を高速参照=Direct Lake モード」 は DP-600 で頻出です。スタースキーマ+メジャー+Direct Lake が高性能の鍵です。

コツ

CALCULATE はフィルターコンテキストを変更する DAX の中核関数です。前年比などのタイムインテリジェンスにもよく使われます。

DAX の要は コンテキスト:行ごとに評価される 行コンテキスト と、ビジュアルのスライサー/行列で決まる フィルターコンテキストメジャー(集計式・遅延評価)と 計算列(行ごとに事前計算・保存)は別物で、集計はメジャーが基本(計算列はモデルを肥大化させがち)。CALCULATE はフィルターコンテキストを変更する中核関数で、FILTERALLREMOVEFILTERSUSERELATIONSHIP と組み合わせ、タイムインテリジェンスTOTALYTDSAMEPERIODLASTYEAR 等)で前年比などを作ります(前提=連続した日付ディメンション+Mark as date table)。リレーションシップは原則 1 対多・単一方向(双方向は曖昧さ/性能リスク)で、非アクティブな関係は USERELATIONSHIP で切替。性能面では Direct Lake/Import で動く VertiPaq 列ストアエンジンが圧縮・集計を高速化し、スタースキーマ+少数の良いメジャーが最も速い。可変要素のあるレポートは フィールドパラメーター計算グループ(Tabular Editor)で DRY に。良いモデル(スター+メジャー+適切なリレーション)が DAX を簡潔にし性能を決めます。

観点メジャー計算列
評価クエリ時に集計(遅延)更新時に行ごとに事前計算
保存保存しない(軽い)モデルに保存(肥大化しがち)
用途集計(売上合計・前年比)行レベルの分類/キー
補足

シナリオ: 「売上合計」と「前年同期比」をレポートに出したい。→ メジャーで SUM(Sales[Amount]) を作り、CALCULATE+SAMEPERIODLASTYEAR(日付ディメンションを Mark as date table 済み)で前年同期を計算。行ごとの事前計算は不要なのでメジャーで実装し、モデルはスタースキーマ+単一方向 1 対多に保ちます。

補足

FAQ: Q. メジャーと計算列の使い分けは? → A. 集計はメジャー(保存せず軽い)、行レベルの分類やキーは計算列。集計を計算列で作るとモデルが肥大化します。Q. 双方向リレーションは使うべき? → A. 原則は単一方向の 1 対多。双方向は曖昧さや性能問題を招くため必要時のみ慎重に使います。

注意

ひっかけ: 「集計(売上合計)は計算列で作るのが効率的」は誤りです。集計はメジャー(遅延評価・非保存)が基本で、計算列での集計はモデルを肥大化させます。また「前年比はリレーションなしの単表でも DAX で簡単に出せる」も誤り(連続した日付ディメンション+適切なリレーションが前提)。

3.1.2この節のまとめ

  • セマンティックモデル=リレーション+メジャー(DAX)+階層
  • ストレージモード=Direct Lake/Import/DirectQuery

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. Power BI で計算(メジャー)を定義するために使う式言語はどれですか?

Q2. セマンティックモデルで OneLake の Delta データを最も高速に参照するストレージモードはどれですか?

Q3. ファクトとディメンションの間に一般的に設定するリレーションシップはどれですか?

理解度を確認第3章「セマンティックモデルと探索・分析」の問題を解く