本文为您介绍离线业务系统的数据在生成过程中进行的卡点校验。
代码提交卡点校验
代码提交卡点校验主要包括您在提交代码时,手动或自动进行SQL扫描,检查您的SQL逻辑。校验规则分类如下:
代码规范类规则。
例如,表命名规范、生命周期设置及表注释等。
代码质量类规则。
例如,分母为0提醒、NULL值参与计算影响结果提醒及插入字段顺序错误等。
代码性能类规则。
例如,分区裁剪失效、扫描大表提醒及重复计算检测等。
您在使用DataWorks数据开发功能时,如果代码中有语法错误,会出现如下红色波浪线提示。以下 ODPS SQL 脚本中,第 6 行 insert select overwrite table 语句存在语法错误:
--odps sql
--*********************************************************************--
--author:xxx xxx
--create time:2019-07-02 17:32:09
--*********************************************************************--
insert select overwrite table ods_user_trace_log partition (dt=${bdp.system.bizdate})
select
md5,
uid ,
ts,
ip,
status,
bytes,
device,
system,
customize_event,
use_time,
customize_event_content
from ots_user_trace_log
where to_char(FROM_UNIXTIME(ts),'yyyymmdd')=${bdp.system.bizdate};关于SQL代码、表命名、生命周期及注释的其他规范,请参见表设计规范及MaxCompute数据开发规范。
任务发布上线卡点校验
为保障线上数据的准确性,每次变更都需要经过测试再发布到线上生产环境,且生产环境测试通过后才算发布成功。
发布上线前的测试包括代码审查和回归测试。对于资产等级较高的应用,必须在完成回归测试之后,才允许任务发布,本教程中应用为A2等级,属于高资产级别应用。
回归测试需要您能充分模拟真实环境进行测试:
对于标准模式项目,您可使用SQL语句将数据从生产环境复制到开发环境,运行业务流程,观察是否存在报错。
对于简单模式项目,您可以直接运行业务流程,观察是否存在报错。
由于本教程使用简单模式,您直接提交任务运行业务流程即可。业务流程中start、ods_user_trace_log、dw_user_trace_log、rpt_user_trace_log四个节点均运行成功,无报错信息。
完成运行后,如果所有节点都显示绿色图标,则表示业务流程测试通过。
任务变更
在进行更新操作前,需要通知下游变更原因、变更逻辑、变更时间等信息。下游对此次变更没有异议后,再按照约定时间执行发布变更,这样可以将变更对下游的影响降到最低。
例如,在本教程中,如果表格存储数据源的表结构发生了变更,您需要通知ots_user_trace_log、ods_user_trace_log、dw_user_trace_log及rpt_user_trace_log表的责任人,及时更新表结构。