调度作业
对已编排好的作业设置调度方式。
- 如果您的作业是批处理作业,您可以配置作业级别的调度任务,即以作业为一个整体进行调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置作业调度任务(批处理作业)。
- 如果您的作业是实时处理作业,您可以配置节点级别的调度任务,即每一个节点可以独立调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置节点调度任务(实时作业)。
前提条件
- 已完成开发Pipeline作业或开发批处理单任务SQL作业。
- 当前用户已锁定该作业,否则需要通过“抢锁”锁定作业后才能继续开发作业。新建或导入作业后默认被当前用户锁定,详情参见编辑锁定功能。
约束限制
- 调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。
- 如果通过DataArts Studio数据开发调度CDM迁移作业,CDM迁移作业处也配置了定时任务,则两种调度均会生效。为了业务运行逻辑统一和避免调度冲突,推荐您启用数据开发调度即可,无需配置CDM定时任务。
配置作业调度任务(批处理作业)
配置批处理作业的作业调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下:
单击画布右侧“调度配置”页签,展开配置页面,配置如表1所示的参数。
参数 |
说明 |
---|---|
调度方式 |
选择作业的调度方式:
|
是否空跑 |
如果勾选了空跑,任务不会实际执行,将直接返回成功。 |
任务组 |
选择已配置好的任务组。配置方法请参见配置任务组。 系统默认“不选择任务组”。 任务组配置好后,可以更细粒度的进行当前任务组中的作业节点的并发数控制,比如作业中包含多个节点、补数据、重跑等场景。 举例1:任务组里面最大并发数配置为2,作业节点有5个,当作业运行时,只有两个节点在运行中,其它节点在等待运行。 举例2:任务组里面最大并发数配置为2,补数据的并发周期数设置为5,当作业进行补数据时,有两个补数据生成的作业实例在运行中,其它的在等待运行。等待运行的实例,一段时间后,可以正常下发。 举例3:如果多个作业配置同一个任务组,任务组里面最大并发数配置为2,只有两个作业是运行中,其他作业在等待执行。如果多个作业节点上配置了任务组,任务组里面最大并发数配置为2,作业节点总共有5个,根据作业调度时间,只有两个节点在运行中,其它节点在等待运行。
说明:
对于Pipeline作业,每个节点都可以配置一个任务组,也可以在作业里面统一配置任务组,如果配置了作业级用户组,则优先级高于节点的任务组。 |
参数 |
说明 |
---|---|
生效时间 |
调度任务的生效时间段。 系统支持生效时间可以快速选到今天和明天。单击生效时间的时间框,在时间框界面单击“今天”或“明天”,可以快速选择当前日期。 |
调度周期 |
选择调度任务的执行周期,并配置相关参数。 调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。 已经在运行中的作业,可以修改其调度周期。
说明:
因为DataArts Studio不支持底层服务(例如,以前的CDM、DLI等服务)的补数据实例和周期调度作业实例并发运行,为了保证补数据实例不影响周期调度作业实例运行,两种类型作业实例不会抢占并发,所以,作业的周期调度的日期与该作业补数据的业务日期不能重合,周期调度和补数据不能同时运行,避免出现运行异常问题。 |
调度日历 |
根据已配置的日历信息,选择所需的调度日历。系统默认不使用调度日历。配置调度日历的操作请参见配置调度日历。
|
监听OBS |
打开监听OBS开关后,系统会自动监听OBS路径是否有新作业文件。关闭开关后不再监听OBS路径。 配置参数如下:
|
偏移量 |
偏移量的单位为天。 输入偏移量的值。输入值必须在-366到366之间。默认为1。 当工作空间模式为业务日期模式时,偏移量设置为1时,则表示处理的是昨天的业务数据,偏移量设置为-1时,则表示处理的是明天的业务数据,偏移量设置为0时,则表示处理的是今天的业务数据。 业务日期模式下,作业实例的生效时间是业务日期,如果作业偏移量为-1,作业在调度时间为6月7日的时候,会生成业务日期为6月8日的作业实例。
说明:
|
依赖作业 |
此处可以选择不同工作空间的周期调度作业作为依赖作业,则仅当依赖的作业运行完成时,才开始执行当前作业。支持单击“自动解析依赖”对作业依赖关系进行自动识别。
说明:
跨工作空间的作业依赖规则,请参见作业依赖规则。 数据开发当前支持两种调度依赖策略:传统周期调度依赖和自然周期调度依赖。这两种周期调度依赖只能选择其中一种。对于新的应用实例而言,默认使用自然周期调度作为DataArts Studio新实例默认选项。
图1 传统周期调度作业依赖关系全景图
图2 自然周期调度作业依赖关系全景图
关于设置依赖作业的条件,以及设置依赖作业后的作业运行原理请参见周期调度依赖策略。 |
依赖的作业失败后,当前作业处理策略 |
当依赖的作业在当前作业周期内存在运行失败实例后,选择当前作业的处理策略:
例如,当前作业调度周期为1小时, 依赖作业调度周期为5分钟。
|
等待依赖作业的上一周期结束,才能运行 |
当作业依赖其他作业时,默认情况下等待某时间区间(详见设置依赖作业后的作业运行原理)内是否有依赖的作业实例运行完成,然后才执行当前作业。如果依赖的作业实例未成功运行结束,则当前作业为等待运行状态。 当勾选此选项后,检查此时间区间的上一周期区间内是否有作业实例运行完,然后再执行当前作业。 |
配置作业依赖时,可以对所依赖的作业是否在调度中进行过滤 |
配置作业依赖关系时,可以对所依赖的作业是否在调度中进行过滤,避免上游依赖的作业未开始调度,从而导致下游作业失败。
|
配置作业依赖时,支持选择依赖周期 |
|
跨周期依赖 |
选择作业实例之间的依赖关系。
|
是否清理超期等待运行的作业实例 |
|
是否空跑 |
如果勾选了空跑,任务不会实际执行,将直接返回成功。 |
任务组 |
选择已配置好的任务组。配置方法请参见配置任务组。 系统默认“不选择任务组”。 任务组配置好后,可以更细粒度的进行当前任务组中的作业节点的并发数控制,比如作业中包含多个节点、补数据、重跑等场景。
说明:
对于Pipeline作业,每个节点都可以配置一个任务组,也可以在作业里面统一配置任务组,如果配置了作业级用户组,则优先级高于节点的任务组。 |
参数 |
说明 |
---|---|
触发事件类型 |
选择触发作业运行的事件类型。
|
“DIS”触发事件类型的参数 |
|
DIS通道名称 |
选择DIS通道,当指定的DIS通道有新消息时,数据开发模块将新消息传递给作业,触发该作业运行。 |
事件处理并发数 |
选择作业并行处理的数量,最大并发数为128。 |
事件检测间隔 |
配置时间间隔,检测DIS通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。 |
读取策略 |
选择数据的读取位置:
|
失败策略 |
选择调度失败后的策略:
|
是否空跑 |
如果勾选了空跑,任务不会实际执行,将直接返回成功。 |
任务组 |
选择已配置好的任务组。配置方法请参见配置任务组。 系统默认“不选择任务组”。 任务组配置好后,可以更细粒度的进行当前任务组中的作业节点的并发数控制,比如作业中包含多个节点、补数据、重跑等场景。
说明:
对于Pipeline作业,每个节点都可以配置一个任务组,也可以在作业里面统一配置任务组,如果配置了作业级用户组,则优先级高于节点的任务组。 |
“KAFKA”触发事件类型的参数 |
|
连接名称 |
选择数据连接,需先在“管理中心”创建kafka数据连接。 |
Topic |
选择需要发往kafka的消息Topic。 |
事件处理并发数 |
选择作业并行处理的数量,最大并发数为128。 |
事件检测间隔 |
配置时间间隔,检测通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。 |
读取策略 |
选择数据的读取位置:
|
失败策略 |
选择调度失败后的策略:
|
是否空跑 |
如果勾选了空跑,任务不会实际执行,将直接返回成功。 |
任务组 |
选择已配置好的任务组。配置方法请参见配置任务组。 系统默认“不选择任务组”。 任务组配置好后,可以更细粒度的进行当前任务组中的作业节点的并发数控制,比如作业中包含多个节点、补数据、重跑等场景。
说明:
对于Pipeline作业,每个节点都可以配置一个任务组,也可以在作业里面统一配置任务组,如果配置了作业级用户组,则优先级高于节点的任务组。 |
“OBS”触发事件类型的参数(当前仅上海二区域支持)
说明:
“OBS”触发事件类型的事件驱动调度,依赖于OBS的“事件通知 -> DIS通知”功能,由于OBS该功能在华为云暂未正式上线,因此当前暂时无法使用OBS触发事件类型。 |
|
OBS路径 |
选择要监听的OBS路径。如果该路径下有您在OBS控制台配置的指定OBS事件产生,通知则触发调度。 |
DIS通道名称 |
选择DIS通道,当指定的DIS通道有新消息时,数据开发模块将新消息传递给作业,触发该作业运行。 |
最大处理文件数 |
节点被驱动运行时,每批次最多可处理的文件数。 |
事件处理并发数 |
选择作业并行处理的数量,最大并发数为128。 |
事件检测间隔 |
配置时间间隔,检测OBS路径下是否有指定事件产生。时间间隔单位可以配置为秒或分钟。 |
失败策略 |
选择调度失败后的策略:
|
是否空跑 |
如果勾选了空跑,任务不会实际执行,将直接返回成功。 |
任务组 |
选择已配置好的任务组。配置方法请参见配置任务组。 系统默认“不选择任务组”。 任务组配置好后,可以更细粒度的进行当前任务组中的作业节点的并发数控制,比如作业中包含多个节点、补数据、重跑等场景。
说明:
对于Pipeline作业,每个节点都可以配置一个任务组,也可以在作业里面统一配置任务组,如果配置了作业级用户组,则优先级高于节点的任务组。 |
配置节点调度任务(实时作业)
配置实时处理作业的节点调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下:
单击画布中的节点,在右侧显示“调度配置”页签,单击此页签,展开配置页面,配置如表4所示的参数。
参数 |
说明 |
---|---|
调度方式 |
选择作业的调度方式:
|
“周期调度”的参数 |
|
生效时间 |
调度任务的生效时间段。 |
调度周期 |
选择调度任务的执行周期,并配置相关参数:
调度周期需要合理设置,如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。 已经在运行中的作业,可以修改其调度周期。 |
跨周期依赖 |
选择作业下实例之间的依赖关系。 |
“事件驱动调度”的参数 |
|
触发事件类型 |
选择触发作业运行的事件类型。 |
DIS通道名称 |
选择DIS通道,当指定的DIS通道有新消息时,数据开发模块将新消息传递给作业,触发该作业运行。 当“触发事件类型”选择“DIS”或“OBS”时才需要配置。 |
连接名称 |
选择数据连接,需先在“管理中心”创建kafka数据连接。当“触发事件类型”选择“KAFKA”时才需要配置。 |
Topic |
选择需要发往kafka的消息Topic。当“触发事件类型”选择“KAFKA”时才需要配置。 |
OBS路径 |
选择要监听的OBS路径,如果该路径下有新增文件,则触发调度;新增的文件的路径名,可以通过变量Job.trigger.obsNewFiles引用。前提条件:该OBS路径已经配置DIS消息通知。 |
最大处理文件数 |
节点被驱动运行时,每批次最多可处理的文件数。当“触发事件类型”选择“OBS”时才需要配置。 |
消费组 |
消费者组是kafka提供的可扩展且具有容错性的消费者机制。 它是一个组,所以内部可以有多个消费者,这些消费者共用一个ID,一个组内的所有消费者共同协作,完成对订阅的主题的所有分区进行消费。其中一个主题中的一个分区只能由一个消费者消费。
说明:
当触发事件类型选择了DIS或KAFKA时,会自动关联出消费组的ID,用户也可以手动修改。 |
事件处理并发数 |
选择作业并行处理的数量,最大并发数为10。 |
事件检测间隔 |
配置时间间隔,检测DIS通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。 |
读取策略 |
|
失败策略 |
选择节点执行失败后的策略:
|