离线管道调度配置
调度配置用于定义周期性调度类型的离线管道任务在调度过程中的调度规则。本文为您介绍如何配置周期性离线管道调度配置。
背景信息
依赖关系是两个或多个节点之间的语义连接关系,同时上游节点的状态将影响其他下游节点的运行状态。
配置了依赖关系的节点调度规则为:首先,上游节点运行完成后,才能调度下游节点。其次,根据节点设定的调度时间判断是否执行调度。
您在设定的调度时间之前提交的调度配置,会在设定的调度时间之后生效。而在设定的调度时间之后配置的依赖关系,只能间隔一天再生成实例。
操作步骤
请参见离线集成任务属性入口,进入离线集成任务属性面板。
在离线集成任务属性面板,配置调度配置区域参数。
参数
描述
调度类型
支持正常调度、空跑调度及暂停调度3种调度类型。
正常调度:按照调度周期的时间配置调度,并正常执行(即会真实跑数据),通常任务默认选中该项。
空跑调度:按照调度周期的时间配置调度,但都是空跑执行(即不会真实跑数据),即当调度到该任务时便直接返回成功,没有真正的执行任务。通常用于当某一个节点在一定时间内不需要执行,并且不阻塞他的下游节点执行时,可选择此类型调度。
暂停调度:暂停调度选择是后,将按照调度周期配置的时间启动调度,但节点状态被置为暂停(即不会真实跑数据)。调度到该任务时,系统会直接返回失败,并且会阻塞依赖当前节点的下游节点执行。通常用于某个任务暂时不用执行,但后面还会继续使用的场景。
调度周期
调度周期即在生产环境调度系统中,多久会真实执行一次该任务中的代码。当一个任务被成功提交后,该任务调度将提交当天次日开始该任务的时间属性配置生成自动调度的周期实例,并根据上游依赖的实例运行结果和时间点运行。
调度周期可选择日、周、月、小时和分钟:
日调度:即调度任务每天自动运行一次。新建周期任务时,系统默认的时间周期为每天0点运行一次。您可以根据需要,单击
图标,指定运行的时间点。
周调度:即调度任务每周的特定几天,在特定时间点自动运行一次。您可以根据需要,单击
图标,指定运行的时间点。
说明在非指定的调度时间内,为保证下游实例正常运行,系统会生成实例后直接设置为运行成功,而不会真正执行任何逻辑,也不会占用资源。
月调度:即调度任务在每月的特定几天,在特定时间点自动运行一次。您可以根据需要,单击
图标,指定运行的时间点。
说明在非指定的调度时间内,为保证下游实例正常运行,系统会每天生成实例后直接设置为运行成功,而不会真正执行任何逻辑,也不会占用资源。
小时调度:支持时间段调度、整点调度和自定义调度。
时间段调度:即每天指定的时间段内,调度任务按间隔时间数的时间间隔运行一次。您可以单击开始或结束后的
图标,指定运行的开始和结束时间。同时您可以单击间隔后的
图标,在下拉列表中选择间隔时间。例如,每天00:00~23:59的时间段内,每隔1小时会自动调度一次。
整点调度:单击下拉列表框选择整点时间,调度系统会在所选择的整点时间自动为任务生成实例并运行。
自定义调度:单击下拉列表框选择自定义时间,调度系统会在所自定义的时间自动为任务生成实例并运行。
分钟调度:支持每天或每小时。
每天:即每天指定的时间段内,调度任务按间隔时间数的时间间隔运行一次。
每小时:即每小时指定的开始时间到该小时结束的时间段内,调度任务按间隔时间数的时间间隔运行一次。
参数配置
参数配置是对计算任务代码中所用的变量进行赋值,从而支持节点调度时,参数变量可以自动被替换为相应的变量值。多个参数以;隔离。更多说明,请参见附录:节点参数说明。
条件调度
可设置多组调度条件,系统按照从上往下的顺序进行条件判断,命中条件后即执行相应调度动作,并终止后续所有条件的判断。未命中任何条件时,则执行默认调度配置。
重要条件调度仅在调度类型为正常调度时生效。
单击添加调度条件。
说明最多支持添加 10 个调度条件。
在编辑条件调度对话框中,配置条件调度相关配置信息。
单击确定。
完成条件调度设置后,单击预览调度运行计划,可查看条件调度在日历中命中的日期。
重要修改条件调度设置,并提交并发布到生产环境后,将对发布时为未运行状态的实例实时生效,对已进入等待运行时间的实例不生效。
单击确定。
附录:节点参数说明
Dataphin的变量分类
Dataphin中存在以下类型的变量。
全局变量:在规划-公共定义-全局变量中事先声明定义, 可以在租户内任何节点或代码中出引用,系统初始内置的全局变量有
${bizdate}
、${nodeid}
、${taskid}
。空间名称变量:即
${生产项目名称}
和${生产板块名称}
。本地变量:无须声明式定义,直接在代码中使用
${variablename}
即可定义一个名字为variable_name
的本地变量,建议variable_name
只使用数字,字母和下划线(请勿使用glb开头, 此为全局变量保留设置 ),且长度不超过 32 位字符。重要如果
variable_name
与某个全局变量名称一致, 会被系统优先视作引用了全局变量, 可在参数配置中转换类型为本地变量。如果
variable_name
与某个生产项目或者生产板块的名称一致, 会被系统强制视作为空间名称变量。如果
${variable_name}
是代码内容的一部分, 而不是变量, 可在参数配置中忽略该变量。
变量赋值-日期时间计算表达式
为本地变量赋值时, 如果需要针对日期时间进行运算, Dataphin提供一套快捷日期计算操作符。
Dataphin提供基于两个日期时间的运算。
基于业务日期${bizdate}的方式:
${(yyyyMMdd|yyyy/MM/dd|yyyy-MM-dd) (+|-) n}
, 详见下表示例。基于预计执行时间(即节点任务设置的起调时间)的方式:
$[(yyyyMMddHHmmss|yyyy/MM/dd HH:mm:ss|yyyy-MM-dd HH:mm:ss) (+|-) n]
, 详见下表示例。
日期时间各部分的标识符号。
日期时间
标识符号
年
yyyy
月
mm (日期时间只到天粒度时可使用)或 MM (日期时间到分钟粒度时必须使用大写,以便和分钟 mm 进行区分)。
日
dd
小时
HH
分钟
mm
秒
ss
日期时间运算的单位(interval)是天。
1小时使用1/24来表示,5小时为5/24。
1分钟使用1/24/60来表示,30分钟为30/24/60。
示例参考
当前日期 | 基于业务日期(T-1)的配置 | 实际值 | 基于预计执行时间(T)的配置 | 实际值 |
2018-01-10 | ${yyyymmdd} | 20180109 | $[yyyymmdd] | 20180110 |
2018-01-10 | ${yyyyMMdd} | 20180109 | $[yyyyMMdd] | 20180110 |
2018-01-10 | ${yyyymmdd -1} | 20180108 | $[yyyymmdd -1] | 20180109 |
2018-01-10 | ${yyyymmdd -7} | 20180102 | $[yyyymmdd -7] | 20180103 |
2018-01-10 | ${yyyy-mm-dd} | 2018-01-09 | $[yyyy-mm-dd] | 2018-01-10 |
2018-01-10 | ${yyyy-mm} | 2018-01 | $[yyyy-mm] | 2018-01 |
2018-01-10 | ${yyyy-mm -1} | 2017-12 | $[yyyy-mm -1] | 2017-12 |
2018-01-10 | ${yyyy} | 2018 | $[yyyy] | 2018 |
2018-01-10 | ${yyyy+1} | 2019 | $[yyyy + 1] | 2019 |
2018-01-10 | ${yyyy/MM/dd HH:mm:ss} | 2018/01/09 00:00:00 | $[yyyy/MM/dd HH:mm:ss] | 2018/01/10 00:00:00 |
2018-01-10 | ${yyyy/MM/dd HH:mm:ss-1/24} | 2018/01/08 23:00:00 | $[HH:mm:ss-5/24/60] | 23:55:00 |
附录:条件规则说明
Dataphin支持且、或2个逻辑运算:
且:所有条件的判断结果为真(True)时,结果为真。
或:所有条件中任意一个条件为真(True)时,结果为真。
条件判断类型
Dataphin支持以业务日期作为条件判断的类型,即第一个下拉选项。
业务日期具备普通日历和公共日历2个属性选项。
普通日历:日常生活中所使用的日历(公历),支持日期、月份、星期做为参数值。参数值判断条件有属于与不属于。
公共日历:在Dataphin创建的公共日历,支持日期类型(工作日、假期)、标签做为参数值。标签的参数值判断条件有包含所有、包含其一、不包含。公共日历创建详情请参见:新建公共日历。
示例说明
业务日期以2022-12-06为例,使用或运算配置上图条件判断:
第一条判断:2022-12-06 在普通日历中不属于星期中的周六或周天,即第一个条件判断为假。
第二条判断:2022-12-06 在公共日历text01中日历类型为假日,即第二个条件判断为真。
因使用或运算,所有条件中任意一个条件为真(True)时,结果为真,则该条件调度被满足,系统将根据配置的执行调度类型进行暂停调度。预览调度运行计划如下图所示: