在巨量數據時代,獎章架構成為一個強大的架構,用來管理及處理不同精簡階段的數據,從原始數據到高度策劃的數據集。 這種結構化方法不僅能增強數據管理能力,還能確保數據品質在整個數據生命周期中維護。
確保數據品質在獎章架構的每個階段都很重要,這對於做出明智的商務決策至關重要。 數據品質不佳可能會導致不正確的深入解析和作效率不佳。
本文說明如何在 Microsoft Fabric 中實作具體化湖檢視 (MLV) 中的數據品質。
實作數據品質
當您轉換數據時,撰寫精確查詢以排除源數據表中品質不佳的數據會變得很重要,這會增加處理時間,並偶爾會導致整個管線因為次要數據問題而失敗。
定義 MLV 時設定條件約束來維護資料品質。 Fabric 中的具體化檢視提供一種方法,以有效率地實作數據品質管理檢查。
指定條件約束時,可以實作下列動作。
FAIL – 如果違反任何條件約束,此動作會停止重新整理 MLV,並在第一個實例停止。 這是預設行為,即使未指定關鍵詞FAIL。
DROP – 此動作會處理 MLV,並移除不符合指定條件約束的記錄。 它也提供譜系檢視中已移除記錄的計數。
備註
如果DROP和FAIL動作都定義在MLV中,FAIL 動作會優先執行。
在具體化湖視圖中定義資料品質檢查
下列範例會定義 條件約束 cust_blank,這會檢查欄位是否 customerName 不是 Null。 具有 Null customerName 的數據列會從處理中排除。
CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched
(CONSTRAINT cust_blank CHECK (customerName is not null) on MISMATCH DROP)
AS
SELECT
c.customerID,
c.customerName,
c.contact,
CASE
WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE
ELSE FALSE
END AS has_orders
FROM bronze.customers c LEFT JOIN bronze.orders o
ON c.customerID = o.customerID;
目前的限制
- 不支援在建立 MLV 之後修改資料品質限制條件。 若要更新資料品質條件約束,您必須重新建立 MLV。
- 在約束條件中使用函式和模式搜尋運算符(例如 LIKE 或 regex)受到限制。
已知問題
- 在限制中建立並重新整理具有FAIL動作的MLV可能會導致「找不到增量表」問題。 在這種情況下,建議您重新建立 MLV,並避免使用「FAIL」動作。