DataWorks全新推出了实时数据开发治理功能,通过集成数据治理插件和LSP(Language Server Protocol)技术,在代码保存时可触发智能检测,并提供针对性的修复建议。开发者可以选择一键确认修复,快速解决问题。该功能依托预设的治理规则库和语义分析引擎,能够主动识别代码中的语法错误、数据规范问题以及潜在缺陷,从而实现代码质量的闭环管理。
注意事项
启用或关闭数据开发节点检查治理插件、相关治理项以及LSP设置仅对当前账号生效。
治理项问题诊断
DataWorks数据治理插件内置丰富规则库,开箱即用,无需配置。保存SQL或脚本时,插件自动扫描代码问题并提供修复建议,提升开发效率。若无需使用,可随时关闭。
适用范围
适用地域:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)。
适用节点:各治理项适用的节点类型,请参见查看检查项事件解决方案进行查看。
接入治理插件
在Data Studio的设置页面中,默认取消勾选DataStudio Governance Check Module Disablement禁用配置,来控制在代码编辑过程中主动检测代码中的可治理问题。您可以通过以下步骤来管理或勾选禁用该个人级配置项。
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到目标工作空间,单击操作列的,进入Data Studio页面。
单击左侧导航栏底部的,进入设置页面的用户页签。
在用户页签中找到,您可按需在数据开发中启用或关闭数据治理插件。
启用数据治理插件(默认) 如需通过数据治理插件检测并修复代码中的问题,DataStudio Governance Check Module Disablement为未勾选状态。您可通过配置治理项,对数据开发任务进行针对性治理。
禁用数据治理插件 如无需使用数据治理插件检测代码问题,请勾选DataStudio Governance Check Module Disablement。禁用后,当前功能在数据开发节点任务中将不可用。
启用治理检查项
当启用治理插件的情况下,默认会启用所有当前已经接入数据开发的治理项。您可以通过以下方式开启或关闭某具体治理项。
单击Data Studio页面左侧导航栏中的
图标,进入治理检查项目录。您可在规则库中根据数据治理项列表相关说明启用或关闭相关治理项(默认启用)。
如无需使用某种治理规则,可在规则库中找到对应的治理检查项,单击其前的
图标以关闭该治理项。重要关闭后,当前账号所在工作空间的数据开发任务在编辑并保存时将不再触发该治理项的检查。
问题发现
当启用治理插件并开启治理检查项后,在保存支持治理检查的节点类型代码时,DataWorks Copilot会自动对当前代码进行扫描,并标记出可能存在的问题。您可以根据自身的判断和实际需求,决定是否采纳这些建议。
当您对当前节点内容进行编辑并保存时,如果系统检测到内容已发生变更,将会自动清除上一次的问题检测结果。随后,在保存操作完成后,系统会立即触发新一轮的问题发现流程。
查看问题数量。
在您编辑代码时系统将实时扫描您当前存在的问题,当您保存节点时,页面左下角将实时为您展示当前节点存在的可治理问题数。
查看问题详情。
您可以点击页面左下角的
图标,在弹出的问题区域查看节点存在的需要治理的问题。
问题修复
在问题面板中列出的具体问题项中,我们提供了每个问题的判定依据解释。您可以点击问题项后面的超链接,快速查看详细的解释和背景信息。此外,我们还提供了修复建议,帮助您迅速解决这些问题。以下是具体步骤:
单击相关问题后面的数据资产治理问题链接,可进入右侧数据资产治理页面。
在相关问题页签中,您可以查看AI模型的问题描述、治理分析报告以及问题处理建议。
如需了解更多治理详情,可切换至规则说明页签,查看问题关联的检查项、规则判断逻辑及处理指南。
您可以单击建议操作下方的相关链接,按照界面提示完成问题修复。
不同治理项操作方式不同,具体请以界面为准。

