当前位置: 首页 > news >正文

网站 所有权商城开发外包

网站 所有权,商城开发外包,个人如何缴纳社保,长沙 网站开发简介#xff1a; DataWorks功能实践系列#xff0c;帮助您解析业务实现过程中的痛点#xff0c;提高业务功能使用效率#xff01;通过往期的介绍#xff0c;您已经了解到在DataWorks上进行任务运行的最关键的几个知识点#xff0c;其中上期参数透传中为您介绍了可以将上游…简介 DataWorks功能实践系列帮助您解析业务实现过程中的痛点提高业务功能使用效率通过往期的介绍您已经了解到在DataWorks上进行任务运行的最关键的几个知识点其中上期参数透传中为您介绍了可以将上游节点参数透传到下游节点的特殊节点——赋值节点结合赋值节点和其他节点可实现循环或遍历读取处理数据的任务。本期为您介绍如何在DataWorks上实现循环与遍历任务。 往期回顾 DataWorks 功能实践速览01期——数据同步解决方案为您介绍不同场景下可选的数据同步方案。DataWorks 功能实践速览02期——独享数据集成资源组为您介绍进行数据同步时可使用的资源组与网络连通方案、注意事项。DataWorks 功能实践速览03期——生产开发环境隔离为您介绍DataWorks通过标准模式提供开发环境与生产环境隔离及不同环境的权限要求。DataWorks功能实践速览 04期——参数透传为您介绍如何在DataWorks上实现参数透传即把上游任务的参数透传到下游任务。 通过往期的介绍您已经了解到在DataWorks上进行任务运行的最关键的几个知识点其中上期参数透传中为您介绍了可以将上游节点参数透传到下游节点的特殊节点——赋值节点结合赋值节点和其他节点可实现循环或遍历读取处理数据的任务。本期为您介绍如何在DataWorks上实现循环与遍历任务。 功能推荐循环节点与遍历节点 在进行数据开发任务编译的过程中有时我们可能碰到需要进行循环或遍历的任务场景DataWorks为您提供两类特殊节点以满足此类场景的使用需求。 对比项 循环节点do-while节点 遍历节点for-each节点 应用场景 根据对象集合的数量逐条读取并判断是否满足循环条件如果满足则继续循环如果不满足则退出循环循环次数根据每次循环的判断结果而定不固定。 根据对象集合的数量逐条读取遍历循环次数已知。 节点应用 您可以重新编排do-while节点内部的业务流程将需要循环执行的逻辑写在节点内再编辑end循环判断节点来控制是否退出循环。同时您也可以结合赋值节点来循环遍历赋值节点传递的结果集。 您可以通过for-each节点来循环遍历赋值节点传递的结果集。同时您也可以重新编排for-each节点内部的业务流程。 通常循环节点do-while节点与遍历节点for-each节点会与赋值节点联合使用将上游节点的输出通过赋值节点传递给下游节点在下游节点中对上游节点的输出结果进行循环或遍历。 同时循环节点do-while节点与遍历节点for-each节点与其他简单节点不一致的地方在于这类逻辑节点自身包含内部节点。以do-while节点为例一个do-while节点创建完成后通常会为您自动创建好3个内部节点同时您也可以将内部节点重新进行内部业务流程和节点内容的编译。 Part1循环节点do-while节点 1.1 节点组成 DataWorks的do-while节点是包含内部节点的一种特殊节点您在创建完成do-while节点时同时也自动创建完成了三个内部节点start节点循环开始节点、sql节点循环任务节点、end节点循环结束判断节点通过内部节点组织成内部节点流程实现任务的循环运行。 如上图所示 start节点是内部节点的开始节点不承载具体的任务代码。sql节点DataWorks默认为您创建好了一个SQL类型的内部任务运行节点您也可以删除默认的sql节点后自定义内部循环任务的运行节点。 您的循环任务是SQL类型的任务则可以直接双击默认的sql节点进入节点的代码开发页面开发循环任务代码。您的循环任务比较复杂您可以在内部节点流程中新建其他任务节点并根据实际情况重新构建节点的运行流程。通常循环任务的业务流程会与赋值节点、分支节点、归并节点联合使用典型应用场景说明请参见典型应用与赋值节点联合使用。 说明 自定义循环任务节点时您可以删除内部节点间的依赖关系重新编排循环节点内部业务流程但需要分别将start节点、end节点分别作为do-while节点内部业务流程的首末节点。 end节点 end节点是do-while节点的循环判断节点来控制do-while节点循环次数其本质上是一个赋值节点输出true和false两种字符串分别代表继续下一个循环和不再继续循环。end节点支持使用ODPS SQL、SHELL和PythonPython2三种语言进行循环判断代码开发同时do-while节点为您提供了便利的内置变量便于您进行end代码开发。内置变量的介绍请参见内置变量和变量取值案例不同语言开发的样例代码请参见案例1end节点代码样例。 1.2 使用限制与注意事项 循环支持 仅DataWorks标准版及以上版本支持使用do-while节点。do-while节点最多支持循环128次end节点控制循环次数时如果超过了128次则运行会报错。 内部节点 自定义循环任务节点时您可以删除内部节点间的依赖关系重新编排循环节点内部业务流程但需要分别将start节点、end节点分别作为do-while节点内部业务流程的首末节点。在do-while节点的内部节点使用分支节点进行逻辑判断或者结果遍历时需要同时使用归并节点。do-while节点的内部节点end节点在代码开发时不支持添加注释。 调测运行 DataWorks为标准模式时不支持在DataStudio界面直接测试运行do-while节点。如果您想测试验证do-while节点的运行结果您需要将包含do-while节点的任务发布提交到运维中心在运维中心页面运行do-while节点任务。如果您在do-while节点内使用了赋值节点传递的值请在运维中心测试时同时运行赋值节点和循环节点。在运维中心查看do-while节点的执行日志时您需要右键实例单击查看内部节点来查看内部节点的执行日志。 1.3 典型应用与赋值节点联合使用 do-while节点常常与赋值节点联合使用如下图所示。 与赋值节点联合使用时 您需要将赋值节点的输出作为赋值节点的本节点输入且与赋值节点做好上下游依赖关系的配置其他配置注意事项请参见案例2与赋值节点联合使用。与赋值节点联合使用时可以使用一些内置变量来获取当前已循环次数、赋值参数值等循环变量值详情请参见内置变量。 1.4 内置变量 DataWorks的do-while节点通过内部节点来实现循环运行任务每次任务循环运行时您可以通过一些内置的变量来获取当前已循环次数和偏移量。 内置变量 含义 取值 ${dag.loopTimes} 当前已循环次数 第一次循环为1、第二次为2、第三次为3…第n次为n。 ${dag.offset} 偏移量 第一次循环为0、第二次为1、第三次为2…第n次为n-1。 如果您联合使用了赋值节点则还可以通过以下方式来获取赋值参数值和循环变量参数。 说明 以下以变量示例中input是do-while节点中自定义的本节点输入参数名称实际使用时需替换为您真实的名称。 内置变量 含义 ${dag.input} 上游赋值节点传递的数据集。 ${dag.input[${dag.offset}]} 循环节点内部获取当前循环的数据行。 ${dag.input.length} 循环节点内部获取数据集长度。 1.5 变量取值案例 案例1 上游赋值节点为shell节点最后一条输出结果为2021-03-28,2021-03-29,2021-03-30,2021-03-31,2021-04-01此时各变量的取值如下 内置变量 第1次循环时取值 第2次循环时取值 ${dag.input} 2021-03-28,2021-03-29,2021-03-30,2021-03-31,2021-04-01 ${dag.input[${dag.offset}]} 2021-03-28 2021-03-29 ${dag.input.length} 5 ${dag.loopTimes} 1 2 ${dag.offset} 0 1 案例2 上游赋值节点为ODPS SQL节点最后一条select语句查询出两条数据 ---------------------------------------------- | uid            | region | age_range | zodiac | ---------------------------------------------- | 0016359810821  | 湖北省 | 30~40岁   | 巨蟹座 | | 0016359814159  | 未知   | 30~40岁   | 巨蟹座 | ---------------------------------------------- 此时各变量的取值如下 内置变量 第1次循环时取值 第2次循环时取值 ${dag.input} ---------------------------------------------- | uid            | region | age_range | zodiac | ---------------------------------------------- | 0016359810821  | 湖北省 | 30~40岁   | 巨蟹座 | | 0016359814159  | 未知   | 30~40岁   | 巨蟹座 | ---------------------------------------------- ${dag.input[${dag.offset}]} 0016359810821,湖北省,30~40岁,巨蟹座 0016359814159,未知,30~40岁,巨蟹座 ${dag.input.length} 2 说明 二维数组的行数为数据集长度当前赋值节点输出的二维数组行数为2。 ${dag.input[0][1] 说明 二维数组的第一行第一列的取值。 0016359810821 ${dag.loopTimes} 1 2 ${dag.offset} 0 1 Part2遍历节点for-each节点 2.1 节点组成 DataWorks的for-each节点是包含内部节点的一种特殊节点您在创建完成for-each节点时同时也自动创建完成了三个内部节点start节点循环开始节点、sql节点循环任务节点、end节点循环结束判断节点通过内部节点组织成内部节点流程实现对上游赋值接节点输出结果的循环遍历。 如上图所示 sql节点DataWorks默认为您创建好了一个SQL类型的内部任务运行节点您也可以删除默认的sql节点后自定义内部循环遍历任务的运行节点。 您的循环遍历任务是SQL类型的任务则可以直接双击默认的sql节点进入节点的代码开发页面开发任务代码。您的循环遍历任务比较复杂您可以在内部节点流程中新建其他任务节点并根据实际情况重新构建节点的运行流程。 说明 自定义循环任务节点时您可以删除内部节点间的依赖关系重新编排循环节点内部业务流程但需要分别将start节点、end节点分别作为for-each节点内部业务流程的首末节点。 start节点与end节点是内部节点业务流程每次循环遍历的开始节点与结束节点不承载具体的任务代码。 说明 for-each节点的end节点不控制循环遍历的次数for-each节点的循环遍历次数由上游赋值节点实际输出控制。 2.2 使用限制与注意事项 上下游依赖 for-each遍历节点需要遍历赋值节点传递的值所以赋值节点需作为for-each节点的上游节点for-each节点需要依赖赋值节点。 循环支持 仅DataWorks标准版及以上版本支持使用for-each节点。for-each节点最多支持循环128次如果超过了128次则运行会报错。实际循环遍历次数由上游赋值节点实际输出控制。 一维数组类型的输出循环遍历次数即为一维数组元素的个数。例如赋值节点的赋值语言为SEHLL或PythonPython2时输出结果为一维数组2021-03-28,2021-03-29,2021-03-30,2021-03-31,2021-04-01则for-each节点会循环5次完成遍历。二维数组类型的输出循环遍历次数即为二维数组元素的行数。例如赋值节点的赋值语言为OdpsSQL时输出结果为二维数组 ---------------------------------------------- | uid            | region | age_range | zodiac | ---------------------------------------------- | 0016359810821  | 湖北省 | 30~40岁   | 巨蟹座 | | 0016359814159  | 未知   | 30~40岁   | 巨蟹座 | ---------------------------------------------- 则for-each节点会循环2次完成遍历。 内部节点 您可以删除for-each节点的内部节点间的依赖关系重新编排内部业务流程但需要分别将start节点、end节点分别作为for-each节点内部业务流程的首末节点。在for-each节点的内部节点使用分支节点进行逻辑判断或者结果遍历时需要同时使用归并节点。 调测运行 DataWorks为标准模式时不支持在DataStudio界面直接测试运行for-each节点。如果您想测试验证for-each节点的运行结果您需要将包含for-each节点的任务发布提交到运维中心在运维中心页面运行for-each节点任务。在运维中心查看for-each节点的执行日志时您需要右键实例单击查看内部节点来查看内部节点的执行日志。 2.3 典型应用 DataWorks的for-each节点主要用于有循环遍历的场景且需要与赋值节点联合使用将赋值节点作为for-each节点的上游节点将赋值节点的输出结果赋值给for-each节点后一次次循环来遍历赋值节点的输出结果。 2.4 内置变量 DataWorks的for-each节点每次循环遍历赋值节点的输出结果时您可以通过一些内置的变量来获取当前已循环次数和偏移量。 内置变量 含义 与for循环对比 ${dag.loopDataArray} 获取赋值节点的数据集 相当于for循环中的代码结果 data[] ${dag.foreach.current} 获取当前遍历值 以下面的for循环代码为例 for(int i0;idata.length;i) { print(data[i]); } data[i]相当于${dag.foreach.current}。i相当于${dag.offset}。 ${dag.offset} 当前偏移量 每一次遍历相对于第一次的偏移量 ${dag.loopTimes} 获取当前遍历次数 - 在您了解自己输出的表结构的情况下您可以使用如下变量方式获取其他变量取值。 其他变量 含义 ${dag.foreach.current[n]} 上游赋值节点的输出结果为二维数组时每次遍历时获取当前数据行的某列的数据。 ${dag.loopDataArray[i][j]} 上游赋值节点的输出结果为二维数组时获取数据集中具体i行j列的数据。 ${dag.foreach.current[n]} 上游赋值节点的输出结果为一维数组时获取具体某列数据。 2.5 内置变量取值案例 案例1 上游赋值节点为shell节点最后一条输出结果为2021-03-28,2021-03-29,2021-03-30,2021-03-31,2021-04-01此时各变量的取值如下 说明 由于输出结果为一维数组数组元素个数为5逗号分隔每个元素因此for-each总遍历次数为5。 内置变量 第1次循环遍历的取值 第2次循环遍历的取值 ${dag.loopDataArray} 2021-03-28,2021-03-29,2021-03-30,2021-03-31,2021-04-01 ${dag.foreach.current} 2021-03-28 2021-03-29 ${dag.offset} 0 1 ${dag.loopTimes} 1 2 ${dag.foreach.current[3]} 2021-03-30 案例2 上游赋值节点为ODPS SQL节点最后一条select语句查询出两条数据 ---------------------------------------------- | uid            | region | age_range | zodiac | ---------------------------------------------- | 0016359810821  | 湖北省 | 30~40岁   | 巨蟹座 | | 0016359814159  | 未知   | 30~40岁   | 巨蟹座 | ---------------------------------------------- 此时各变量的取值如下 说明 由于输出结果为二维数组数组行数为2因此for-each总遍历次数为2。 内置变量 第1次循环遍历的取值 第2次循环遍历的取值 ${dag.loopDataArray} ----------------------------------------------  | uid            | region | age_range | zodiac |  ----------------------------------------------  | 0016359810821  | 湖北省 | 30~40岁   | 巨蟹座 |  | 0016359814159  | 未知   | 30~40岁   | 巨蟹座 |  ---------------------------------------------- ${dag.foreach.current} 0016359810821,湖北省,30~40岁,巨蟹座 0016359814159,未知,30~40岁,巨蟹座 ${dag.offset} 0 1 ${dag.loopTimes} 1 2 ${dag.foreach.current[0]} 0016359810821 0016359814159 ${dag.loopDataArray[1][0]} 0016359814159 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.ihoyoo.com/news/85325.html

