You need to enable JavaScript to run this app.
导航

调度设置

最近更新时间2024.04.11 10:47:39

首次发布时间2021.08.13 15:07:14

1 概述

任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程,有助于提高效率。 调度设置分为基本信息、调度属性、依赖关系和输入输出参数等部分。

2 功能入口

  1. 登录 DataLeap租户控制台
  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。
  3. 任务开发界面,左侧导航栏中,双击打开某个离线任务,进入节点的编辑界面。
  4. 单击右侧导航栏的调度设置按钮,进入配置。

3 基本信息

参数

描述

任务名称

显示创建任务时输入的任务名称,调度设置中不支持修改,可以在左侧任务目录树结构中,在任务名称的右侧更多入口中,单击重命名进行修改。

任务类型

不同引擎类型支持的任务类型不同。

引擎类型

支持 E-MapReduce(EMR)、湖仓一体分析服务 (LAS)、ByteHouse 企业版(ByteHouse CE)和流式计算 Flink 版几种引擎类型。

关联实例

当引擎类型为 EMR、ByteHouse CE、流式计算 Flink 版 时,同步显示项目关联的实例或引擎项目;
当引擎类型为 LAS 时,同步显示关联实例为 default。

任务描述

非必填,可对任务进行详细描述,方便后续查看和管理。

责任人

仅限一个成员,默认为任务创建人(任务执行失败、复查通过或者失败时的默认接收者),可根据实际需要,修改为其他项目成员。

  • 责任人需为项目中有编辑权限的成员,项目权限须由项目管理员授权。

    说明

    当选择的责任人在此处没有项目编辑权限,即仅为访客成员角色时,任何人均无法将任务提交至运维中心,包括项目管理员。

  • DataLeap 通过项目空间实现开发协同,项目中具有编辑权限的角色,可对项目下的所有任务进行编辑,因此无须通过为任务设置多个责任人,来达到协同合作的效果。

计算资源

当任务类型为流式计算 Flink 中的 Flink Batch SQL 时,需下拉选择任务运行所需的计算资源信息。流式计算 Flink 资源信息操作详见创建资源池

说明

已在流式计算 Flink 版控制台创建的资源池,需在 DataLeap 创建项目 > 引擎服务绑定时,进行资源池相关的绑定操作。详见创建项目

调度资源组

选择 DataLeap 平台提供的资源组,用于生成定时调度实例,提供公共调度资源组和独享调度资源组。其中:

  • 公共调度资源组,平台默认提供;
  • 独享调度资源组,您可根据实际情况自行购买,详见资源组管理

注意

Notebook、Python、Shell 类型任务中,若计算资源组为独享计算资源组时,调度资源组会置空,即这三类任务不用配置调度资源组。

LAS队列

当作业类型为 LAS引擎开发作业时显示,您可基于创建项目时绑定的引擎计算队列来下拉选择。

注意

子账号选择LAS队列时,需要有队列使用权限,需主账号前往 LAS控制台-权限管理 授予子账号队列权限。

Yarn 队列

EMR 引擎包含 Yarn 组件的集群类型,如:Hadoop、Flink、TensorFlow 集群类型,支持下拉选择任务运行所需的 Yarn 队列信息。您可在创建项目 > 服务绑定 > EMR Yarn 队列绑定时,可添加绑定多个队列信息。详见创建项目

说明

EMR Yarn 队列的更多操作详见 YARN 队列管理

优先级

您可通过设置任务优先级,指定当前任务分配的调度资源优先级:

  • 等级数字越小,代表优先级等级越高。
  • 其中 D3~D5 等级,您可直接在调度设置页面中设置。
  • D1~D2需要在治理平台完成 SLA 签署后,才能设置。SLA 签署详见 SLA 保障

说明

流式任务优先级,目前仅支持设置 D3~D5 等级,更高优先级敬请期待。

标签

