更新时间:2025-04-23 GMT+08:00
分享

补数据

解释说明

补数据是指作业执行一个调度任务,在过去某一段时间里生成一系列的实例。用户可以通过补数据,修正历史中出现数据错误的作业实例,或者构建更多的作业记录以便调试程序等。

只有配置了周期调度的作业,才支持使用该功能。如需查看补数据的执行情况,请参见补数据监控

场景描述

在某企业的产品数据表中,有一个记录产品销售额的源数据表A,现在需要把产品销售额的历史数据导入的目的表B里面,需要您配置补数据作业的相关操作。

需要导入的列表情况如表1所示。
表1 需要导入的列表情况

源数据表名

目的表名

A

B

配置方法

  1. 准备源表和目的表。为了便于后续作业运行验证,需要先创建DWS源数据表和目的表,并给源数据表插入数据。
    1. 创建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);
    2. 给源数据表插入示例数据。您可以在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');
  2. 开发一个补数据的脚本。开发脚本时,脚本表达式里面必须包含时间变量(例如,SQL中变量是DATE,脚本中就写${DATE})。在作业参数配置里面,您可以在3中编写脚本参数DATE的语句表达式。
    “脚本开发”界面,在编辑器中输入开发语句,如下图所示。
    INSERT INTO B (SELECT * FROM A WHERE DATE = ${DATE})
    图1 开发脚本

    脚本dws_030903编写完成后,保存并提交此脚本的最新版本。

  3. 开发一个补数据的批处理作业。开发作业时,您需要配置节点属性参数和调度周期。

    在数据开发主界面的左侧导航栏,选择数据开发 > 作业开发

    图2 节点参数

    • 如果作业所关联的SQL脚本如果使用了参数,此处显示脚本参数名称(例如DATE),请在参数名称后的输入框配置参数值。参数值支持使用EL表达式

      如果参数是时间的话,请您查看下DateUtil内嵌对象的表达式例子,平台会自动替换成补数据的历史日期(由补数据的业务日期所决定)。

      您也可以直接编写SQL语句,编写SQL表达式。

    • 若关联的SQL脚本,脚本参数发生变化,可单击刷新按钮同步,也可以单击进行编辑。
    • 脚本参数的举例如下所示。
      例如:#{DateUtil.format(DateUtil.addDays(Job.planTime,-1),'yyyy-MM-dd')}
      • Job.planTime表示作业计划时间,yyyy-MM-dd表示时间格式。
      • 如果作业计划时间三月二号,减去一天就是三月一号。补数据时,配置的补数据的业务日期就会替换作业计划时间。
      • Job.planTime会把作业计划时间通过表达式转化为yyyy-MM-dd格式的时间。
  4. 配置补数据作业的调度周期。单击界面右侧的调度配置,配置补数据作业的调度周期,该使用指导配置周期设置为天。
    图3 配置调度周期

    • 作业调度周期设置为天,每天会进行作业调度,并生成一个调度实例。您可以在“实例监控”页面中,查看补数据实例的运行状态。用户可以在该页面中查看作业的实例信息,并根据需要对实例进行更多操作。
    • 该作业调度时间从2023/03/09开始生效,每天2点调度一次作业。
    • 执行以下SQL命令,查询目的表B里面是否存在源表A的数据。

      SELECT * FROM B

  5. 参数配置完成后,保存并提交此作业的最新版本,测试运行该作业。

    单击“执行调度”,让该作业运行起来。

补数据

  1. 在数据开发主界面的左侧导航栏,选择运维调度 > 作业监控
  2. 单击“批作业监控”页签,进入批作业的监控页面。
  3. 在作业的“操作”列,选择更多 > 补数据
  4. 弹出“补数据”对话框,配置如所示表2的参数。
    图4 补数据参数
    表2 参数说明

    参数

    说明

    补数据名称

    系统自动生成一个补数据的任务名称,允许修改。

    作业名称

    显示需要补数据的作业名称。

    业务日期

    选择需要补数据的时间段。

    说明:

    一个作业可进行多次补数据。但多次补数据的业务日期需要避免交叉重叠,否则可能导致数据重复或混乱,用户请谨慎操作。

    并行周期数

    设置同时执行的实例数量,最多可同时执行5个实例。

    说明:

    请根据实际情况配置并行周期数,例如CDM作业实例,不可同时执行补数据操作,并行周期数只可设置为1。

    需要补数据的下游作业

    选择需要补数据的下游作业(指依赖于当前作业的作业),支持多选。

  5. 单击“确定”,开始补数据,并进入“补数据监控”页面。

查看补数据

在数据开发模块控制台的左侧导航栏,选择运维调度 > 补数据监控,进入补数据的任务监控页面。

用户可以在图5的页面中,查看补数据的任务状态、业务日期、并行周期数、补数据作业名称,以及停止运行中的任务。

图5 补数据监控主页

图5的页面中,单击补数据名称,进入图6的页面。在此页面,用户可以查看补数据的任务执行情况,以及手动干预实例和节点的执行。

图6 补数据监控详情
  • 支持计划时间,开始时间,结束时间的排序,注意三者之间,同一时间只有其中一个当前排序有效。
  • 排序按钮点击顺序为:点击1下为升序,点击2下为降序,点击3下取消排序。

相关文档