星狀結構描述設計
Power BI 語意模型是由單一數據表所組成,並不常見。 單一資料表模型可以是簡單的設計,可能適用於資料探索工作或概念證明,但不是最佳模型設計的一種。 最佳模型會依循「星型結構描述」設計原則。 星型結構描述指的是關聯式資料倉儲設計工具常用的設計方法,因為其能提供便於使用的結構,並支援高效能的分析查詢。
此設計原則稱為星型結構描述,因為它會將模型資料表分類為「事實」或「維度」。 在圖表中,事實資料表形成星形的中心,而維度資料表則是置於事實資料表周圍,代表星形的角。
事實資料表
事實資料表的角色是儲存資料列的累積,代表記錄特定商務活動的觀察或事件。 例如,儲存於銷售事實資料表中的事件可以是銷售訂單和訂單產品線。 您也可以使用事實資料表記錄股票動態、庫存量或每日貨幣匯率。 一般來說,事實資料表包含多個資料列。 隨著時間過去,事實資料列會加以累積。 在分析查詢中 (稍後將在此課程模組中加以定義),模型會摘要事實資料表資料,以產生銷售和數量之類的值。
維度資料表
維度資料表會描述您的商業實體,這通常代表人員、地點、產品或概念。 日期維度資料表 (其中包含每個日期的一個資料列) 是概念維度資料表的常見範例。 維度資料表中的資料行允許對事實資料表資料進行篩選和分組。
每個維度資料表都必須有唯一的資料行,又稱為其索引鍵資料行。 唯一的資料行不包含重複的值,而且絕對不能有遺漏值。 在產品維度資料表中,資料行的名稱可能為 ProductKey 或 ProductID。 額外資料行有可能會儲存描述性的值,例如產品名稱、子類別、類別、色彩等等。 在分析查詢中,這些資料行會用來篩選和分組資料。
比較偵測事實和維度資料表
下圖比較事實和維度資料表的特性。
特性 | 維度資料表 | 事實資料表 |
---|---|---|
模型目的 | 儲存商務實體 | 儲存事件或觀察 |
資料表結構 | 包含用於篩選和分組的索引鍵資料行和描述性資料行 | 包含可以摘要的維度索引鍵資料行和數值量值資料行 |
資料量 | 通常包含較少的資料列 (相較於事實資料表) | 可以包含多個資料列 |
查詢目的 | 進行篩選和分組 | 進行摘要 |
建立星型結構描述資料表的關聯性
在模型中,維度資料表會透過使用一對多的關聯性,關聯到事實資料表。 透過關聯性,可讓套用至維度資料表資料行的篩選條件和群組延伸到事實資料表。 這是常見的設計模式。
維度資料表可以用來篩選多個事實資料表,而事實資料表則可依據多個維度資料表進行篩選。 不過,將事實資料表直接關聯至另一份事實資料表,並非良好的做法。
若要練習此概念,請下載 Adventure Works DW 2020 M01.pbix 檔案、開啟檔案,然後切換到模型圖表。
請注意,此模型包含七個資料表,其中一個名為 Sales,同時是事實資料表。 其餘的資料表是維度資料表,而且具有下列名稱:
- Customer
- Date
- 產品
- Reseller
- Sales Order
- Sales Territory
請注意維度和事實資料表之間的關聯性,以及每個關聯性篩選方向皆指向事實資料表。 因此,當篩選準則套用至維度資料表資料行 (以篩選或依資料行值分組) 時,相關的事實會經過篩選和摘要。
如果您檢查此模式,可能會看到星形形狀。
如需星型結構描述設計的詳細資訊,請參閱了解星型結構描述及其對 Power BI 的重要性 \(部分機器翻譯\)。