您可以自定义标签,用于标识某一类任务,以便快速搜索过滤,操作即时生效,无需重新上线任务。

  • 下拉选择项目归属的标签组,及对应的标签信息,支持添加多个标签组。
  • 若没有可选的标签组,您可进行以下操作步骤:
    a. 进入 DataLeap 智能市场 > 任务标签管理,进入任务标签管理控制台,新建标签组。详见任务标签管理
    b. 新建标签组成功后,前往项目管理 > 具体项目的配置信息 > 标签管理来添加标签组。详见标签管理

4 调度属性

参数

描述

调度状态

分为开启和关闭,默认开启。
开启代表任务可以被调度,关闭代表任务不可以被调度。
您可前往运维中心操作关闭或开启任务调度。

调度类型

  • 周期调度:上游任务成功后,根据设定的频率和执行时间,任务自动开始执行。
  • 手动调度:系统不会自动调度,需手动执行。手动执行的操作入口为 运维中心 > 离线任务运维 > 上线任务 > 数据回溯

调度生效日期

当调度类型选择周期调度时,可对调度的生效时间范围进行设置。

执行频率&执行时间

  • 分钟级:执行时间需要设置时间间隔和执行时刻,时间间隔目前支持选择5分钟、10分钟、15分钟、20分钟、30分钟级别。

    说明

    执行时刻应选择低于时间间隔粒度,如10分钟级别调度,执行时刻支持选择 0~9 分。

  • 小时级:执行时间需要设置执行小时和执行时刻,执行小时支持多选。
  • 天级:执行时间需要设置具体的时间。
  • 周级:执行日期需要设置每周几来执行,支持多选,还需选择具体执行时间。
  • 月级:执行日期需要设置每月几号来执行,支持多选,还需选择具体执行时间。

分时调度

当调度类型选择周期调度,执行频率选择分钟级或者小时级时,出现分时调度属性。
启用分时调度,设定运行时间不在分时调度时段内的实例,将在下一个时段开始时才提交调度,以缓解非指定时段的执行压力。
调度时段设置,举例:

  1. 分时调度区间为6:00~22:00,若有一个设定运行时间为23:00的实例,将延迟到第二天6:00才提交调度执行。
  2. 分时调度区间为22:006:00(当日晚上10点次日早上6点),若有一个设定运行时间为7:00的实例,将延迟到当天22:00提交调度执行。

最早回溯时间

可重跑的历史数据的最早时间。设定后,最早回溯时间之前的实例将无法生成。

空跑设置

当某任务逻辑暂时无需运行,但又不想改动整个数据链路关系时,可将其设置为空跑,此时该任务会直接置为成功。
在DAG整体工作流程中,通过将子节点设置为空跑,可达到临时移除子节点的效果。

重试触发条件

系统提供失败和单次运行超时两种重试触发条件:

  • 失败:任务运行失败,若有剩余重试次数,则自动进行重试。
  • 单次运行超时:任务运行耗时超过设定阈值,若有剩余重试次数,则自动进行重试。

失败重跑次数

任务失败后重试的次数。若重试运行时间超过48小时,系统将自动结束该实例。

重跑时间间隔

任务失败后重试的时间间隔。

最大并发控制

是指单任务最大并发,即任务可同时运行的最大实例个数。实际可执行的实例个数,除受该任务最大并发限制之外,还受系统总并发实例数影响。

数据回溯建议

标记该任务是否可进行数据回溯,包括允许回溯和谨慎回溯。若选择谨慎回溯,进行回溯/重跑操作时,系统将出现二次确认提示。

5 依赖关系

通过建立任务依赖,完成数据依赖,构建数据血缘。一般情况下,当任务执行成功时,数据表分区数据即已就绪。 通过依赖推荐或手动添加的方式,可以设置任务上游依赖关系。如果该任务依赖自身上一周期的产出,则可使用任务自依赖设置。

5.1 任务上游依赖设置

5.1.1 依赖推荐

