👉🏻 场景
在数据生产过程中,数据质量直接影响后续任务的准确性与稳定性。以电商业务为例,订单表作为DWD层的核心表,承载了大量的业务逻辑和数据流转。由于它上游任务来源众多,难以准确追溯数据来源,且该表的数据会被多个下游任务所依赖。如果订单表中的数据质量出现问题,将直接影响下游任务的结果正确性,甚至可能导致整体业务流程的中断。因此,需要一种机制在数据流转到下游之前及时发现并处理这些问题。在Dataphin中我们可以通过什么方式实现这个需求呢?
👉🏻 功能 / 解决方案
Dataphin 数据质量的 「数据更新触发调度」 功能,可在代码任务执行时解析判断是否更新了此表的指定校验范围的数据。同时,结合质量规则强度(弱规则/强规则),可以实现在检测不通过时直接阻断下游任务运行,满足对关键任务链路的数据质量把控。
以前面的订单表为例,我们可以设置在订单表任务的数据更新时,进行质量规则校验,并通过强规则阻止质量异常的数据进入下游,保障业务使用数据的准确性。
- 在【治理】-【数据质量】-【质量规则】中,为
商品ID
字段设置“非空校验”规则,并将规则类型设置为强规则,确保检测不通过时可直接阻断下游任务执行,防止脏数据扩散。
- 完成规则配置后,进入该对象的【调度配置】,点击新建调度。
- 在新建调度页面为调度命名,选择「数据更新触发调度」类型,并设置校验范围为“任务更新的分区”,此时系统将会在进行数据更新任务时,针对更新了数据的分区进行质量检测。
- 保存调度后,返回【规则配置】编辑对应质量规则,将其与刚创建的调度绑定,保障在订单表数据更新时就自动进行质量校验。
- 调度生效后,每次订单表数据变更时,系统会自动触发质量校验:
- 若通过,系统生成一条“通过”的校验记录,任务继续执行;
- 若不通过,系统生成一条“不通过”的校验记录,同时将数据更新任务置为“运行失败”,并默认阻断下游任务运行,防止异常数据扩散。