一种基于文件存储的大数据异步导出方法及系统与流程

未命名 08-18 阅读:79 评论:0


1.本发明属于大数据处理领域,具体涉及一种基于文件存储的大数据异步导出方法及系统。


背景技术:

2.随着网络技术和数字经济的发展,传统行业与互联网的结合使得用户每天都会在网络上产生非常多的数据,数据库中数据的导出在日常开发中也是经常遇到的现象。
3.现有的数据导出方法都是通过一次请求导出,即同步导出,同步导出对于小数据量的导出适用,对于大数据量的导出就会出现数据导出超时、连接中断的情况,最终导致数据导出失败。
4.对于快递行业,网点工作人员经常需要从数据库中导出该网点每日到件及发件情况,进行数据分析,从而更好的指导生产经营。现有传统的数据同步导出方法在点击“导出”按钮后浏览器处于一直等待状态,等待浏览器后端返回导出结果,对于小数据量的导出等待时间很短,不会出现问题,可以流畅导出。但是,当要导出的数据量到达一万条以上或者浏览器后端服务器有一些比较耗时的处理操作时,用户通过浏览器前端点击“导出”按钮,由于导出数据量较大,数据传输耗时较长,就会导致整个浏览器页面卡顿,出现白屏,用户也就无法再进行其他操作,影响了用户的体验。


技术实现要素:

