数据治理中心 DATAARTS STUDIO-获取SQL节点的输出结果值:场景说明

时间:2024-01-19 11:52:24

场景说明

使用EL表达式#{Job.getNodeOutput("前一节点名")}获取的前一节点的输出结果时,输出结果为二维数组形式 ,形如[["Dean",...,"08"],...,["Smith",...,"53"]]所示。为获取其中的值,本案例提供了如表1所示的两个常见方法示例。

表1 获取结果值常见方法

方法

关键配置

适用场景要求

通过StringUtil提取输出结果值

当SQL节点的输出结果只有一个字段,形如[["11"]]所示时,可以通过StringUtil内嵌对象EL表达式分割二维数组,获取前一节点输出的字段值:

#{StringUtil.split(StringUtil.split(StringUtil.split(Job.getNodeOutput("前一节点名"),"]")[0],"[")[0],"\\"")[0]}

通过StringUtil提取输出结果值配置简单,但对适用场景有如下要求:

  • 前一SQL节点的输出结果只有一个字段,形如[["11"]]所示。
  • 输出结果值数据类型为String,需要应用场景支持String数据类型。例如当需要使用IF条件判断输出结果值的数值大小时,不支持String类型,则不能使用本方法。

通过For Each节点提取输出结果值

通过For Each节点,循环获取数据集中二维数组的值:

  • For Each节点数据集:#{Job.getNodeOutput('前一节点名')}
  • For Each节点子作业参数:#{Loop.current[索引]}

通过For Each节点输出结果值适用场景更广泛,但需将作业拆分为主作业和子作业。

support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0584.html