图片
LAS SQL、EMR HSQL、EMR StarRocks、ByteHouse CE SQL 任务,根据 SQL 逻辑,支持自动推荐上游依赖关系。
单击依赖推荐按钮:

  • 若需依赖的引用表名,已有对应的产出任务,您可直接在弹窗返回的推荐任务列表中,选择需要依赖的任务;
  • 若需依赖的引用表名,未找到对应的产出任务,则您可进行以下操作:
    • 需检查当前任务的 SQL 代码逻辑是否符合要求;
    • 除上游是 LAS SQL 任务外,其余类型任务您还需确认上游依赖的任务,在“任务产出数据登记”中已配置任务具体产出的数据库表信息;若上游任务无法配置“任务产出数据登记”,如数据集成任务,则您可通过“手动添加”的方式,手动添加依赖关系;
    • 其中 LAS SQL、EMR HSQL 任务,若依赖推荐中没有推荐产出任务,除手动添加依赖方式外,您也可在依赖推荐的任务搜索窗口中,单击创建 Sensor 任务按钮,前往创建相应的 Sensor 产出任务,完成依赖关系配置。Sensor 任务指导详见 LAS Hive\HDFS-Sensor/EMR Sensor

      说明

      SQL 逻辑中依赖的表需为分区表,方可展现依赖推荐中 Sensor 任务创建指引。

5.1.2 手动添加

依赖推荐功能可大大减少在任务依赖配置中的工作量,但依赖推荐存在其局限性。当发现依赖推荐返回的任务,缺少某些当前任务所使用表的数据更新任务时,您也可使用手动添加方式,人工调整依赖关系。

  1. 单击手动添加按钮,在依赖任务搜索页面,通过任务名称、任务 ID,数据表或 HDFS 路径进行搜索,添加所需依赖的上游任务。

    说明

    已在运维中心关闭的任务,不支持被添加为上游依赖。

  2. 勾选依赖的任务后,单击确定按钮,完成手动添加依赖。

5.1.3 依赖设置

找到对应上游任务并添加依赖后,您可进行后续的依赖偏移设置,同时平台也支持自动填充偏移设置。
单击依赖设置,选择集合区间偏移形式,来设置依赖偏移。在依赖不同调度频率的任务或者调度日期出现偏移时,需要设置偏移量。
上下游任务频率不同,依赖实现机制也不相同,具体分为三大类:

上下游频率类型

依赖实现机制

实际案例

偏移设置示例(区间/集合 偏移量 偏移单位)

同频依赖

当前任务实例的业务时间+偏移量*偏移单位=上游任务实例的业务时间。

天任务依赖天任务,依赖上游任务同一天运行的实例

集合 0 天

大频率依赖小频率

当前任务实例的业务时间+偏移量*偏移单位+业务时间补偿值=上游任务实例的业务时间;
PS:业务时间补偿值 =(同一执行时间,小频率任务实例对应业务时间)-(同一执行时间,大频率任务实例对应业务时间);
示例:当天依赖小时,业务时间补偿值=23小时。

天任务依赖小时任务,依赖上游任务昨天运行的24个小时实例

区间 -23,0 小时

小频率依赖大频率

依赖“(当前任务实例的业务时间 - 偏移量*偏移单位)~ 当前任务实例的业务时间 ” 时间范围内,上游任务运行的全部实例;
PS:上述时间范围左开右闭。

小时任务依赖天任务,依赖上游最近2天运行的实例

集合 -1,0 天

说明

不同频率的上游任务,对应偏移单位说明:

  • 月任务:偏移单位=月,代表1月;偏移单位=天,代表1天;
  • 周任务:偏移单位=周,代表1周;偏移单位=天,代表1天;
  • 天任务:偏移单位=天,代表1天;
  • 小时任务:偏移单位=小时,代表1小时;
  • 分钟任务:偏移单位=分钟,代表5分钟;(目前分钟级别任务,最小频率为:每5分钟执行一次)。

5.1.4 依赖预览

依赖设置中设置完偏移量后,您可单击依赖预览按钮,可以查看按照当前的依赖设置,并根据实际情况选择指定的业务时间,来预览上下游任务指定业务日期下的实例依赖关系,方便及时验证偏移设置是否符合预期。

5.2 任务自依赖设置

