开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

你好 DataWorks中odps SQL 如何将当前节点的结果,以参数的方式传递给下游节点?

你好 DataWorks中odps SQL 如何将当前节点的结果,以参数的方式传递给下游节点?

展开
收起
真的很搞笑 2023-07-17 15:44:46 206 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在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}参数,并将其替换为当前节点生成的临时表的名称。

    2023-07-21 09:01:44
    赞同 展开评论 打赏
  • 赋值节点可以 赋值节点,【赋值节点】
    赋值节点支持ODPS SQL、SHELL和Python三种赋值语言。您可以结合节点上下文,将赋值节点的最后一条查询结果赋值给节点自带outputs输出作为下游节点的入参进行传递。
    outputs参数的取值只取最后一行代码的输出结果:

    赋值语言为ODPS SQL的赋值节点中,最后一行SELECT语句的输出。
    赋值语言为SHELL的赋值节点中,最后一行ECHO语句的数据。
    赋值语言为Python的赋值节点中,最后一行PRINT语句的输出。

    Python和SHELL的输出会基于逗号(,)分割为一维数组。
    ODPS SQL将输出结果作为一个二维数组传递至下游。

    说明:

    outputs参数的传递值最大为2 MB。如果赋值语句的输出结果超过该限制,赋值节点会运行失败。
    赋值节点作为上游与其它节点配合使用时,请务必先提交赋值节点,以便下游节点在配置时可以解析出参数。

    【节点上下文使用】,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-07-17 15:52:55
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 热门讨论

    热门文章

    相关电子书

    更多
    被窝里的运维——DataWorks移动版公测-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载