告别先开发后治理:Agent 驱动的数据质量一体化交付

简介: 本文介绍DataWorks如何通过Data Contracts理念实现“代码即质量”:将数据质量规则以YAML Spec形式嵌入SQL开发流程,支持IDE内配置、版本管理、自动部署与闭环执行,解决传统治理滞后、迭代不同步、版本缺失等痛点,推动数据质量工程化、前置化。

引言

对于开发者而言,离线数据开发中数据质量建设的核心挑战,从来不是“能否配置规则”,而是:质量规则能否像代码一样低成本、高可靠地融入研发交付全流程。当质量规则游离于开发链路之外,治理便退化为被动补救:SQL上线后补配质量规则、字段变更引发误报漏报、规则与代码版本脱节……最终导致规则越配越多,忙于补救的恶性循环。

开发和治理割裂流程下的工程代价

  • 治理滞后:规则配置晚于数据上线,问题发现延迟
  • 迭代不同步:SQL口径逻辑变更后,规则未联动更新
  • 版本管理缺失:规则脱离代码评审、Diff、回滚体系,难追踪
  • 信任成本攀升:下游因数据约束不透明而反复确认,沟通负担加重

DataWorks 解法:以 Data Contracts 思想驱动“代码即质量”

DataWorks 数据质量引入 Data Contracts 理念,将质量规则以 YAML Spec 形式嵌入开发流程,实现“代码即质量”的一体化开发治理:

  • 开发即治理:在 IDE 中直接为 SQL 节点编写质量 Spec,规则与代码同生命周期。
  • 工程化管理:Spec 支持版本控制、代码评审、Diff 对比,随发布流程自动部署至生产环境。
  • 闭环执行:规则成为节点交付物的一部分,在调度中自动执行,确保质量保障前置化。

本文将从开发治理分离带来的问题出发,详细介绍 DataWorks 如何通过一体化开发治理流程,把质量规则变成节点交付物的一部分,并进一步说明为了实现这条链路,底层架构升级带来的外溢收益与后续规划。


一、当前困境:开发与治理分离

目前在常见工程化链路中,SQL开发与数据质量监控配置是分离的,现象包括:

  • 规则通常在数据上线后才补配置:治理滞后,问题发现延迟。
  • SQL 迭代与规则不同步:字段口径、过滤条件、分区逻辑变化后,规则仍停留在旧假设上,最终造成误报/漏报。
  • 质量治理变成“出了问题再补救”:规则配置与修复工作被动插入到事故之后。
  • 规则与任务割裂:规则不在代码评审链路里,难评审、难追踪、难回滚。

这就导致质量保障很难工程化:

  • 从“事前预防”退化为“事后补救”,影响数据消费者信任。
  • 生产者与消费者的预期难以对齐,沟通成本攀升。
  • 规则维护变成长期负担:一旦规模扩大,就会出现“规则越配越多,但可信度越配越低”的反直觉现象。

二、DataWorks 的解决方案:一体化开发治理

DataWorks 数据质量借鉴当前业界中 Data Contracts 的思想,把数据质量的声明通过 Spec 的方法融入到整个数据开发流程中,让开发者可以一体化的维护数据加工代码和数据质量声明,二者能够及时的与数据开发代码一同变更,确保数据质量能够得到及时的保障。

2.1 核心思路:SQL与数据质量Spec一体化开发交付

在 DataWorks 新范式中,数据质量规则以 YAML Spec 形式存在,并具备与代码一致的工程化属性:

  • 在 IDE 中直接配置:编写 SQL 的同时编写质量 Spec。
  • 天然支持版本管理:规则随代码一起 Diff、评审、回滚。
  • 随发布自动执行:规则不再依赖“事后补配置”,而是成为节点交付物的一部分,在生产调度中自动执行。

可以把它理解为:把“质量”从一个平台治理动作,变成研发交付链路中的标准步骤。

2.2 完整工作流

下面,我们结合首次开发 -> 测试验证 -> 提交发布 -> 调度运行 -> 迭代发布的流程,来说明如何做到SQL开发和数据质量保障一体化。

