离线管道调度配置

更新时间: 2023-09-12 09:37:27

调度配置用于定义周期性调度类型的离线管道任务在调度过程中的调度规则。本文为您介绍如何配置周期性离线管道调度配置。

背景信息

  • 依赖关系是两个或多个节点之间的语义连接关系,同时上游节点的状态将影响其他下游节点的运行状态。

  • 配置了依赖关系的节点调度规则为:首先,上游节点运行完成后,才能调度下游节点。其次,根据节点设定的调度时间判断是否执行调度。

  • 您在设定的调度时间之前提交的调度配置,会在设定的调度时间之后生效。而在设定的调度时间之后配置的依赖关系,只能间隔一天再生成实例。

操作步骤

  1. 请参见离线集成任务属性入口,进入离线集成任务属性面板。

  2. 在离线集成任务属性面板,配置调度配置区域参数。

    image..png

    参数

    描述

    调度类型

    支持正常调度、空跑调度及暂停调度3种调度类型。

    • 正常调度:按照调度周期的时间配置调度,并正常执行(即会真实跑数据),通常任务默认选中该项。

    • 空跑调度:按照调度周期的时间配置调度,但都是空跑执行(即不会真实跑数据),即当调度到该任务时便直接返回成功,没有真正的执行任务。通常用于当某一个节点在一定时间内不需要执行,并且不阻塞他的下游节点执行时,可选择此类型调度

    • 暂停调度:暂停调度选择是后,将按照调度周期配置的时间启动调度,但节点状态被置为暂停(即不会真实跑数据)。调度到该任务时,系统会直接返回失败,并且会阻塞依赖当前节点的下游节点执行。通常用于某个任务暂时不用执行,但后面还会继续使用的场景。

    调度周期

    调度周期即在生产环境调度系统中,多久会真实执行一次该任务中的代码。当一个任务被成功提交后,该任务调度将提交当天次日开始按照该任务的时间属性配置生成自动调度的周期实例,并根据上游依赖的实例运行结果和时间点运行。

    调度周期可选择小时分钟

    • 日调度:即调度任务每天自动运行一次。新建周期任务时,系统默认的时间周期为每天0点运行一次。您可以根据需要,单击image图标,指定运行的时间点。

    • 周调度:即调度任务每周的特定几天,在特定时间点自动运行一次。您可以根据需要,单击image图标,指定运行的时间点。

      说明

      在非指定的调度时间内,为保证下游实例正常运行,系统会生成实例后直接设置为运行成功,而不会真正执行任何逻辑,也不会占用资源。

    • 月调度:即调度任务在每月的特定几天,在特定时间点自动运行一次。您可以根据需要,单击image图标,指定运行的时间点。

      说明

      在非指定的调度时间内,为保证下游实例正常运行,系统会每天生成实例后直接设置为运行成功,而不会真正执行任何逻辑,也不会占用资源。

    • 小时调度:即每天指定的时间段内,调度任务按间隔时间数的时间间隔运行一次。或选择指定的时间点,调度系统会自动为任务生成实例并运行。您可以根据业务需求选中时间段时间点

      • 如果您选中了时间段,您可以单击开始结束后的image图标,指定运行的开始和结束时间。同时您可以单击间隔后的image图标,在下拉列表中选择间隔时间。

      • 如果您选中了时间点,单击下拉列表框,在下拉列表中选择时间点。

      例如,每天00:00~23:59的时间段内,每隔1小时会自动调度一次,因此调度系统会自动为任务生成实例并运行。

    • 分钟调度:即每天指定的时间段内,调度任务按间隔时间数的时间间隔运行一次。 您可以单击开始结束后的image图标,指定运行的开始和结束时间。同时您可以单击间隔后的image图标,在下拉列表中选择间隔时间。

    参数配置

    参数配置是对计算任务代码中所用的变量进行赋值,从而支持节点调度时,参数变量可以自动被替换为相应的变量值。多个参数以隔离。更多说明,请参见附录:节点参数说明

    条件调度

    可设置多组调度条件,系统按照从上往下的顺序进行条件判断,命中条件后即执行相应调度动作,并终止后续所有条件的判断。未命中任何条件时,则执行默认调度配置。

    重要

    条件调度仅在调度类型为正常调度时生效。

    1. 单击添加调度条件

      image..png
      说明

      最多支持添加 10 个调度条件。

    2. 编辑条件调度对话框中,配置条件调度相关配置信息。

      image
      • 条件名称:命名规则:支持任意字符,需在32个字符以内。

      • 生效状态:默认开启。关闭后,进行调度时该条件调度将被忽略。

      • 满足以下条件:条件的判断规则,当条件判断为真时,按执行调度的配置信息进行调度。配置说明详情参见:。

      • 执行调度:支持自定义与跟随调度属性:

        • 自定义:条件判断为真,根据所配置的调度类型运行调度。

        • 跟随调度属性:与调度属性中的调度策略一致, 等同于关闭条件调度时的调度设置。

      • 调度类型:配置说明,请参见上文调度配置

      • 起调日期:调度类型为正常调度时,需配置起调时间,即为调度任务的开始运行的时间。

    3. 单击确定。

      完成条件调度设置后,单击预览调度运行计划,可查看条件调度在日历中命中的日期。

      重要

      修改条件调度设置,并提交并发布到生产环境后,将对发布时为未运行状态的实例实时生效,对已进入等待运行时间的实例不生效。

  3. 单击确定

附录:节点参数说明

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创建的公共日历,支持日期类型(工作日、假期)、标签做为参数值。标签的参数值判断条件有包含所有包含其一不包含。公共日历创建详情请参见:新建公共日历与标签

示例说明

image

业务日期以2022-12-06为例,使用或运算配置上图条件判断:

  • 第一条判断:2022-12-06 在普通日历中不属于星期中的周六或周天,即第一个条件判断为假。

  • 第二条判断:2022-12-06 在公共日历text01中日历类型为假日,即第二个条件判断为真。

因使用运算,所有条件中任意一个条件为真(True)时,结果为真,则该条件调度被满足,系统将根据配置的执行调度类型进行暂停调度。预览调度运行计划如下图所示:

image
阿里云首页 智能数据建设与治理 Dataphin 相关技术圈