如何使用Power Query實作緩時變維度類型1
緩時變維度,通常稱為 SCD,是隨著維度變更而更新和維護儲存在維度數據表中的數據架構。 有一些不同的方法來處理變更維度,這些技術通常稱為緩時變維度「類型」。
緩時變維度類型 1
如果維度數據表中的記錄變更,則使用緩時變維度類型 1,就會更新或覆寫現有的記錄。 否則,新記錄會插入維度數據表。 這表示維度數據表中的記錄一律會反映目前狀態,而且不會維護任何歷程記錄數據。 此設計方法適用于儲存補充值的資料行,例如客戶的電子郵件地址或電話號碼。 當客戶的電子郵件地址或電話號碼變更時,維度數據表會以新的值來更新客戶數據列。 就好像客戶總是有此連絡資訊一樣。 Power BI 模型維度類型數據表的非遞增重新整理,可達成類型 1 緩時變維度的結果。 它會重新整理資料表資料,以確保載入最新的值。
例如:
item_id | NAME | price | 過道 |
---|---|---|---|
83201 | 餅乾 | 4.99 | 6 |
17879 | Soda | 7.99 | 13 |
如果破解器移至過道 11,使用緩時變維度類型 1 來擷取維度數據表中的這項變更會產生下列結果:
item_id | NAME | price | 過道 |
---|---|---|---|
83201 | 餅乾 | 4.99 | 11 |
17879 | Soda | 7.99 | 13 |
假設數據倉儲或 Lake house 事實數據表具有維度數據表的外鍵。 因此,維度數據表中更新的數據列會正確反映在事實數據表中,以供報告之用。
緩時變維度類型 1 可確保數據表中沒有重複的記錄,而且數據會反映最新的維度。 缺乏重複特別適用於即時儀錶板和預測模型化,其中只有目前的狀態是感興趣的。 由於只有最新的資訊會儲存在數據表中,因此使用者無法比較一段時間維度中的變更。 例如,數據分析師在移轉至過道 11 之後,在沒有其他資訊的情況下,無法識別破解工具的收入提升。
緩時變維度類型 1 可讓目前的狀態報告和分析變得容易,但在執行歷史分析時有限制。
在 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 的目標。
緩時變維度類型 2
隨著維度類型 2 的緩慢變更,當維度變更並適當地表示這個新數據列時,會藉由加入新的數據列來維護歷程記錄,同時據以表示新記錄。 使用這項技術來實作緩時變維度類型 1 不僅會保留歷史數據,也會提供數據變更時的相關信息。 維護歷程記錄數據可讓數據分析師和數據科學家探索作業變更、執行 A/B 測試,並賦予明智的決策能力。
Fabric Data Factory 中的數據流 Gen2 可讓您以可視化方式輕鬆實作緩時變維度類型 1 模式。 您也可以達成緩時變維度類型 2 模式,如緩時變維度類型 2 中所述。