假设我们要开发一张表,建表语句如下:

CREATE TABLE IF NOT EXISTS dws_d_dqc_suggesion_demo(
  `id` BIGINT COMMENT '主键',
  `user_id` STRING COMMENT '用户ID',
  `item_id` STRING COMMENT '商品ID',
  `shop_id` STRING COMMENT '店铺ID',
  `name` STRING COMMENT '用户姓名',
  `family_name` STRING COMMENT '姓氏',
  `birth_time` DATETIME COMMENT '日期类型的生日',
  `order_url` STRING COMMENT '下单地址,是一个web页面地址',
  `create_time` DATETIME COMMENT '日期类型的下单时间',
  `order_time` STRING COMMENT '下单时间',
  `user_ip` STRING COMMENT '下单客户端ip',
  `user_mac` STRING COMMENT '下单客户端mac地址',
  `user_agent` STRING COMMENT '下单时的客户端标识',
  `email` STRING COMMENT '用户账号的邮箱',
  `phone_number` STRING COMMENT '用户的联系方式',
  `amount` STRING COMMENT '购买数量',
  `unit_price` DECIMAL(38,18) COMMENT '单价',
  `client_token` STRING COMMENT '下单时生成的全链路唯一标识,避免失败重试的重复下单',
  `status` STRING COMMENT '订单状态,Ready - 就绪、WaitingPayed - 待付款、Payed - 已付款待发货、Canceled - 已取消、Shipped - 已发货、WaitingCollecting - 已送达未领取、Delivered - 已收货、Confirmed - 已确认'
)
PARTITIONED BY(
    ds STRING COMMENT '日期分区,格式yyyymmdd'
)
LIFECYCLE 365;

2.2.1 在 IDE 中配置规则

在 SQL 开发完毕后,可以点击编辑器工具栏中的“质量测试”按钮,打开”质量测试“面板,开始定义数据质量监控 Spec。

如下图所示,是一份同时监控两张表的Spec的结构。

这里我们简单讨论一下数据质量监控定义方式上的取舍。在 DataWorks 既有的数据质量产品流程中,都是优先引导用户使用表单的方式来定义数据质量监控和规则,这种交互方式的好处在于上手门槛低,配合数据质量产品层面提供的智能化推荐能力,在大多数场景下可以做到一键配置。但是这种交互也有一定的问题:

1. 信息密度低,尤其是多表一次性多表监控场景下,需要填写多张表单,表单和表单之间可能还会有相互跳转,交互繁琐程度大大提升

2. 必须先有表才支持配置数据质量监控,否则会没有配置入口;在跨项目迁移、跨 region 迁移、搬站流程时这个问题会更加明显,在很多数据迁移场景中,会先迁代码再建表,表不存在时,无法把数据质量规则快速迁移到目标环境中与 SQL 节点一起验证

3. 可迁移能力差,如果大部分表都使用同一份配置,那么表单模式下,用户需要反复选表再填写表单。

引入 Spec 之后,上述问题都可以得到解决:

1. Spec 的信息密度很高,如果对于很多常用规则,只需要一到两行代码即可定义,整个数据质量监控也基本可以在十行代码之内搞定

2. 无需先搜索表再写 Spec,表名和所属数据源直接使用 Spec 定义,只需要确保在 Spec 执行时表存在即可;另外,DataWorks 的数据质量 Spec 兼顾了 AWS Glue Data Quality、Soda、Google Dataplex 等数据质量产品中的相关设计,可以把这些产品的数据质量配置转换成 DataWorks 数据质量 Spec,为搬站提供助力。

3. 可以快速的复制粘贴,快速拷贝能力

通过Agent配置规则

DataWorks Agent 智能体基于自然语言交互,结合大模型的深度认知与规划能力,能够完成复杂的数据集成、开发及治理任务,实现从需求到成果的端到端自动化,大幅提升工作效率。

Spec 的书写相对于表单式的配置门槛更高些,这里建议通过 DataWorks Agent 对话式的方式让 AI 辅助生成 Spec,AI 辅助生成时会感知 SQL 写入的表和分区,并生成合适的数据质量规则。

