本文将为您介绍调度参数的相关问题。

如何处理表的分区格式中需要空格的情况?

表的分区格式为pt=yyyy-mm-dd hh24:mi:ss,但是调度参数中不允许配置空格。您可以使用两个自定义变量参数datetime=$[yyyy-mm-dd]hour=$[hh24:mi:ss],分别获取日期和时间后,在代码中拼接为pt=${datetime} ${hour}
说明 拼接的自定义参数之间使用空格分隔。

如何处理0点运行的实例,计算结果变为当天的23点,实际应当是前一天的23点的情况?

在代码中表的分区为pt=${datetime} ${hour},希望执行时获取上个小时的数据。使用两个自定义变量参数datetime=$[yyyymmdd]hour=$[hh24-1/24]可以满足需求。但是0点运行的实例,计算结果会变成当天的23点,实际应当是前一天的23点。

您可以修改参数的计算公式,修改datetime$[yyyymmdd-1/24]hour的计算公式仍然是$[hh24-1/24]。计算结果如下,即可满足需求:
  • 如果一个实例的定时时间是2015-10-27 00:00:00,减1小时便是昨天,则$[yyyymmdd-1/24]的值是20151026$[hh24-1/24]的值是23
  • 如果一个实例的定时时间为2015-10-27 01:00:00的实例,减1小时还是今天,则$[yyyymmdd-1/24]的值是20151027$[hh24-1/24]的值是00

DataWorks提供哪些调度参数运行方式?

DataWorks提供以下运行方式:
  • 数据开发页面可以通过以下三种方式运行:
    • 运行:第一次运行后,您需要手动为该变量赋值,第一次赋值会被记录。如果对代码进行修改,该变量依旧使用第一次运行时的赋值。
    • 高级运行:高级运行时,您需要手动为当前代码中的变量进行赋值。
    • 在开发环境执行冒烟测试:通过手动选择业务日期模拟节点自动调度的场景,获取当前业务日期下调度参数的替换值。
  • 生产环境调度运行:调度系统会根据当前实例的定时运行时间自动替换调度参数(系统调度参数和自定义调度参数)。
  • 测试运行或补数据运行:触发时需要指定业务日期,您可以根据计算公式推断定时运行时间,以获取各实例中两个系统参数的取值。

如何处理无法解析自定义参数,导致任务运行失败的情况?

  • 问题描述:设置INSERT into table log_in PARTITION (dat) SELECT id,name,age,sex,${var} from test1;中的自定义参数为$[yyyymmdd],无法解析导致任务运行失败。
  • 解决方法:您需要执行冒烟测试,系统才会解析对应的自定义参数。