对已编排好的作业设置调度方式。
- 如果您的作业是批处理作业,您可以配置作业级别的调度任务,即以作业为一个整体进行调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见下方“配置作业调度任务(批处理作业)”。
- 如果您的作业是实时处理作业,您可以配置节点级别的调度任务,即每一个节点可以独立调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见下方“配置节点调度任务(实时作业)”。
前提条件
- 已开发作业。
- 当前用户已锁定该作业,否则需要通过“抢锁”锁定作业后才能继续开发作业。新建或导入作业后默认被当前用户锁定,详情参见 提交版本并解锁章节中的 编辑锁定功能。
约束限制
- 调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。
- 如果通过DataArts Studio数据开发调度CDM迁移作业,CDM迁移作业处也配置了定时任务,则两种调度均会生效。为了业务运行逻辑统一和避免调度冲突,推荐您启用数据开发调度即可,无需配置CDM定时任务。
配置作业调度任务(批处理作业)
配置批处理作业的作业调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下:
单击画布右侧“调度配置”页签,展开配置页面,配置如下表所示的参数。
作业调度配置
参数 | 说明 |
---|---|
调度方式 | 选择作业的调度方式: 单次调度:手动触发作业单次运行。 周期调度:周期性自动运行作业,参数说明请参见下表。 事件驱动调度:根据外部条件触发作业运行,参数说明请参见下表。 |
空跑 | 如果勾选了空跑,任务不会实际执行,将直接返回成功。 |
“周期调度”的参数配置
参数 | 说明 |
---|---|
生效时间 | 调度任务的生效时间段。 |
调度周期 | 选择调度任务的执行周期,并配置相关参数。调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。 分钟:支持在小时整点开始调度运行,调度周期可按间隔时间配置为分钟级别,在当天结束时间结束调度后第二天再自动开始调度。 小时:支持在某一时刻开始调度运行,调度周期可按间隔时间配置为小时级别,在当天结束时间结束调度后第二天再自动开始调度。 天:支持在某天的某一时刻开始调度运行,调度周期为1天。 周:支持在一周中选择一天或多天的某一时刻开始调度运行。 月:支持在一月中选择一天或多天的某一时刻开始调度运行。 |
依赖作业 | 选择周期调度作业作为依赖作业,则仅当依赖的作业在某段时间内有实例运行完成时,才开始执行当前作业。当前仅支持通过搜索作业名来选择符合条件的作业为依赖作业。关于设置依赖作业的条件,以及设置依赖作业后的作业运行原理请参见作业依赖详解。另外,依赖作业可以配置为多个作业,对于多个依赖作业,需等到某时间区间(详见作业依赖详解章节中的“设置依赖作业后的作业运行原理”)内所有依赖作业实例运行完成后,才能开始执行。约束条件如下: 作业A的调度周期不能比依赖作业B小。例如,作业A和作业B同为分钟/小时调度,A的间隔时间小于B的间隔时间,则作业A不能设置作业B为依赖作业;作业A为分钟调度,作业B为小时调度,则作业A不能设置作业B为依赖作业。 作业A和依赖作业B的不能有任一调度周期为周。例如,作业A的调度周期为周或作业B的调度周期为周,则作业A不能设置作业B为依赖作业。 调度周期为月的作业只能依赖调度周期为天的作业。例如,作业A的调度周期为月,则作业A只能设置调度周期为天的作业为依赖作业。 |
依赖的作业失败后,当前作业处理策略 | 当依赖的作业在当前作业周期内存在运行失败实例后,选择当前作业的处理策略: 挂起 挂起当前作业,挂起的作业会阻塞后续作业的执行。您可以手动将依赖的作业强制成功,解决阻塞问题。 继续执行 继续执行当前作业。 终止执行 终止执行当前作业,当前作业的状态为“取消”。 例如,当前作业调度周期为1小时, 依赖作业调度周期为5分钟。 如果当前参数配置的是终止执行,依赖的作业12个实例中只要有一个失败的,当前作业就终止执行。 如果当前参数配配置的是继续执行,只要依赖的作业12个实例跑完了,当前作业就继续执行。 说明 依赖的作业失败后,当前作业处理策略可通过配置默认项进行批量设置,无需每个作业单独设置。具体请参见配置默认项。 |
等待依赖作业的上一周期结束,才能运行 | 当作业依赖其他作业时,默认情况下等待某时间区间(详见作业依赖详解章节中的“设置依赖作业后的作业运行原理”)内是否有依赖的作业实例运行完成,然后才执行当前作业。如果依赖的作业实例未成功运行结束,则当前作业为等待运行状态。当勾选此选项后,检查此时间区间的上一周期区间内是否有作业实例运行完,然后再执行当前作业。 |
跨周期依赖 | 选择作业实例之间的依赖关系。 不依赖上一调度周期。此处可以配置并发数,表示多个作业实例并行执行的个数。如果并发数配置为1,前一个批次执行完成后(包括成功、取消、或失败),下一批次才开始执行。 自依赖(等待上一调度周期结束才能继续运行)。 |
“事件驱动调度”的参数配置
参数 | 说明 |
---|---|
触发事件类型 | 选择触发作业运行的事件类型。 “KAFKA” |
“KAFKA”触发事件类型的参数 | |
连接名称 | 选择数据连接,需先在“管理中心”创建kafka数据连接。 |
Topic | 选择需要发往kafka的消息Topic。 |
事件处理并发数 | 选择作业并行处理的数量,最大并发数为128。 |
事件检测间隔 | 配置时间间隔,检测通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。 |
读取策略 | 选择数据的读取位置: 从上次位置读取:首次启动时,从最新的位置读取数据。后续启动时,则从前一次记录的位置读取数据。 从最新位置读取:每次启动都会从最新的位置读取数据。 |
失败策略 | 选择调度失败后的策略: 挂起 忽略失败,读取下一个 |
配置节点调度任务(实时作业)
配置实时处理作业的节点调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下:
单击画布中的节点,在右侧显示“调度配置”页签,单击此页签,展开配置页面,配置如下表所示的参数。
节点调度配置
参数 | 说明 |
---|---|
调度方式 | 选择作业的调度方式: 单次调度:手动触发作业单次运行。 周期调度:周期性自动运行作业。 事件驱动调度:根据外部条件触发作业运行。 |
“周期调度”的参数 | |
生效时间 | 调度任务的生效时间段。 |
调度周期 | 选择调度任务的执行周期,并配置相关参数: 分钟 小时 天 周 月调度周期需要合理设置,如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。 |
跨周期依赖 | 选择作业下实例之间的依赖关系。 不依赖上一调度周期 自依赖(等待上一调度周期结束才能继续运行) |
“事件驱动调度”的参数 | |
触发事件类型 | 选择触发作业运行的事件类型。 |
连接名称 | 选择数据连接,需先在“管理中心”创建kafka数据连接。 |
Topic | 选择需要发往kafka的消息Topic。 |
消费组 | 消费者组是kafka提供的可扩展且具有容错性的消费者机制。 它是一个组,所以内部有可以有多个消费者,这些消费者共用一个ID,一个组内的所有消费者共同协作,完成对订阅的主题的所有分区进行消费。其中一个主题中的一个分区只能由一个消费者消费。 说明 1. 一个消费者组可以有多个消费者。 2. Group ID是一个字符串,在一个kafka集群中,它标识唯一的一个消费者组。 3. 每个消费者组订阅的所有主题中,每个主题的每个分区只能由一个消费者消费。消费者组之间不影响。当触发事件类型选择了DIS或KAFKA时,会自动关联出消费组的ID,用户也可以手动修改。 |
事件处理并发数 | 选择作业并行处理的数量,最大并发数为10。 |
事件检测间隔 | 配置时间间隔,检测通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。 |
失败策略 | 选择节点执行失败后的策略: 挂起 忽略失败,继续调度 |