数据流典型场景--大数据批量入库
变更记录
产品版本 | 更新内容 | 更新日期 |
V6.0.1 | 初始版本 | 2024年03月21日 |
1 业务场景
背景介绍
当存在需要向目标同步大量数据数据时,考虑性能问题需要分批执行,可以参考该数据流方案进行大数据量分批入库。
注:使用批量加载时应注意结合使用场景设置批量大小,防止OOM。
场景详细描述
该场景中以查询基础资料demo1的单头数据,使用脚本批量加载直接写入基础资料demo2数据表。
2 解决方案
解决方案总述:
利用数据流的脚本批量加载,直接写入基础资料demo2数据表。
注意:批量脚本中new_int_id()每次生成一个新的id,所以如果重复跑该方案会产生重复数据并不会自动判断新增/更新,现场应结合实际使用场景进行赋值。
前提条件:对数据流已经有基本认识,学习过数据流入门案例。
关键操作:
- 步骤1:准备工作。
1.1 创建连接配置和连接器。
因为该示例源和目标都是当前账套,因此创建一个当前账套的连接配置和连接器即可:
1.2 同步集成对象。
在集成管理模块同步好源和目标集成对象:
1.3 创建连接器目录和数据流方案目录。
连接器目录按照行业、系统、模块三层创建:
数据流方案目录按照集成场景概述、集成场景详细说明两层创建:
- 步骤2:创建资源。
2.1 通过集成对象导入,创建源和目标对象数据模型
该示例源对象以实体取数,目标对象以数据表写数。在连接器目录下创建。
2.2 创建数据查询组件
在连接器目录下新增数据查询组件,查询对象选择前面创建的源对象数据模型,如果需要过滤数据也可以配置查询条件参数和过滤条件。
2.3 创建事件模型
在连接器目录下新增人工启动事件模型,数据提供者选择上一步创建的数据查询组件。也可以根据需要选择定时启动、单据事件、MQ等事件模型。
2.4 创建字段映射组件
在数据流方案目录下创建字段映射组件,源数据和目标数据分别选择前面配置的数据模型,先自动映射对应关系,再根据需要检查修改。
2.5 创建数据加载组件
在连接器目录下新增脚本批量加载组件,目标单数据选择前面配置的目标数据模型,配置好批量大小。
参考脚本:
var sql="insert into t_isc_demo_basedata_2@eip(fid,fnumber,fname,fcreatetime,fmodifytime) values(?,?,?,?,?)"; var b = []; var result = []; for(var tar : _tars){ var id = new_int_id(); b += [id,tar.fnumber,tar.fname,tar.fcreatetime,tar.fmodifytime]; result += {'id':id,'type':'insert'}; } var type = [BIGINT,VARCHAR,VARCHAR,DATETIME,DATETIME]; var affected = execute_batch($tar, sql, b, type); return result;
注:目标数据模型tar和最后返回的结果result的顺序应该一一对应。
- 步骤3:配置数据流程。
3.1 创建数据流图
在数据流方案目录下创建一个数据流组件:
3.2 编排数据流资源
开始配置流程属性时在外部系统声明中把需要用到的连接类型引入。每个节点选择上前面步骤配置的组件,分别是事件模型、字段映射、脚本批量加载。另外每个节点都需配置好来源系统或目标系统是哪个连接器:
3.3 创建数据流启动方案
- 步骤4:运行结果查看。
执行该数据流启动方案,并查看该数据已经同步到目标:
数据流典型场景--大数据批量入库
本文2024-09-23 00:53:32发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142412.html