任务自依赖仅支持跨周期自依赖设置。 若任务需要依赖自己上一周期的数据产出,例如当天任务的执行,依赖当前任务昨天的运行结果,则跨周期自依赖设置为

6 输入输出参数

通过任务的输入输出参数,可实现参数在上下游节点之间的传递。
支持任务使用自定义参数,该参数可通过自定义内容值,也可来源于上游任务输出或来源于项目参数。

6.1 输入参数

任务设置输入参数后,可在任务内部使用,其使用方式与时间参数使用方式不同:

  • 时间参数通过 ${} 方式使用;
  • 其他输入参数通过 {{参数名}} 的方式进行使用。

输入参数具体分为以下三类:

6.1.1 将上游任务的执行结果,当做输出参数:

支持将 Shell、Python 任务,最后一行 stdout/err 的实例运行结果,作为输出变量参数,通过“outputs”进行传递。

  1. 上游任务 A 在调度设置 > 任务输出参数中,勾选“将运行结果当做输出”,通过使用“outputs”,将执行结果当作输出。

    说明

    1. 会将最后一行 stdout/err 的内容存入输出参数中。
    2. remote shell 仅将 stdout 的内容存入输出参数中。
    图片
  2. 下游任务 B,在调度设置 > 依赖关系中,手动添加上游任务 A 为父节点依赖:
    图片
  3. 下游任务 B 在调度设置 > 任务输入参数中,单击手动添加按钮,进入输入参数添加窗口。
  4. 在窗口中设置以下信息:
    • 参数名称:输入 B 任务中使用的参数名称;
    • 参数类型:下拉选择任务类型;
    • 来源任务:下拉选择已添加依赖的上游任务 A;
    • 具体参数:下拉选择为上游输出名称:outputs;
    • 解析替换值:调试解析时,系统不会从上游获取 outputs 的真实内容,用“解析替换值”进行替换。默认值为1,用户可按需进行替换。
      图片
  5. 参数添加完成后,您便可在代码编辑界面以 {{参数名}} 的形式进行使用;时间参数通过 ${} 方式使用。

6.1.2 将在项目中设置的参数当作输入

在输入参数中手动添加参数类型为项目,项目参数可供项目全局使用。

  1. 项目控制台 > 参数信息中,新建项目参数,操作详见参数信息设置
  2. 任务输入参数界面中,单击手动添加按钮,进入输入参数添加窗口:
    1. 参数名称:输入任务中使用的参数名称;
    2. 参数类型:下拉选择项目类型;
    3. 来源:下拉选择已新建的项目参数名称。

项目参数使用案例详见参数信息-使用案例

6.1.3 自定义的参数当作输入

输入参数支持以自定义参数内容的方式,进行上下游传参。
任务输入参数界面中,单击手动添加按钮,进入输入参数添加窗口:

  • 参数名称:输入任务中使用的参数名称;
  • 参数类型:下拉选择自定义类型;
  • 取值:输入自定义的参数取值。

自定义参数使用案例详见3.4.4 任务输入参数

6.2 输出参数

设置任务的输出参数,输出参数定义完成且任务上线后,即可在下游节点中使用,作为下游节点的输入参数的取值。输出参数的取值分为常量和变量两种类型。

  • 常量取值:常量为固定字符串,需要在任务的输出参数中进行定义。
  • 变量取值:系统支持的全局变量,不需要在输出参数中定义,由系统提供,具体为:
    • {{taskId}}: 任务ID
    • {{taskType}}: 任务类型
    • {{taskName}}: 任务名称
    • {{taskOwner}}: 任务责任人
    • {{instanceId}}: 实例ID
    • {{taskTime}}: 实例对应的业务时间
    • {{scheduleRunTime}}: 实例设定的运行时间
    • {{startTime}}: 实例实际开始运行时间
    • {{endTime}}: 实例实际结束运行时间
    • {{instanceStatus}}: 实例状态
    • {{triggerType}}: 触发类型,包括系统调度、重跑
    • {{trackingUrl}}: 实例执行Tracking URL