阿里Dataworks使用循环节点和赋值节点完成对mongodb分表数据同步

背景

需求将MongoDB数据入仓MaxCompute

环境说明

MongoDB

100+个Collections:orders_1、orders_2、…、orders_100

前期准备

在这里插入图片描述

1、MongoDB数据源配置

需要先保证DW和MongoDB网络是能够联通的,需要现在集成任务中配置MongoDB的数据源信息。

具体可以查看我的另外一篇:

2、赋值节点

选择赋值节点,赋值节点新增后打开,可以看到有Python、shell、ODPS SQL

Python 读取最后一次Print字符串,Shell读取最后一次echo输出的字符串,如”orders_1,order_2“ 就按照”,“逗号被拆分成2个元素用于后续循环

ODPS SQL 则是每一行是遍历的一个元素

每一次循环都会传入遍历的元素,如python :

print "orders_1,orders_2";

则会当做[“orders_1”,“orders_2”]数组进行遍历,每次一个元素会传入到遍历的循环中执行

实操界面:

print "orders_1,orders_2";

赋值节点会自动出现一个outputs给后面的节点读取

在这里插入图片描述

3、循环任务

在这里插入图片描述

新增完毕后进入到循环内部,会看到一个start 和end节点,这个时候我们再选择一个离线同步任务,将流程串起来

在这里插入图片描述

点开离线集成任务,切换到离线集成任务的脚本模式,赋值节点的collectionName会以”${dag.foreach.current}“ 参数传入到循环内部的流程中。

在集成任务脚本中,将对应的collectionName替换为 ${dag.foreach.current} 即可

{"transform": false,"type": "job","version": "2.0","steps": [{"stepType": "mongodb","parameter": {"objectIdOutputType": "json","useSplitVector": false,"datasource": "你的mongodb数据源名称","envType": 1,"cursorTimeoutInMs": "3600000","column": [{"name": "col_combine","type": "combine"}],"tableComment": "This kind of datasource dosen't support get table comment. This is a comment produced by di.","batchSize": "1000","collectionName": "${dag.foreach.current}"},"name": "Reader","category": "reader"},{"stepType": "odps","parameter": {"partition": "col=${dag.foreach.current}","truncate": true,"datasource": "你输出数据表的MaxCompute空间名称","envType": 1,"isSupportThreeModel": false,"tunnelQuota": "default","column": ["你的ODPS表的字段,因为我这里是想要将所有数据放在一个字段,所以这里就只预留了一个字段"],"emptyAsNull": false,"tableComment": "","table": "你的ODPS表","consistencyCommit": false},"name": "Writer","category": "writer"},{"copies": 1,"parameter": {"nodes": [],"edges": [],"groups": [],"version": "2.0"},"name": "Processor","category": "processor"}],"setting": {"errorLimit": {"record": "0"},"locale": "zh_CN","speed": {"throttle": false,"concurrent": 1}},"order": {"hops": [{"from": "Reader","to": "Writer"}]}
}

整个循环流程,点击右侧打开配置进行相关调度配置,最下方需要配置节点上下文 loopDataArray这个参数是读取外部的赋值节点,是必须配置的参数

在这里插入图片描述

日志

循环节点无法在dataworks的开发界面直接运营进行测试,只能发布以后在运维中心进行查看
在这里插入图片描述

最终效果

在这里插入图片描述

后期拓展

这里因为业务需求所以没有循环的参数是通过python print写死输出的

优雅一些的方式就是通过数据表维护,就可以动态读取数据表的内容,然后作为循环参数传入了

相关文档

for-each节点由哪些组成,应用逻辑是什么_大数据开发治理平台 DataWorks(DataWorks)-阿里云帮助中心. (2021, August 18). Aliyun.com. https://help.aliyun.com/zh/dataworks/user-guide/logic-of-for-each-nodes?spm=a2c4g.11186623.4.5.20a4d43aNd6b0E&scm=20140722.H_299261._.ID_299261-OR_rec-V_1#section-50c-r2v-mhd

赋值节点的操作步骤_大数据开发治理平台 DataWorks(DataWorks)-阿里云帮助中心. (2019, September 10). Aliyun.com. https://help.aliyun.com/zh/dataworks/user-guide/configure-an-assignment-node?spm=a2c4g.11186623.0.0.2947b24b0wmXD7#task-2485378

