你好 DataWorks中odps SQL 如何将当前节点的结果,以参数的方式传递给下游节点?
在DataWorks中,可以使用ODPS SQL节点的输出结果作为参数传递给下游节点。具体步骤如下:
在当前节点中,使用ODPS SQL语句查询需要传递给下游节点的结果,并将查询结果保存到临时表中。例如,可以使用以下SQL语句查询结果:
apache
Copy
SELECT col1, col2, col3 FROM table1 WHERE condition1;
将查询结果保存到临时表中,例如:
`
INSERT OVERWRITE TABLE temp_table1 SELECT col1, col2, col3 FROM table1 WHERE condition1;
````
在下游节点中,使用参数化的方式引用当前节点的临时表。具体而言,可以在下游节点的SQL语句中使用${}语法引用当前节点的临时表,并将其作为参数传递给下游节点。例如:
Copy
SELECT col1, col2, col3 FROM ${temp_table1};
在执行下游节点时,DataWorks会自动解析${temp_table1}参数,并将其替换为当前节点生成的临时表的名称。
赋值节点可以 赋值节点,【赋值节点】
赋值节点支持ODPS SQL、SHELL和Python三种赋值语言。您可以结合节点上下文,将赋值节点的最后一条查询结果赋值给节点自带outputs输出作为下游节点的入参进行传递。
outputs参数的取值只取最后一行代码的输出结果:
赋值语言为ODPS SQL的赋值节点中,最后一行SELECT语句的输出。
赋值语言为SHELL的赋值节点中,最后一行ECHO语句的数据。
赋值语言为Python的赋值节点中,最后一行PRINT语句的输出。
Python和SHELL的输出会基于逗号(,)分割为一维数组。
ODPS SQL将输出结果作为一个二维数组传递至下游。
说明:
outputs参数的传递值最大为2 MB。如果赋值语句的输出结果超过该限制,赋值节点会运行失败。
赋值节点作为上游与其它节点配合使用时,请务必先提交赋值节点,以便下游节点在配置时可以解析出参数。
【节点上下文使用】,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。