相关文章:

  • 校本教研网站建设方案上海专上海专业网站制作公司
  • 网站建设企业咨询wordpress图片上传大小
  • 重庆做网站建设公司大型电商网站开发价格
  • 简易蜘蛛池网站开发私人做医院的网站
  • 企业网站首页代码怎么做电影网站服务器
  • 网站开发流程phpwordpress分页出现404
  • wap手机网站模版crm是什么意思啊
  • 温州网站建设联系电话十大社区团购平台有哪些
  • 发果怎么做视频网站中宁网站建设
  • 网站推广要点服务器维护是什么意思
  • 打开这个网站什么网站做蔬菜生鲜比较好
  • 呼和浩特网站运营公司爱未来企业邮箱
  • 做catalog的免费网站房地产新闻建发
  • wordpress 设置语言广州seo
  • 品牌网站品牌理念老旧的后果比较商务网站的营销策略
  • 网站自适应布局公司设计网站定制
  • 永川网站开发四川网站建设服务公司
  • 衡阳做淘宝网站达州科创网站建设公司
  • 统计网站怎么做安徽网站线上开发公司
  • 程序员为什么不敢创业做网站项目管理系统软件
  • 网站设计需要准备哪些知识手机百度seo快速排名
  • 做帮助手册的网站网站颜色表
  • 网站备案授权书怎么填个性化网站建设报价
  • 青岛网站制作推广平台大连市建设工程老网站
  • sem网站做推广江苏微信网站建设
  • python制作网站开发saas系统
  • 全网vip影视自助建站系统百度搜索关键词规则
  • 建设快照网站高端网站建设 恩愉科技
  • 乡镇网站建设自查报告手机怎么创建网址链接
  • 高端网站建设模板seo软件