在本教學課程中,您將在 Microsoft Fabric 中使用 Data Factory 和 Dataflow Gen2 建立緩時變維度類型 1 解決方案。
緩時變維度 (SCD) 是用來在維度變更時更新和維護維度數據表中數據的架構。 有不同的方法來處理變更維度,這些方法稱為緩時變維度「類型」。
一些最常見的 SCD 方法為類型 1 和類型 2。 類型 1 會以新值覆寫現有的記錄,只保留目前的狀態。 類型 2 透過新增變更的資料列並將先前的記錄標示為歷史資料,來保留過去的資料。 本教學課程著重於類型 1,當您只需要最新的資訊時,這是理想的做法。
緩時變維度類型 1 是什麼?
隨著維度類型 1 的緩慢變更,您可以更新現有的記錄或新增記錄。 當維度數據表中已有記錄時,您會以新的值覆寫它。 當它是全新的記錄時,您會將其插入為新的數據列。
此方法只會保留您數據的目前狀態。 不會儲存任何歷程記錄資訊。 它非常適合用於補充數據,例如客戶電子郵件地址或電話號碼。
以下是其運作方式:當客戶變更其電子郵件位址時,您會使用新的電子郵件來更新其數據列。 舊電子郵件永遠消失。 好像他們一直都有這個新的電子郵件地址。
您可以在 Power BI 中執行維度數據表的非增加重新整理,以達到相同的結果。 重新整理會以最新的值覆寫現有的數據。
以下是簡單的範例:
| item_id | name | price | aisle |
|---|---|---|---|
| 83201 | Crackers | 4.99 | 6 |
| 17879 | Soda | 7.99 | 13 |
如果您將餅乾移至通道 11,使用緩慢變化維度類型 1 在維度資料表中會產生此結果:
| item_id | name | price | aisle |
|---|---|---|---|
| 83201 | Crackers | 4.99 | 11 |
| 17879 | Soda | 7.99 | 13 |
您的數據倉儲或 Lake house 事實數據表具有維度數據表的外鍵。 這表示維度數據表中更新的數據列會正確顯示在事實數據表中,以供報告之用。
使用 Power Query 實作
在 Power Query 中,您可以使用合併作業來達成此行為。 看看下列資料流 Gen2:
如圖表檢視中所見,您會執行來源維度記錄與現有維度記錄之間的比較。 然後,您會找到要取代的記錄。 以下是此範例中的 M:
let
Source = Source,
#"Added custom" = Table.TransformColumnTypes(
Table.AddColumn(Source, "Hash", each Binary.ToText(
Text.ToBinary(
Text.Combine(
List.Transform({[FirstName],[LastName],[Region]}, each if _ = null then "" else _),
"|")),
BinaryEncoding.Hex)
),
{{"Hash", type text}}
),
#"Marked key columns" = Table.AddKey(#"Added custom", {"Hash"}, false),
#"Merged queries" = Table.NestedJoin(
#"Marked key columns",
{"Hash"},
ExistingDimRecords,
{"Hash"},
"ExistingDimRecords",
JoinKind.LeftOuter
),
#"Expanded ExistingDimRecords" = Table.ExpandTableColumn(
#"Merged queries",
"ExistingDimRecords",
{"Count"},
{"Count"}
),
#"Filtered rows" = Table.SelectRows(#"Expanded ExistingDimRecords", each ([Count] = null)),
#"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"Count"})
in
#"Removed columns"
優點和限制
緩時變維度類型 1 可讓目前的狀態報告和分析變得容易,但在執行歷史分析時有限制。
SCD 類型 1 可確保數據表中沒有重複的記錄,而且數據會顯示最新的目前維度,這對即時儀錶板和預測模型很有用,其中只有目前狀態才重要。
不過,由於表格中只儲存最新資訊,因此使用者無法比較一段時間內維度的變化。 例如,在貨品仍在6號過道時,數據分析師在沒有其他資訊的情況下,會難以比較餅乾的收入,與其後遷移到11號過道時的收入。
Related content
如果您需要保留歷程記錄數據,請考慮改用緩時變更維度類型 2。 類型 2 會在保留舊數據時新增變更的數據列。 深入了解 緩時變維度類型 2。