嵌套流节点属于控制节点,可以选择嵌套一个已经提交上线的任务,包括单节点任务、多节点任务和任务组下的多节点任务(商业化版本不支持任务组),将其作为本工作流的一个节点运行。

参数信息 说明
嵌套任务 支持选择当前项目下的单节点任务、工作流任务、任务组任务下的工作流。
运行超时时间 表示节点运行时长超过某个时长时,系统自动终止该节点。可配合自动重试设置,实现节点自动终止后重新运行。当前支持系统默认(7天)自定义(h)永不超时
自动重试 开启后,可进行重试次数重试间隔配置。
输入参数 支持节点本身自定义参数配置。
嵌套流参数透传 勾选后表示除了将嵌套流参数传递给嵌套流所引用的任务外,还会将引用了参数组的参数传递给嵌套流所引用的任务。
嵌套流参数 支持自定义传递给嵌套流所引用的任务的参数。
说明:
1. 嵌套任务约定嵌套一个其它稳定运行的线上任务,因此被嵌套的任务必须已提交上线,但是可以没有设置线上调度。
2. 当在开发模式修改被嵌套的任务时,也需提交上线才可生效。
3. 当执行嵌套流节点时,被嵌套的线上任务独立运行不影响其正在运行的调度任务。
4. 嵌套所引用的任务可以是节点任务、工作流任务、任务组下的某一个工作流。
5. 嵌套流节点可以被跨流依赖。

嵌套流循环执行实现数据传输任务循环执行

嵌套流节点支持循环执行一个离线开发任务,支持在每次循环时传入一个参数。此外,每次循环都会产生一个实例,可以实现嵌套一个包含数据同步节点的任务,将不同数据源下不同的表抽取到hive表中,具体实现步骤如下:

步骤一:在控制台处添加逻辑数据源的标签。
在数据源登记模板配置的逻辑数据源标签tab下,支持添加标签。如标签名称设置为“生产基地”,标签值域包括“北京”、“上海”、“杭州”。

步骤二:登记逻辑数据源的时候选择标签,分别为物理数据源指定标签。

步骤三:在数据传输中,选择逻辑数据源,并引用参数组,在库名和表名中输入参数的名称。

步骤四:离线开发中的数据同步节点选择数据传输任务。

步骤五:嵌套流任务中选择嵌套数据同步节点所属的任务。执行模式选择“循环执行”,循环执行模式下的配置项如下:

配置项 描述
循环参数 在参数类型中支持选择“自定义”或“逻辑数据源标签”。选择“逻辑数据源标签”之后,在参数名称选择“生产基地”,并选择对应的参数取值。选择“自定义”之后,分别输入对应的库名和表名。每组参数支持配置执行失败策略。包括“允许失败”和“不允许失败”。允许失败是指如果该循环执行失败,其他循环均执行成功时,认为本节点运行成功;不允许失败是指,如果该循环执行失败,其他循环均执行成功或有允许失败的循环执行时,认为本节点运行失败。
并发数 表示最多可以同时执行多少个循环。
失败设置 包括:仅完成执行中的循环,指继续完成正在执行的循环,结束后不再启动新的循环;停止所有循环,指立即停止所有执行的循环,包括正在执行的循环;继续完成其他循环,指忽略失败循环,继续完成不依赖失败循环的循环。失败设置仅在不允许失败的循环中生效。 。

注意:逻辑数据源标签仅在数据传输任务中生效;嵌套流循环执行时不支持设置重试,任务中的自动重试对该节点无效。

步骤六:开发模式下运行的时候,支持在运行结果中查看循环详情。运行结束后,支持查看运行成功的循环参数个数和循环参数个数总数。点击“循环详情”支持查看每次循环的示例ID和运行状态,点击“实例ID”和“查看详情”支持查看循环任务的执行详情。

嵌套流循环执行支持动态执行

嵌套流节点支持基于上游输出参数,每次执行时可动态确定执行次数的功能。

场景举例:某任务每天调度时,需要基于当日生成的日期,动态执行n次,比如当日生成了2024-06-08、2024-06-10、2024-06-11等日期,需要某个任务按照这3个日期分别作为参数传入,并执行3次,则可以通过如下方式实现:

  • 1)多节点任务中,拖入SQL节点(或其它支持输出参数的节点均可),编写获取动态日期的SQL语句,并设置输出参数;
  • 2)SQL节点下游增加嵌套流节点,配置引用的任务,并设置循环执行,引用SQL节点的输出参数,并按照动态执行的参数设置规则,设置参数;

举例:

下面通过一个案例说明如果实现动态循环制定。

如下图,“有输出参数1”和“有输出参数2”是SQL节点,是包含输出参数的节点。用户实际场景中,按需选择需要的节点类型,以及撰写真实的参数获取逻辑,比如日期的获取节点。“嵌套流使用上游输出参数”是嵌套流节点,会引用真实需要动态执行的节点。

如下图,为“有输出参数1”节点的SQL代码,会输出2行2列的数据,并且对当前节点配置输出参数。

如下图,为“有输出参数2”节点的SQL代码,会输出2行2列的数据,并且对当前节点配置输出参数。

如下图,为“嵌套流使用上游输出参数”节点的配置,会引用一个实际会调用的任务。其中,在循环参数中,“参数来源”设置了2列,并选择了上游的输出参数。在输出参数中,设置outputs1[0:][0]、outputs2[0:][0]。用法见下图中的说明。

如下图,为运行后的效果,因为嵌套流引用的任务输出了2行数据,则嵌套流会分别调用2次被引用的任务,执行2次,并分别传入对应的参数。

按照上面的配置,即可满足任务每天基于动态输出数据,动态执行n次的场景。