for-each节点由哪些组成,应用逻辑是什么_大数据开发治理平台 DataWorks(DataWorks)-阿里云帮助中心. (2021, August 18). Aliyun.com. https://help.aliyun.com/zh/dataworks/user-guide/logic-of-for-each-nodes?spm=a2c4g.11186623.0.0.45634a14sGs7jS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/448558.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python OpenCV精讲系列 - 三维重建深入理解(十七)

💖💖⚡️⚡️专栏:Python OpenCV精讲⚡️⚡️💖💖 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计,从基础概念入手,逐步深入到图像处理、特征检测、物体识…

AD9361 在低至 1MHz 的频率下运行

AD9361 在低至 1MHz 的频率下运行 AD -FREQCVT1-EBZ是包含AD9361的FMCOMMS3/4/5板的附加板。虽然完整的芯片级设计包可在此 RF 收发器的ADI产品页面上找到,但有关此卡的信息及其使用方法、围绕它的设计包以及可使其工作的软件可在此处找到。 AD-FREQCVT1-EBZ 模块…

无人机之放电速率篇

无人机的放电速率是指电池在一定时间内放出其储存电能的能力,这一参数对无人机的飞行时间、性能以及安全性都有重要影响。 一、放电速率的表示方法 放电速率通常用C数来表示。C数越大,表示放电速率越快。例如,一个2C的电池可以在1/2小时内放…

储能电源自动化测试系统中不同硬件电路设计对测试结果有哪些影响?-纳米软件

随着能源领域的不断发展,储能电源在各个领域的应用越来越广泛。为了确保储能电源的性能和可靠性,自动化测试系统的重要性日益凸显。其中,硬件电路设计是自动化测试系统的关键组成部分,不同的硬件电路设计会对测试结果产生不同的影…

程序报错:ModuleNotFoundError: No module named ‘code.utils‘; ‘code‘ is not a package

程序报错内容&#xff1a; Traceback (most recent call last): File "code/nli_inference/veracity_prediction.py", line 10, in <module> from code.utils.data_loader import read_json ModuleNotFoundError: No module named code.utils; code is …

Linux运维_Apache更改默认网站目录

1.首先创建目录 并且在目录下新建测试文件 index.html mkdir -p /home/test/ap_web 直接wget 百度官网 wget www.baidu.com 2.编辑配置文件 /etc/apache2/sites-available/000-default.conf(找到 DocumentRoot)更改为刚刚创建的目录 接着在添加 最终文件: 3.给文件 添加属…

面试题:Redis(五)

1. 面试题 面试问 记录对集合中的数据进行统计 在移动应用中&#xff0c;需要统计每天的新增用户数和第2天的留存用户数&#xff1b; 在电商网站的商品评论中&#xff0c;需要统计评论列表中的最新评论&#xff1b; 在签到打卡中&#xff0c;需要统计一个月内连续打卡的用户数&…

【AI大模型】羊驼大模型详解_零基础入门到精通,看完这篇就足够了~

LLaMa系列模型 羊驼模型&#xff08;鼻祖是LLaMa模型&#xff0c;Facebook公司开源模型&#xff09;&#xff1a;即将成为大模型的安卓&#xff0c;国内95%的大模型都是羊驼套壳。GPT系列&#xff08;OpenAI公司&#xff09;&#xff1a;相当于大模型的iOS&#xff08;不开源&…

鸿蒙OS启动流程

启动流程(基于openharmony4.1) 系统上电加载内核后&#xff0c;按照以下流程完成系统各个服务和应用的启动&#xff1a; 内核加载init进程&#xff0c;一般在bootloader启动内核时通过设置内核的cmdline来指定init的位置。init进程启动后&#xff0c;会挂载tmpfs&#xff0c;…

JavaSE——泛型

目录 一、泛型的引入 二、泛型的好处 三、泛型介绍 四、泛型的语法 (一)泛型的声明 (二)泛型的实例化 五、泛型使用的注意事项和细节 六、泛型练习题1 七、自定义泛型 (一)自定义泛型类 (二)自定义泛型接口 (三)自定义泛型方法 八、泛型练习题2 九、泛型的继承和…