如果默认生成的 Spec 需要调整,也可以通过对话的方式做调整,比如下图,基于上一步中生成的数据质量 Spec,我们让 AI 帮助去掉除了 id 字段之外其他字段的非空规则。

当然,也可以手动编辑 Spec,我们提供了一些能力来提升手动编写的效率。

  • 模板插入

  • 表/字段自动补全

2.2.2 开发与测试

数据质量Spec定义完毕后,可以在IDE中直接进行测试验证。

2.2.3 提交发布

测试符合预期后,执行任务的提交发布流程,数据质量Spec会跟随节点的代码一同被发布到调度,并一同被纳入版本管理。

这里注意,在运维中心的质量节点中也可以看到对应的配置。这就又带来了一个好处:依赖这个节点的开发可以更加明确的知道这个节点产出的数据的约束,增加下游节点对这个节点的信任程度。

2.2.4 查看执行结果

上线后,生产调度会自动执行规则,你可以查看扫描日志与结果:

2.2.5 迭代开发

现在 dws_d_dqc_suggesion_demo 这张表的监控已经得到了保障,随着需求的推荐,我们需要为 dws_d_dqc_suggesion_demo 增加新的字段,此时在 SQL 开发完毕后,可以重新使用上述流程增量的修改数据质量监控 Spec,保证数据质量与 SQL 的一致性。

如图,我们添加 status_comment 字段的加工和监控逻辑,发布时可以看到版本变更中,不仅体现了 SQL 的变更,也体现了数据质量监控的变更,统一了版本管理。


三、未来工作:更广覆盖、更低门槛、更主动治理

3.1 多引擎覆盖

当前能力已支持 MaxCompute SQL;其他类型 SQL 正在推进中,目标包括 EMR、Hologres、StarRocks 等,让不同引擎在质量能力上获得一致体验。

3.2 降低 Spec 门槛

我们会持续强化“对话式生成 + 局部自动修改”的编写方式;在现有高亮、表/字段提示能力基础上,进一步推进更强的代码级提示与批量化编辑能力,让 Spec 的编写成本持续下降。

3.3 更深融入 IDE

下一阶段会把质量治理更深度地融入研发工作流:在 IDE 中主动检测质量配置缺失,提供修复建议,将治理动作收敛至研发链路。

我们致力于让“质量随交付演进”成为离线数据开发的默认体验。欢迎各位开发者试用反馈,共同推动数据质量治理的工程化实践。



来源  |  阿里云开发者公众号

作者  |  谢衣

