在平台管理的基础配置中,支持调度日历的配置。调度日历支持用户通过日历的方式进行调度日的配置。
调度日历配置 - 图1

系统预置沪深交易日沪港股通交易日沪股通交易日深港股通交易日深股通交易港股交易日模板。用户可在具体的交易日模板中点击配置日历按钮,进入配置界面。
调度日历配置 - 图2

在配置界面中需要事先进行下载模板操作,在模板中填写调度日非调度日清空,其中清空指的是消除对应的调度设置。配置完成后点击上传按钮进行上传,可在更新预览中看到调度状态的变化情况。
调度日历配置 - 图3

除了系统预置的调度日历模板外,系统也支持通过底部添加自定义日历按钮进行日历的添加。
调度日历配置 - 图4

关于调度日历的时间参数


在实际使用调度日历的过程中还需要关注这样的场景,即考虑调度日历偏移量,比如用户的调度日历配置情况如下,其中,4.29、4.30、5.5、5.6、5.7、5.9为调度日。
调度日历配置 - 图5

针对上述情况,azkaban参数又添加了新的UDF——azkaban_date_modify(string date, string calendarName, bigint offset, string offset_position)

  • date支持“yyyy-MM-dd”或“yyyyMMdd”格式的字符串;
  • offset仅支持正数和负数,不能输入0,最大会在日历中查找367天,未找到符合offset数的调度日期,会返回报错;
  • offset_position选填,支持输入“dd”,如果输入“MM”或“yyyy”等非法字符,则执行会报错。

其具体用法如下表所示:

参数 说明
‘$(azkaban_date_modify(‘${schedule.exec.date.std}’, -1))’ 实例的计划执行日期减1后以yyyy-MM-dd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.std}’, -1, ‘dd’))’ 实例的计划执行日期减1后以yyyy-MM-dd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.std}’, -1, ‘MM’))’ 实例的计划执行日期所在月份减1后以yyyy-MM-dd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.std}’, -1, ‘MM’))’ 实例的计划执行日期所在月份减1后以yyyy-MM-dd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.std}’, -1, ‘yyyy’))’ 实例的计划执行日期所在年份减1后以yyyy-MM-dd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.simple}’, -1))’ 实例的计划执行日期减1后以yyyyMMdd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.simple}’, -1, ‘dd’))’ 实例的计划执行日期减1后以yyyyMMdd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.simple}’, -1, ‘MM’))’ 实例的计划执行日期所在月份减1后以yyyyMMdd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.simple}’, -1, ‘yyyy’))’ 实例的计划执行日期所在年份减1后以yyyyMMdd展示
‘$(azkaban_date_modify(‘${schedule.exec.date.simple}’,’calendarName’, -1, ‘dd’))’ 实例的计划执行日期减1,以yyyyMMdd展示;其中“calendarName”表示调度日历的标识;如果偏移是正数,则往后查找符合条件的日期,偏移是负数,则往前查找

使用上述的azkaban参数执行如下SQL,结果如下:
调度日历配置 - 图6