moe2024新生赛--pwn篇

moe2024新生赛–pwn篇 也算是复健吧。。 文章目录 moe2024新生赛--pwn篇**1 二进制漏洞审计入门指北**2 NotEnoughTime3 no_more_gets4 leak_sth5 ez_shellcode6 这是什么&#xff1f;libc7 这是什么&#xff1f;shellcode8 这是什么&#xff1f;random9 flag_helper10 这是什么…

PCB缺陷检测数据集 xml 可转yolo格式 ,共10688张图片

PCB缺陷检测数据集&#xff08;yolov5,v7,v8&#xff09; 数据集总共有两个文件夹&#xff0c;一个是pcb整体标注&#xff0c;一个是pcb部分截图。 整体标注有6个分类&#xff0c;开路&#xff0c;短路等都已经标注&#xff0c;标注格式为xml&#xff0c;每个文件夹下有100多张…

bp intruder 四种攻击类型 记录

1. Sniper 攻击&#xff08;狙击手模式&#xff09; 特点&#xff1a; Sniper 攻击是最基础的一种攻击类型&#xff0c;适用于单参数的简单测试。它会逐一替换每一个 payload 插入点&#xff0c;其他位置保持不变&#xff0c;从而测试单个参数对应用的影响。 工作流程&#…

Java-IO流使用场景

Java IO 流是Java编程中非常重要的组成部分,用于处理文件读写、网络通信等数据传输任务。 1. 字节流 1.1 读取文件 import java.io.FileInputStream; import java.io.IOException;public class ReadFileExample {public static void main(String[] args) {try (FileInputSt…

不用搭建服务?MemFire Cloud让开发更简单

不用搭建服务&#xff1f;MemFire Cloud让开发更简单 在当今的开发世界里&#xff0c;想要开发一个功能齐全的应用&#xff0c;往往意味着需要搭建复杂的后端、开发API接口、处理认证授权、管理数据库……这些琐碎的工作让很多开发者头疼不已&#xff0c;尤其是独立开发者或者…

成都睿明智科技有限公司电商服务可靠不?

在这个短视频风起云涌的时代&#xff0c;抖音不仅成为了人们娱乐消遣的首选平台&#xff0c;更是众多商家竞相追逐的电商新蓝海。成都睿明智科技有限公司&#xff0c;作为抖音电商服务领域的佼佼者&#xff0c;正以其独到的洞察力和专业的服务&#xff0c;助力无数品牌在这片沃…

【进阶OpenCV】 (16)-- 人脸识别 -- FisherFaces算法

文章目录 FisherFaces算法一、算法原理二、算法优势与局限三、算法实现1. 图像预处理2. 创建FisherFace人脸特征识别器3. 训练模型4. 测试图像 总结 FisherFaces算法 PCA方法是EigenFaces人脸识别的核心&#xff0c;但是其具有明显的缺点&#xff0c;在操作过程中会损失许多人…

程序员如何使用AI工具进行设计开发?

一、需求分析阶段 自然语言处理辅助理解需求&#xff1a; 使用自然语言处理工具&#xff0c;如 ChatGPT 等&#xff0c;将复杂的业务需求描述转化为更清晰的技术要求。例如&#xff0c;向 AI 解释项目的背景和目标&#xff0c;让它帮助梳理关键需求点和可能的技术挑战。通过与…

Docker下安装RabbitMQ

文章目录 Docker下安装RabbitMQ1. 下载Rabbitmq镜像2. 创建并运行RabbitMQ容器3. 查看启动情况4. 启动RabbitMQ访问的Web客户端4-1 方法一 进入容器开启4-2 方法二 直接开启5. 浏览器访问RabbitMQ的Web客户端页面6. Web客户端页面问题6-1 问题展示6-2 解决方案 Docker下安装Rab…

机器学习笔记-2

文章目录 一、Linear model二、How to represent this function三、Function with unknown parameter四、ReLU总结、A fancy name 一、Linear model 线性模型过于简单&#xff0c;有很大限制&#xff0c;我们需要更多复杂模式 蓝色是线性模型&#xff0c;线性模型无法去表示…