相关文章
|
20天前
|
人工智能 自然语言处理 搜索推荐
做AI产品三年复盘,我看到的变与不变
本文以AI产品工程师视角,分“看自己、看行业、看世界”三部分,剖析AI巨变中不变的本质:人机协作需强化沟通力、工程判断力与责任担当;营销与金融正被生成式技术重塑;ClaudeCode等智能体虽形态演进,但“上下文(Context)”始终是决定效果的核心。
做AI产品三年复盘,我看到的变与不变
|
20天前
|
人工智能 安全 Java
给“氛围编程”系上安全带:阿里集团 AI 代码评审实践与 Benchmark 开源
阿里集团历时一年半、经数万亿Token真实场景打磨,推出AI代码评审助手,实现人机协作新范式:AI接管基础评审,人类聚焦核心风险。联合南京大学开源业界首个支持10语言、具备仓库级上下文感知的CodeReview Benchmark(AACR-Bench),由80+资深工程师多轮交叉标注,显著提升隐性缺陷检出率。
给“氛围编程”系上安全带:阿里集团 AI 代码评审实践与 Benchmark 开源
|
27天前
|
人工智能 移动开发 编译器
打造高可靠 AI 助手:Skill 编排、Workflow 设计与 Spec Coding 的深度实践
文章首先拆解了上下文工程的五大最佳实践模式(状态管理、渐进式上下文、结构化输出、模版程序、多步处理),并深入对比了 Skill 与 Subagent 在上下文管理机制上的本质差异。
打造高可靠 AI 助手:Skill 编排、Workflow 设计与 Spec Coding 的深度实践
|
27天前
|
人工智能 JSON 前端开发
Skills 真的可以帮我干活了:把工单分析变成一个可复用的 Skill
本文分享将企业内网工单分析SOP固化为Claude Skills的实践:摒弃不稳定的浏览器自动化,创新采用“Copy as fetch + agent-browser eval”方案,直接复用SPA页面接口请求,实现稳定、低开销的数据获取与AI分析,大幅提升重复性工单分析效率。
Skills 真的可以帮我干活了:把工单分析变成一个可复用的 Skill
|
20天前
|
人工智能 搜索推荐 专有云
构建会思考的测试Agent:从自动化到自主智能的演进
本文介绍面向企业级软件测试的“质量数字人系统”,融合大语言模型(LLM)、多Agent协同架构与Skill Engine技能框架,实现从自动化测试到自主智能测试的跨越。核心能力包括:声明式技能引擎、双层自主意识(规则+目标驱动)、多渠道人机交互、智能任务推荐与预测试,以及以人设、知识库、履职规范、自主意识、技能集五位一体的数字人闭环体系。
构建会思考的测试Agent:从自动化到自主智能的演进
|
20天前
|
存储 人工智能 关系型数据库
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
OpenClaw插件是深度介入Agent生命周期的扩展机制,提供24个钩子,支持自动注入知识、持久化记忆等被动式干预。相比Skill/Tool,插件可主动在关键节点(如对话开始/结束)执行逻辑,适用于RAG增强、云化记忆等高级场景。
748 56
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
|
20天前
|
人工智能 自然语言处理 IDE
养虾只需丢给 Qoder 1个 Skill:安装、配置、上手OpenClaw 一次性搞定
本文介绍如何用Qoder快速对接OpenClaw:三步完成——安装Qoder IDE、配置OpenClaw与钉钉/飞书机器人、通过ACP协议接入Qoder CLI。无需手动部署,丢个Skill文件,泡杯茶的功夫,AI虾塘就跑起来了!
1808 66
|
27天前
|
人工智能 运维 监控
让问题不过夜:交易领域“问诊”Agent实践
在日常研发支持中,工程师频繁穿梭于工单、群聊、舆情反馈与问题排查之间:一边解释业务规则与口径,一边追踪链路、查看日志、核对指标、执行补偿。这些工作高度碎片化、重复性强且严重依赖个人经验,导致响应效率低、处理质量不稳定、新人上手困难。 为此,我们围绕“研发支持中的问诊痛点”,构建了一个可持续运营的智能 Agent 系统。通过将一线高频问题抽象为两类核心能力形态(业务答疑与问题诊断),并结合“排查文档技能化 + 质量评分闭环”机制,实现解释与排查工作的前置自动化。该系统不仅“能跑”,更能持续迭代进化,显著缩短首响时间与平均解决时长,提升服务一致性与工程效能。
让问题不过夜:交易领域“问诊”Agent实践
|
2月前
|
人工智能 API
重磅!阿里云Coding Plan全面上线Qwen3.5、GLM-5、MiniMax M2.5、Kimi K2.5
阿里云Coding Plan上线Qwen3.5、GLM-5、M2.5、K2.5四大顶尖开源模型,支持Qwen Code等工具自由切换。Lite/Pro套餐首月仅7.9元/39.9元,分别享1.8万/9万次请求。Qwen3.5以397B总参、17B激活参数实现高性价比,全面优化编程与Agent能力。
|
27天前
|
人工智能 自然语言处理 安全
揭秘 Claude Code 前沿技巧与 Qoder CLI 日常开发实战
本文深度解析Claude Code核心能力:Command(快捷指令)、Subagent(专业子代理)、Skills(可复用技能)及Hooks(生命周期钩子),对比Cursor差异,揭示其“主子Agent架构+渐进式披露+可编程工具调用”设计哲学,并介绍Qoder CLI在代码审查、Spec驱动开发、运维诊断等场景的落地实践。
揭秘 Claude Code 前沿技巧与 Qoder CLI 日常开发实战