5.本发明提出了一种基于文件存储的大数据异步导出方法及系统,避免因用户一次性提交大量导出请求而导致的系统崩溃及响应缓慢问题;能够分批次不重复、不遗漏地处理所有未执行的导出任务,避免一次执行过多且耗时较长的任务导致服务器压力过大影响到主流程,提升用户体验;
6.一方面,为实现上述目的,本发明提供了一种基于文件存储的大数据异步导出方法,包括以下步骤:
7.获取待导出数据的数据导出请求,根据所述数据导出请求创建导出任务,并将所述导出任务保存至浏览器后端服务器的任务表中;
8.从所述任务表中获取所述导出任务并执行所述导出任务,生成所述待导出数据的excel文件;
9.将所述excel文件上传至云存储服务器保存,得到所述云存储服务器返回的该excel文件对应的统一资源定位符链接;
10.获取excel文件下载请求,根据所述统一资源定位符链接从所述云存储服务器下载所述excel文件,完成所述待导出数据的数据导出。
11.可选地,获取待导出数据的数据导出请求之后,还包括对所述数据导出请求进行校验,校验过程包括:
12.将所述数据导出请求携带的请求参数取出,根据所述请求参数查看数据库中是否
存在所述待导出数据,当所述待导出数据存在于所述数据库中时,校验通过;
13.当所述待导出数据不存在于所述数据库中时,校验不通过,则将所述数据导出请求的校验失败提醒返回至浏览器前端。
14.可选地,采用job定时任务从所述任务表中获取并执行所述导出任务,所述job定时任务利用tbschedule框架创建;所述job定时任务从所述任务表中获取并执行所述导出任务的过程包括:
15.每隔预设固定时间从所述任务表中检索其中是否存在未执行的导出任务;若存在未执行的导出任务,所述job定时任务获取该导出任务的数据导出请求的请求参数,根据所述请求参数去数据库中获取所述待导出数据;
16.采用easypoi工具将获取的所述待导出数据生成所述待导出数据的所述excel文件。
17.可选地,得到excel文件对应的统一资源定位符链接之后,还包括:
18.将所述excel文件对应的所述统一资源定位符链接保存至数据库中。
19.可选地,下载excel文件完成待导出数据的数据导出之后,还包括:
20.删除所述云存储服务器中的所述excel文件。
21.可选地,所述导出任务存储有:从数据库中查询该导出任务对应的excel文件中数据的筛选条件。
22.另一方面,为实现上述目的,本发明还提供了一种基于文件存储的大数据异步导出系统,其特征在于,包括:前端、后端服务器和存储服务器;
23.所述前端,用于接收待导出数据的数据导出请求,并将所述数据导出请求发送给所述后端服务器;以及接收excel文件下载请求,并将所述excel文件下载请求发送给所述后端服务器;
24.所述后端服务器用于执行权利要求1-6任一所述的基于文件存储的大数据异步导出方法;
25.所述云存储服务器,用于存储excel文件,并将所述excel文件对应的统一资源定位符链接下发至所述后端服务器。
26.本发明的有益效果为:
27.1.本发明采用异步导出方法,即发送两次请求导出excel文件,第一次请求为向浏览器后端服务器发送数据导出请求,创建导出任务保存并返回保存结果到浏览器前端,第二次请求为excel文件下载请求,下载导出的文件,在这种情况下,浏览器前端无需等待,在数据导出期间用户仍然可以在浏览器上进行其他操作,提升了用户体验,减少了用户的等待时间,且不会出现传输超时、网络连接中端的情况,避免了浏览器页面卡顿、白屏的情况;
28.2.本发明将导出任务保存至任务表,避免了因用户一次性提交大量导出请求而导致的系统崩溃及响应缓慢问题;
29.3.本发明通过job定时任务能够分批次不重复、不遗漏地快速处理所有未执行的导出任务,避免了因一次执行过多且耗时较长的任务导致服务器压力过大影响到主流程的情况。
附图说明
30.为了更清楚地说明本发明的技术方案,下面对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
31.图1为本发明实施例基于文件存储的大数据异步导出方法流程示意图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
34.实施例一
35.图1为本发明实施例基于文件存储的大数据异步导出方法流程示意图,如图1所示,本发明公开了一种基于文件存储的大数据异步导出方法,本实施例以导出数据库中的扫描记录表为例,具体包括:
36.获取待导出数据(本实施例以扫描记录表为例)的数据导出请求,根据数据导出请求创建导出任务,并将导出任务保存至浏览器后端服务器的任务表中;
37.当用户在浏览器前端(浏览器页面)点击“导出”按钮时,即浏览器前端向后端服务器发起了扫描记录表的数据导出请求,浏览器的后端服务器接收到数据导出请求,后端服务器将数据导出请求携带的请求参数取出,对请求参数进行校验,以确保需要导出的数据存在于数据库中,降低无效导出的概率;校验过程为:根据请求参数查看数据库中是否存在待导出数据,当待导出数据不存在于数据库中时,即校验不通过,则将数据导出请求的校验失败提醒返回至浏览器前端。当待导出数据存在于数据库中时,校验通过,然后,根据数据导出请求创建导出任务,并将导出任务保存至浏览器后端服务器的任务表中,该项导出任务存储了:从数据库中查询该导出任务对应的excel文件中数据的筛选条件。将导出任务保存至浏览器后端服务器的任务表后,将保存成功的结果返回到浏览器前端,值得注意的是,返回的该结果仅代表后端服务器接收到了本次数据导出请求,并不是用户期望导出的最终导出文件,最终导出文件需要用户再次点击“下载”按钮才能获取,至此,本发明采用的异步导出方法中的第一次请求结束。第一次请求耗时较短,用户无需等待,仍可在浏览器继续其他操作,减少了用户的等待时间,提升了用户体验。
38.从任务表中获取导出任务并执行导出任务,生成待导出数据的excel文件;
39.采用job定时任务从任务表中获取并执行导出任务,job定时任务利用tbschedule框架创建,tbschedule框架是来自淘宝的分布式调度开源框架,其目的是让一种批量任务能够被动态的分配到多个主机的jvm中的不同线程组中并行执行,因此所有的任务都能够被不重复,不遗漏地快速处理,同时job定时任务可分批次执行任务,避免一次执行过多且耗时较长的任务导致服务器压力过大影响到主流程。
40.job定时任务从任务表中获取并执行导出任务的过程包括:
41.job定时任务每隔预设固定时间从任务表中去检索其中是否存在未执行的导出任务,如果存在未执行的导出任务,job定时任务会获取一批/单个导出任务,并读取导出任务中的数据导出请求的请求参数,根据请求参数去数据库的扫描记录表中查询需要导出的数据;然后将待导出数据按照用户要求的样式使用easypoi工具生成待导出数据对应的excel文件。其中,easypoi为专门用于excel导入导出的工具。
42.将excel文件上传至云存储服务器保存,得到云存储服务器返回的该excel文件对应的统一资源定位符链接;
43.job定时任务将生成的扫描记录表excel文件通过oss的api接口上传至oss服务器进行保存/暂存,在本实施例中,云存储服务器采用阿里云oss服务器,阿里云对象存储oss(object storage service)是一款海量、安全、低成本、高可靠的云存储服务器,数据以对象(object)的形式存储在oss的存储空间(bucket)中,可以使用阿里云提供的api、sdk接口或者oss迁移工具轻松地将海量数据移入或移出阿里云oss服务器,本实施例使用了oss作为导出文件的暂存服务器,方便快速保存及下载文件。进一步地,云存储服务器还可以为浏览器后端服务运行所在的服务器。
44.将excel文件上传至云存储服务器保存/暂存之后,oss会返回的该excel文件对应的统一资源定位符(url)链接,job定时任务该url链接保存至数据库中,方便下次再次访问该文件。
45.获取excel文件下载请求,根据统一资源定位符链接从云存储服务器下载excel文件,完成待导出数据的数据导出;
46.当用户在浏览器前端点击“下载”按钮时,视为发送第二次请求,即excel文件下载请求,后端服务器接收到excel文件下载请求后会带着之前oss服务器返回的url链接访问oss服务器,获取到由job定时任务上传的、暂存在oss服务器中的扫描记录表excel文件,然后立即将扫描记录表excel文件返回到前端浏览器,同时删除oss服务器上的该文件以释放空间,这时用户在浏览器端就可以看到下载文件进度条,当下载完成后用户获取到最终的扫描记录表excel文件,完成扫描记录表的数据导出。用户的第二次请求直接在oss服务器获取文件,耗时极短,能够立即得到响应,其中数据的加工处理及excel文件生成等过程已在job定时任务执行过了,第二次请求只是获取执行的结果,因此第二次请求响应很快。在采用本发明提供的数据异步导出方法,浏览器前端无需等待,在数据导出期间用户仍然可以在浏览器上进行其他操作,提升了用户体验,减少了用户的等待时间,且不会出现传输超时、网络连接中端的情况,避免了浏览器页面卡顿、白屏的情况;如果云存储服务器选择浏览器后端服务运行所在的服务器,同理。
47.实施例二
48.本实施例提供了一种基于文件存储的大数据异步导出系统,其特征在于,包括:前端、后端服务器和存储服务器;
49.前端,用于接收待导出数据的数据导出请求,并将数据导出请求发送给后端服务器;以及接收excel文件下载请求,并将excel文件下载请求发送给后端服务器;
50.后端服务器用于执行基于文件存储的大数据异步导出方法;
51.云存储服务器,用于存储excel文件,并将excel文件对应的统一资源定位符链接下发至后端服务器。
52.以上所述的实施例仅是对本发明优选方式进行的描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
53.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
54.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
55.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
56.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
57.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
58.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
59.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
60.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
61.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种基于文件存储的大数据异步导出方法,其特征在于,包括以下步骤:获取待导出数据的数据导出请求,根据所述数据导出请求创建导出任务,并将所述导出任务保存至任务表中,并发送导出任务成功提醒;其中,所述导出任务中包括所述待导出数据的筛选条件;基于预设固定时间,从所述任务表中获取所述导出任务并执行所述导出任务,生成所述待导出数据的excel文件;将所述excel文件上传至云存储服务器保存,得到所述云存储服务器返回的该excel文件对应的统一资源定位符链接;响应于excel文件下载请求,根据所述统一资源定位符链接从所述云存储服务器下载所述excel文件,完成所述待导出数据的数据导出。2.根据权利要求1所述的大数据异步导出方法,其特征在于,获取待导出数据的数据导出请求之后,还包括对所述数据导出请求进行校验,校验过程包括:将所述数据导出请求携带的请求参数取出,根据所述请求参数查看数据库中是否存在所述待导出数据,当所述待导出数据存在于所述数据库中时,校验通过;当所述待导出数据不存在于所述数据库中时,校验不通过,则将所述数据导出请求的校验失败提醒返回至浏览器前端。3.根据权利要求1所述的大数据异步导出方法,其特征在于,采用job定时任务从所述任务表中获取并执行所述导出任务,所述job定时任务利用tbschedule框架创建;所述job定时任务从所述任务表中获取并执行所述导出任务的过程包括:每隔预设固定时间从所述任务表中检索其中是否存在未执行的导出任务;若存在未执行的导出任务,所述job定时任务获取该导出任务的数据导出请求的请求参数,根据所述请求参数去数据库中获取所述待导出数据;采用easypoi工具将获取的所述待导出数据生成所述待导出数据的所述excel文件。4.根据权利要求3所述的大数据异步导出方法,其特征在于,得到excel文件对应的统一资源定位符链接之后,还包括:将所述excel文件对应的所述统一资源定位符链接保存至数据库中。5.根据权利要求1所述的大数据异步导出方法,其特征在于,下载excel文件完成待导出数据的数据导出之后,还包括:删除所述云存储服务器中的所述excel文件。6.根据权利要求1所述的大数据异步导出方法,其特征在于,所述导出任务存储有:从数据库中查询该导出任务对应的excel文件中数据的筛选条件。7.一种基于文件存储的大数据异步导出系统,其特征在于,包括:前端、后端服务器和存储服务器;所述前端,用于接收待导出数据的数据导出请求,并将所述数据导出请求发送给所述后端服务器;以及接收excel文件下载请求,并将所述excel文件下载请求发送给所述后端服务器;所述后端服务器用于执行权利要求1-6任一所述的基于文件存储的大数据异步导出方法;
所述云存储服务器,用于存储excel文件,并将所述excel文件对应的统一资源定位符链接下发至所述后端服务器。

技术总结
本发明公开一种基于文件存储的大数据异步导出方法及系统,属于大数据领域,获取待导出数据的数据导出请求,根据数据导出请求创建导出任务,将导出任务保存至任务表中;从任务表中获取并执行导出任务,生成待导出数据的excel文件;将excel文件上传至云存储服务器保存,得到云存储服务器返回的统一资源定位符;获取excel文件下载请求,根据统一资源定位符链接下载excel文件。本发明通过将导出任务保存至任务表,避免了因用户一次性提交大量导出请求而导致的系统崩溃及响应缓慢问题;通过job定时任务能够分批次不重复、不遗漏地处理所有未执行的导出任务,避免一次执行过多且耗时较长的任务导致服务器压力过大影响到主流程。程。程。


技术研发人员:杨磊
受保护的技术使用者:上海中通吉网络技术有限公司
技术研发日:2023.05.18
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