在大数据时代,奖牌体系结构成为一个强大的框架,用于管理和处理不同优化阶段的数据,从原始数据到高度策划的数据集。 这种结构化方法不仅增强了数据可管理性,而且可确保数据质量在整个数据生命周期内保持。
确保数据质量在奖牌体系结构的每个阶段都至关重要,这对于做出明智的业务决策至关重要。 数据质量不佳可能导致不正确的见解和作效率低下。
本文介绍如何在Microsoft Fabric 中具体化湖视图(MLV)中实现数据质量。
实现数据质量
转换数据时,撰写精确查询以从源表中排除质量不佳的数据变得非常重要,这会增加处理时间,有时会导致整个管道由于轻微的数据问题而失败。
定义 MLV 时,通过设置约束来维护数据质量。 Fabric 中的具体化视图提供了一种有效实现数据质量控制检查的方法。
指定约束时,可以执行以下操作。
FAIL – 如果违反任何约束,此操作将停止刷新 MLV,并在第一个违约实例处停止。 这是默认行为,即使未指定 FAIL 关键字。
DROP – 此作处理 MLV 并删除不符合指定约束的记录。 它还提供世系视图中已删除的记录计数。
注释
如果在 MLV 中同时定义了 DROP 和 FAIL 操作,则 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 或正则表达式等运算符的函数和模式搜索受到限制。
已知问题
- 在包含 FAIL 操作的约束中创建和刷新 MLV 可能会导致“找不到增量表”问题。 在这种情况下,建议重新创建 MLV,并避免使用 FAIL 操作。