[发明专利]一种分布式环境中大批量导出数据的方法有效
申请号: | 201711059530.3 | 申请日: | 2017-11-01 |
公开(公告)号: | CN107798111B | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 李波;岳永胜 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/22;G06F16/242;G06F16/25;G06F9/50 |
代理公司: | 四川省成都市天策商标专利事务所 51213 | 代理人: | 秦华云 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 环境 大批量 导出 数据 方法 | ||
本发明公开了一种分布式环境中大批量导出数据的方法,针对传统导出数据的不足进行改进,采用先使用多线程单表查询,再将查询到的数据使用多线程再次进行表查询,从而达到加快数据导出速度,缩短用户等待时间的效果。本发明采用多次使用多线程的技术,缩短用户等待时间的同时降低数据库服务器以及应用服务器的负载。
技术领域
本发明涉及数据处理技术领域,特别涉及一种分布式环境中大批量导出数据的方法。
背景技术
随着软件的不断升级,需求逐渐增多传统的设计方式已经不能满足业务需求。因此必定采用分布式开发方式,将业务进行拆分。数据库层设计采用多库,多表进行设计。云平台运营人员或企业管理人员需要随时对运营数据进行导出分析。虽然软件开发者能根据数据分析人员的需求开发出满足要求的功能。但是从需求提出到上线使用中间会经历需求分析、概要设计、代码编写、测试、修改bug、发布等一系列繁琐的过程。然而,市场往往是风云变幻的,机会也是随着时间转瞬即逝的,因此,及时分析运营数据成为每位网站运营者的必修课。
日常工作中,运营者更习惯于导出成Excel表格对数据进行各种可视化操作。因此导出大批量数据便成了开发者需要面临的问题。传统架构采用单数据库,单服务器模式。直接查询导出成Excel就可以了。但是在分布式环境中在使用传统的方式将不能导出大量数据。分布式环境主要面临的问题是数据库采用多库的方式设计。传统的方式可以对数据库进行联合查询而分库后将不能进行联合查询。
由上可以看出在分布式环境中采用传统的方式进行导出,用户必定面临长时间等待,系统也将面临M*N的查询问题(M是查询的数据条数,N是涉及到的表)。例如在导出一万条数据,涉及到3张表。将会对数据库查询3万次。在并发量比较高的情况下,数据库必然会崩溃。因此,传统的导出表的方式不利于提升数据导出速度及减少数据库查询时间。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种分布式环境中大批量导出数据的方法,采用先使用多线程单表查询,再将查询到的数据使用多线程再次进行表查询,从而有效加快数据导出速度,缩短用户等待时间。
为了达到上述的技术效果,本发明采取以下技术方案:
一种分布式环境中大批量导出数据的方法,包含以下步骤:
A.web前端发送需要导出的数据的条件,通过聚合查询出满足用户需要导出的数据条数,计算每一个线程完成多少条数据查询;
B.创建一个实现java.util.concurrent.Callable接口线程,所述接口线程用于分页获取订单表的数据;
C.根据服务器的配置情况创建线程池,将查询任务加入到线程池中,且为每个所述线程池预设最佳线程数目,根据线程池的调度策略,自动调用查询任务,进行订单表的数据查询,并将查询获取的订单表的数据保存至第一文件中;
D.对数据进行联合查询,建立与订单表一一对应的查询任务,并对单表查询出的数据进行内存分页,并将查询出的数据采用Map的形式存储在内存中,获取key值及value值,其中,所述key值为订单数据的id值,value值为关联表需要获取到的数据值;
E.将所述第一文件中的数据与步骤D中获取的Map形式的数据进行组装,组合出符合导出要求的List集合,并将List集合存到第二文件中;
F.对第二文件中的数据进行解析,采用IO流的形式获取数据,并将数据写入到Excel文件中;
G.给Excel文件预设一个Excel条数上限值,在步骤F中将数据写入到Excel文件中时,若写入的Excel条数到达所述Excel条数上限值时,则将存储在内存中的Map的形式的数据写入到硬盘中;
H.使用http协议,往web前端的http请求的响应输出流中写入文件数据,完成大批量数据导出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711059530.3/2.html,转载请声明来源钻瓜专利网。