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

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

  • 问题描述:表的分区格式为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],无法解析导致任务运行失败。
  • 解决方法:您需要执行冒烟测试,系统才会解析对应的自定义参数。

如何定义调度参数的时区?

夏令时支持现转实例引擎和参数分区计算,在进入和退出夏令时当天能正确运行。以美国西部时间为例,说明如下:
  • 进入夏令时会产生23个实例,当天3:00往前偏移10分钟的结果是1:50。进入夏令时当天定时时间2点的任务会空跑。
  • 退出夏令时会产生24个实例,当天3:00往前偏移10分钟的结果是2:50。

进入夏令时当天的日、周和月调度节点,如果设置的运行时间正好是被跳过的时间段,则当天生成的实例运行时间会是当天的0点整。