• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:深入了解数据导入的一些解决方案

java 搞代码 3年前 (2022-02-19) 24次浏览 已收录 0个评论

我的项目中除了有数据导出之外,也存在批量数据导入的场景。比方通过Execl电子表格进行批量开卡,批量导入用户或者部门信息等。明天探讨一下常见的数据导入计划。

0x01:同步导入

如果批量导入的数据就是几十条到一两百条的数据量的话;而且每条数据导入时,所做的业务不是特地耗时的话,能够采纳同步导入计划。该计划只需一个接口,该接口的次要性能是上传Execl电子表格数据,而后解析Execl电子表格里的

来源gaodai.ma#com搞#代!码网

数据,进行业务操作,导入到数据库里即可。

如果有需要的话,能够在解析Execl电子表格的数据时,把对数据的验证记录依照同一个批次保留到数据库,而后返回一个批次号 batchNo 给客户端,而后在写一个接口导出导入的数据的各记录的导入状况。

0x02:异步导入

如果数据量比拟大的话,同步导入显然不适合,能够采纳异步导入数据的计划。次要设计两个接口。

第一个接口:该接口负责上传Execl电子表格;而后在Redis设置一个未实现的标识,同时开启一个线程执行解析Execl电子表格数据;最初执行业务操作把数据导入到数据,实现后把在Redis设置的标识标记成实现;

第二个接口:用做轮询,获取导入数据实现的状况

同理,如果须要记录记录行的验证状况,能够把验证的记录行状况记录到数据库,而后再设计一个接口导出记录行的导入状况。

0x03:导入服务

后面两种计划,都没有把上传的Execl电子表格文件、导入工夫、导入人的相干信息记录下来。如果呈现一些动向不到的问题的话,十分不不便排查谬误。所以有时须要设计一个库表,把这些信息记录下来,不便在呈现问题时,进行排查。设计的记录表的字段能够大抵如下:

id:主键id

file_path:上传的文件的门路

file_type:文件类型

module:  所属业务模块

opr_state:导入的总体状态,0胜利,1失败

upload_time:上传工夫

upload_user:上传人

这个计划再联合第一种或者第二种计划,就能够实现一个导入服务性能。

总体来说设计一个比拟好的导入性能须要两张表和三个接口

  • 两张表:导入信息记录表、Execl记录行数据验证状态及该行导入情况表
  • 三个接口:上传Execl电子表格与异步数据导入性能接口、轮询是否导入胜利状态接口、下载导入Execl记录行数据验证状态及该行导入状况接口

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:深入了解数据导入的一些解决方案

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址