logo
技巧分享 | 数据服务-如何并行多项数据操作
发布时间:2024/07/24 15:10:55

在复杂的数据处理场景中,我们总有这样的烦恼:多个操作如何高效且一致地完成?别怕,编排服务与通用事务来救场!

通用事务支持在同一个事务的数据源中,配置多个增删改的接口,实现“要么全部成功,要么全部失败回滚”的操作,有效避免数据不一致的风险。

编排服务不仅支持接口调用,还能处理复杂表达式、循环控制和数据处理,确保事务一致性。
01
案例背景

在处理复杂数据时,常需通过单一接口实现跨资产、多表的数据操作,以处理学生数据为例,我们可能需要同时插入数据到学生基本信息表和学生班级信息表中。
02
案例解析

在这种场景下,如果仅依靠单个接口逐一处理,不仅效率低下,而且容易出现数据不一致的问题。

因此,确保所有相关操作在同一事务中执行,实现“全成或全败”,成为解决这一问题的关键
使用通用事务同时调用两个通用接口,实现并行数据处理;或者使用编排服务完成数据处理动作。
方法一:通用事务
01

新增通用接口


分别配置学生基本信息与班级信息插入数据的通用接口。

屏幕截图 2024-07-24 174839.png

学习信息新增
班级信息新增
02

添加通用事务

填写服务名称,访问方式为restful,服务类型选择通用事务,选择数据源与通用接口相同的数据源,选择接口为新增学生信息通用接口、新增班级信息通用接口。参数配置会自动返写,如有需要可额外添加,参数映射也会自动填充,根据请求示例调用接口。

单击请求示例或返回示例后的感叹号,查看请求示例和返回示例的样式。

其中key值,则为两个通用接口的server_id




结果演示



方法二:编排事务
01

新增编排服务

输入服务名称,参数key默认,添加输入参数即插入新增数据所需要的字段信息,此处添加的输入参数会在服务编排的开始节点中体现出来。

02

配置服务编排

场景分析:新增数据时,若存在data_id重复的现象出现时,接口返回报错,主键值新增失败。

第一步:自动生成ID

S2 id生成器,可按要求自动生成class_id,用作班级信息的data_id来使用.

第二步:数据读取重复数据

S3 数据读取,根据我们输入的学生data_id查询学生信息表中是否存在相同的数据,输出变量为res。

第三步:解析获取重复数并判断

所以我们需要用变量计算(S11)来解析这个对象数组,返回重复数量。同时,分支判定(S5)判断重复数量是否为0。

第四步:依据判断结果进行对应数据操作

若num!=0,则主键重复了,添加一个新的变量计算 (S9),用以定义返回的报错信息,固定值:主键重复新增失败。

若num=0,则主键未重复,使用数据操作(S6),向学生信息表中新增一条数据。

第五步:新增班级信息

已经通过数据操作向学生信息表插入了数据,接下来数据操作(S12)新增班级信息。

第六步:结束,输出返回结果

根据分支判定不同的方向,结束时添加两个结束节点,返回不同的信息。




结果演示



推荐阅读
先人一步,体验更专业更好用的企业级无代码软件平台