日期維度與關聯

Power BI 中級資料建模

Maarten Van den Broeck

Content Developer

日期與時間維度

  • 日期維度 提供內建行事曆,減少複雜日期運算
    • 例如將會計年度對齊曆年
    • 例如依季、月、週切片
  • 時間維度 處理一天中的時間:時、分、秒
  • 時間維度 的使用頻率遠低於日期維度

星型架構中的日期維度

Power BI 中級資料建模

建立日期維度的選項

方法 優點 缺點
放在資料庫 從資料倉儲擷取時很適合! 需要有資料庫
最易與多個服務共享,更新也簡單
存成檔案 不需資料庫,一次建立 需要製作檔案
Power BI 對文字檔支援佳 更新不如放在資料庫容易
用 DAX 建立 比前兩者更能自訂 需要撰寫自訂程式碼
不需外部前置作業 有些功能在此較難達成
Power BI 中級資料建模

用 DAX 建立簡單日期維度

Month_Year = 



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

  • CALENDAR() 是內建函式,回傳指定範圍內所有日期
Power BI 中級資料建模

用 DAX 建立簡單日期維度

Month_Year = 



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

  • CALENDAR() 是內建函式,回傳指定範圍內所有日期
  • 會建立 [Date] 欄位,含 1950-01-01 到今天的每一天 $$ $$ $$
[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() 是內建函式,回傳指定範圍內所有日期
  • 會建立 [Date] 欄位,含 1950-01-01 到今天的每一天
  • 選取你要加入的欄位 $$ $$
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() 是內建函式,回傳指定範圍內所有日期
  • 會建立 [Date] 欄位,含 1950-01-01 到今天的每一天
  • 選取你要加入的欄位
  • 僅保留唯一列
Month Year
01 1950
02 1950
... ...
06 2021
Power BI 中級資料建模

定義關聯

  • 關聯可在 Power BI 中「連結資料表」
    • 將篩選跨表傳遞
    • 支援跨表計算
  • 管理關聯的方式
    • 依欄名自動偵測
    • 手動自訂

包含關聯的資料模型

Power BI 中級資料建模

關聯鍵

  • 關聯以鍵為基礎

    • 一或多個欄位可保證列為唯一
  • 兩種鍵:

    • 自然鍵:既有欄位(例如 email)
    • 代理鍵:人造欄位(例如 ID)
  • Power BI 僅支援「單一欄位」關聯

Power BI 中級資料建模

關聯鍵

  • 關聯以鍵為基礎

    • 一或多個欄位可保證列為唯一
  • 兩種鍵:

    • 自然鍵:既有欄位 (例如 email)
    • 代理鍵:人造欄位 (例如 ID)
  • Power BI 僅支援「單一欄位」關聯

  • 複合鍵:由至少兩個欄位組成的鍵
First Name Last Name Birth year Value
Chris P Bacon 1996 599
Jane Bonds 1998 523
Dwayne Pipe 1988 -566

$$

Composite Key Value
Chris P-Bacon-1996 599
Jane-Bondts-1998 523
Dwayne-Pipe-1988 -566
Power BI 中級資料建模

基數(Cardinality)

  • 衡量兩個資料表列之間關係的型態
  • 多對一/一對多:最常見
    • 將維度表的「一」列連到事實表的「一或多」列

$$

一對多關係

多對一關係

Power BI 中級資料建模

基數(Cardinality)

  • 較少見:

    • 一對一 一對一關係 $$

    • 多對多 多對多關係

Power BI 中級資料建模

一起來練習吧!

Power BI 中級資料建模

Preparing Video For Download...