日付ディメンションとリレーションシップ

中級 Power BI データモデリング

Maarten Van den Broeck

Content Developer

日付ディメンションと時間ディメンション

  • 日付ディメンションは組み込みカレンダーを提供し、複雑な日付処理を軽減
    • 例: 会計年度と暦年の一致
    • 例: 四半期・月・週でのスライス
  • 時間ディメンションは時刻(時・分・秒)を扱う
  • 時間ディメンションは日付ディメンションより使用頻度が低い

スタースキーマにおける日付ディメンション

中級 Power BI データモデリング

日付ディメンション作成の選択肢

方法 メリット デメリット
データベースに格納 データウェアハウスからデータを取得する場合に最適 データベースが必要
複数サービスとの共有が容易、更新も簡単
ファイルに保存 データベース不要、一度作成すればよい ファイルの作成が必要
Power BI のテキストファイルサポートが優秀 データベース格納より更新が煩雑
DAX で作成 前の 2 つより高いカスタマイズ性 カスタムコードの記述が必要
外部の事前準備が不要 一部の機能が実装しにくい場合がある
中級 Power BI データモデリング

DAX を使ったシンプルな日付ディメンションの作成

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() は範囲内の全日付を返す組み込み関数
中級 Power BI データモデリング

DAX を使ったシンプルな日付ディメンションの作成

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() は範囲内の全日付を返す組み込み関数
  • 1950-01-01 から今日までの各日付を持つ [Date] フィールドを作成 $$ $$ $$
[Date]
1950-01-01
1950-01-02
...
2021-06-30
中級 Power BI データモデリング

DAX を使ったシンプルな日付ディメンションの作成

Month_Year = 


SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
  • CALENDAR() は範囲内の全日付を返す組み込み関数
  • 1950-01-01 から今日までの各日付を持つ [Date] フィールドを作成
  • 追加する列を選択 $$ $$
Month Year
01 1950
01 1950
... ...
06 2021
中級 Power BI データモデリング

DAX を使ったシンプルな日付ディメンションの作成

Month_Year = 

DISTINCT(
SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
)
  • CALENDAR() は範囲内の全日付を返す組み込み関数
  • 1950-01-01 から今日までの各日付を持つ [Date] フィールドを作成
  • 追加する列を選択
  • 重複行を除外
Month Year
01 1950
02 1950
... ...
06 2021
中級 Power BI データモデリング

リレーションシップの定義

  • リレーションシップにより Power BI でテーブルを結合できる
    • テーブル間でフィルターを伝播
    • テーブルをまたいだ計算が可能
  • リレーションシップの管理方法
    • 列名による自動検出
    • 手動でカスタマイズ

リレーションシップを持つデータモデル

中級 Power BI データモデリング

リレーションシップキー

  • リレーションシップはキーに基づく

    • 行の一意性を保証する 1 つ以上の列
  • キーの種類

    • ナチュラルキー: 既存の列 (例: メールアドレス)
    • サロゲートキー: 人工的な列 (例: ID)
  • Power BI では単一列のリレーションシップが必要

中級 Power BI データモデリング

リレーションシップキー

  • リレーションシップはキーに基づく

    • 行の一意性を保証する 1 つ以上の列
  • キーの種類:

    • ナチュラルキー: 既存の列 (例: メールアドレス)
    • サロゲートキー: 人工的な列 (例: ID)
  • Power BI では単一列のリレーションシップが必要

  • 複合キー: 2 列以上で構成されるキー
生年
Chris P Bacon 1996 599
Jane Bonds 1998 523
Dwayne Pipe 1988 -566

$$

複合キー
Chris P-Bacon-1996 599
Jane-Bondts-1998 523
Dwayne-Pipe-1988 -566
中級 Power BI データモデリング

カーディナリティ

  • 2 つのテーブル間の行の対応関係を表す指標
  • 多対一 / 一対多: 最もよく使用される
    • ディメンションの 1 行がファクトテーブルの 1 行以上に対応

$$

一対多のリレーションシップ

多対一のリレーションシップ

中級 Power BI データモデリング

カーディナリティ

  • 使用頻度が低いもの:

    • 一対一 一対一のリレーションシップ $$

    • 多対多 多対多のリレーションシップ

中級 Power BI データモデリング

練習しましょう!

中級 Power BI データモデリング

Preparing Video For Download...