补数据
解释说明
补数据是指作业执行一个调度任务,在过去某一段时间里生成一系列的实例。用户可以通过补数据,修正历史中出现数据错误的作业实例,或者构建更多的作业记录以便调试程序等。
只有配置了周期调度的作业,才支持使用该功能。如需查看补数据的执行情况,请参见补数据监控。
配置方法
- 准备源表和目的表。为了便于后续作业运行验证,需要先创建DWS源数据表和目的表,并给源数据表插入数据。
- 创建DWS表。您可以在DataArts Studio数据开发中,新建DWS SQL脚本执行以下SQL命令:
/* 创建数据表 */ CREATE TABLE A (PRODUCT_ID INT, SALES INT, DATE DATE); CREATE TABLE B (PRODUCT_ID INT, SALES INT, DATE DATE);
- 给源数据表插入示例数据。您可以在DataArts Studio数据开发模块中,新建DWS SQL脚本执行以下SQL命令:
/* 源数据表插入示例历史数据 */ INSERT INTO A VALUES ('1','60', '2022-03-01'); INSERT INTO A VALUES ('2','80', '2022-03-01'); INSERT INTO A VALUES ('1','50', '2022-02-28'); INSERT INTO A VALUES ('2','55', '2022-02-28'); INSERT INTO A VALUES ('1','60', '2022-02-27'); INSERT INTO A VALUES ('2','45', '2022-02-27');
- 创建DWS表。您可以在DataArts Studio数据开发中,新建DWS SQL脚本执行以下SQL命令:
- 开发一个补数据的脚本。开发脚本时,脚本表达式里面必须包含时间变量(例如,SQL中变量是DATE,脚本中就写${DATE})。在作业参数配置里面,您可以在3中编写脚本参数DATE的语句表达式。
在“脚本开发”界面,在编辑器中输入开发语句,如下图所示。
INSERT INTO B (SELECT * FROM A WHERE DATE = ${DATE})
图1 开发脚本脚本dws_030903编写完成后,保存并提交此脚本的最新版本。
- 开发一个补数据的批处理作业。开发作业时,您需要配置节点属性参数和调度周期。
图2 节点参数
- 如果作业所关联的SQL脚本如果使用了参数,此处显示脚本参数名称(例如DATE),请在参数名称后的输入框配置参数值。参数值支持使用EL表达式。
如果参数是时间的话,请您查看下DateUtil内嵌对象的表达式例子,平台会自动替换成补数据的历史日期(由补数据的业务日期所决定)。
您也可以直接编写SQL语句,编写SQL表达式。
- 若关联的SQL脚本,脚本参数发生变化,可单击刷新按钮
同步,也可以单击
进行编辑。
- 脚本参数的举例如下所示。
- 如果作业所关联的SQL脚本如果使用了参数,此处显示脚本参数名称(例如DATE),请在参数名称后的输入框配置参数值。参数值支持使用EL表达式。
- 配置补数据作业的调度周期。单击界面右侧的调度配置,配置补数据作业的调度周期,该使用指导配置周期设置为天。
图3 配置调度周期
- 参数配置完成后,保存并提交此作业的最新版本,测试运行该作业。
补数据
- 在数据开发主界面的左侧导航栏,选择 。
- 单击“批作业监控”页签,进入批作业的监控页面。
- 在作业的“操作”列,选择 。
- 弹出“补数据”对话框,配置如所示表2的参数。
图4 补数据参数
- 单击“确定”,开始补数据,并进入“补数据监控”页面。