在DataWorks的DataStudio中,支持为数据开发节点配置数据质量监控规则,用以校验该节点产出的数据表。此功能将质量规则的定义、测试与SQL开发流程深度融合,旨在解决传统模式下质量规则配置滞后、数据问题发现延迟及规则维护成本高的问题。
功能介绍
概述
在 DataWorks IDE 中编辑 SQL节点时,可对该节点中的数据产出表直接配置数据质量规则。规则以 YAML 格式定义,与 SQL 代码绑定,支持在开发阶段测试、随节点提交发布,并在调度运行时自动执行。
开发时测试:在编码阶段即可对质量规则进行测试和验证。
同步版本化:质量规则作为节点代码的一部分,随节点一同进行版本管理与发布。
生产时校验:已发布的规则将在线上调度时自动执行,保障数据产出的可靠性。
与数据质量的关系
数据治理模块的数据质量也支持对数据表配置监控规则,同时提供丰富的规则模板和与周期任务绑定的能力,其与数据开发质量测试功能的关系如下:
定位差异
IDE内嵌规则:一种随代码版本演进的轻量级规则,适用于与特定节点逻辑强相关的校验场景。
数据质量中心:提供全局性、跨任务的统一数据质量治理能力。
协同工作
在IDE的“质量测试”功能中,可直接引用并复用数据质量中心已创建的规则模板,以保证规则的统一性并提升配置效率。
若在IDE和数据质量中心对同一数据表配置了规则,两者会同时生效并独立执行校验。
建议:为避免重复配置和冗余告警,建议根据实际治理场景,选择一种主要方式对数据表进行管理。
适用范围
当前仅支持MaxCompute SQL节点直接配置数据质量规则。
配置指南
配置入口
进入数据开发,打开一个包含数据产出逻辑(如
INSERT OVERWRITE)的MaxCompute SQL节点。在节点编辑器上方的工具栏中,单击质量测试。 IDE底部将自动打开并切换至质量测试标签页。
编写质量规则
质量规则通过YAML格式的数据质量Spec进行定义。支持智能生成和手动编写两种方式。
智能生成规则 (推荐)
此功能旨在通过AI能力大幅降低规则编写的复杂度。
在唤起的质量测试标签页中,点击AI生成规则按钮。
在对话框中输入指令,如:对字段id进行非空校验。
系统分析后会在编辑器中生成推荐规则,点击接受后可直接使用或在此基础上修改。
手动编写规则 (脚本模式)
对于需要精确控制规则的场景,支持通过编写YAML代码进行定义。
- datasets: # 如节点中有多个输出表,可设置多个datasets来配置不同表的质量规则
- type: Table
dataSource:
name: odps_first
tables:
- table1 # 当前仅支持设置1个表,不支持通配符
filter: partition:dt=${bizdate} # 支持按where条件过滤(无需填写where关键字)或者按分区过滤(固定前缀"partition:")。
rules:
- templateId: SYSTEM:field:null_value:fixed # 一个表可以支持多条规则,可选择左侧“规则模版”快捷插入,并修改模板中的变量。
fields:
- id
pass:
- when = 0
name: 字段id空值行数为0
severity: High
identity: dq_suggestion_monitor_spec_字段id空值行数为0
- templateId: #
- datasets:
#...数据质量监控规则的配置遵循DataWorks的数据质量Spec,详情可参见:数据质量Spec配置说明。
单击右侧的规则模板,可在编辑器中自动插入完整的规则片段(Rule),插入后根据实际情况调整。
您可以在数据质量的规则模版库中以可视化方式配置
此处设置的强弱规则对下游的阻塞与限制,与数据质量侧逻辑完全一致。详见:数据质量规则。
编辑器提供了丰富的辅助功能以提升效率:
语法高亮:对YAML关键字、规则名、函数、表名、字段名等进行颜色区分。
自动补全:输入时,自动提示关键字、内置规则模板、以及当前上下文可用的表名与字段名。
实时校验:实时提示YAML语法错误,并校验引用的表名、字段名是否存在,对不存在的对象以波浪线高亮。
YAML对缩进格式较为敏感,请注意缩进语法规范。
测试与验证
规则配置完成后,支持直接在IDE中进行测试运行,无需等待节点调度即可验证规则的有效性。
测试方式:
单独测试:在质量测试面板中,单击测试运行可触发对全部或单条规则的测试运行。
联动测试:在质量测试面板中,勾选节点运行成功后触发质量测试,然后单击IDE顶部工具栏的 运行。系统将先执行SQL代码,成功后再执行质量测试。
工作流测试:在工作流DAG界面,点击工作流上方工具栏的运行按钮,或者指定单个脚本运行,系统也会先后执行任务代码和质量测试。
查看结果:
运行结果将直接反馈在质量测试面板中。单击右上角的结构化日志,可查看质量规则运行过滤后的结果,对红色异常的规则,可以点击查看详情,跳转至数据质量规则的运行记录。
发布与调度
发布与版本管理
提交发布:节点提交并发布时,在质量测试面板中配置的YAML规则会作为节点的一部分,一同发布到生产环境。
版本对比:支持在质量配置页签查看当前版本包含的规则配置,并能与历史版本进行Diff对比,以追踪规则的每一次变更。
生产环境调度运行
发布到生产环境的质量规则,将在每次任务调度运行时自动触发执行。
执行时机:质量规则校验会在其关联的SQL节点执行成功后自动执行。整个节点实例的最终状态,取决于SQL执行结果和质量校验结果。
阻塞机制:
强规则 (
severity: High):强规则校验失败(红色异常),将导致整个节点实例运行失败,从而阻塞下游任务。弱规则 (
severity: Normal或不设置):弱规则校验失败,不会阻塞节点运行,节点实例将正常成功。
告警通知:无论规则是否阻塞节点,只要校验结果出现异常(红色异常、橙色异常或者校验失败),系统都会向节点责任人发送邮件告警。
说明告警方式暂不支持变更。