LSP语法问题诊断
以下内容将介绍如何利用Language Server Protocol (LSP) 能力,在您编辑SQL或脚本时实时扫描代码问题,并结合Copilot能力快速修复这些问题。
启用LSP
在Data Studio的设置页面中,可以使用SyntaxErrorEnable配置来控制是否在代码编辑过程中启用语法诊断。您可以通过以下步骤来管理该个人级配置项。
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到目标工作空间,单击操作列的,进入Data Studio页面。
单击左侧导航栏底部的,进入设置页面的用户页签。
在用户页签中单击,进行语法诊断设置。
SyntaxErrorEnable: 是否开启语法诊断。通过将该配置项的值设置为
true或false,可以控制在数据开发过程中是否启用或关闭语法诊断功能。SyntaxErrorSeverity:语法错误诊断严重程度。通过将该配置项的值设置为不同的级别,可以控制在数据开发过程中语法诊断异常时的告警等级。
问题发现
当您在编辑节点代码时,您可以点击页面左下角的
图标,在弹出的问题区域查看节点存在的代码问题异常,并通过点击问题项,在目标节点中快速定位问题代码片段。

问题修复
在目标节点中定位到问题代码片段后,将鼠标悬停在错误的代码片段上会显示快速修复入口。通过这个入口,您可以使用DataWorks Copilot,并选择不同的模型对代码进行纠错。

附录:治理项列表
规则名称 | 适用场景 |
Join中On条件使用常量 | 在数据加工中,如果通过左连接(Left Join)的 |
调度参数遗漏检查器 | 调度参数是在任务调度时用于代码中的动态参数。这些参数会根据任务调度的业务日期、定时时间以及预设的取值格式,自动替换为具体的值,从而实现任务调度过程中的动态参数替换。如果遗漏调度参数,可能导致数据加工错误或任务执行失败。 |
禁止周期任务中使用非分区表 | 周期任务中使用非分区表是指在同一个调度任务中,使用了非分区表作为临时表存储中间数据,并在任务中从该表中读取数据。当存在并发对多个业务日期进行补数据时,因为无法保证中间表存储的是正确业务日期的数据,从而会导致的数据不一致,数据缺失的情况。 |
分区表查询必须带分区 | 查询MaxCompute分区表时,如果不指定分区,将触发全表扫描(暴力扫描),导致极高的计算开销。 |
禁止使用INSERT INTO+重跑属性 | 如果SQL代码仅包含通过 |
JOIN字段类型必须一致 | 在MaxCompute SQL数据开发过程中,经常会使用到JOIN操作,在写ON条件时,经常忽略字段类型一致性,导致加工错误,影响数据质量。 |
禁止线上周期任务写开发环境的表 | 周期任务将数据写入标准空间中开发项目的表里,导致数据防护等级降低,带来安全隐患。 |
禁止提交和系统函数同名的函数 | 提交的函数和内置函数同名,提交的函数会覆盖系统内置函数,项目组其他成员使用时会导致对内置函数理解不一致,影响使用和维护。 |
禁止使用MAX_PT函数 | 对于提交调度运行的周期任务,代码中若包含MAX_PT函数,在补数据等场景下,MAX_PT返回的分区一直是该表的最大分区(字母顺序),可能会产生与预期不符合的行为。单击其他函数可查看关于MAX_PT函数取值行为的详细说明。 |
SQL中禁止创建表 | 在提交调度运行的SQL中创建表,有两个潜在的问题:一是带来表的归属为调度生产账号/工作空间所有者(即主账号)名下,归属不清带来额外的管理成本;此外,因为不经过人工核对,也有可能造成数据被错误的清除掉的极大风险。所以建议禁止。 |
INSERT非本项目的表 | 当用户在MaxCompute项目运行的任务,用于写入非本MaxCompute项目的表时,系统会认为这是一个安全高危操作,有数据访问越权和泄漏的风险。建议进行项目隔离,A项目的任务不能写入B项目的表,包含(开发/生产)项目环境。 |