数据导出方法、装置、电子设备和存储介质制造方法及图纸

技术编号:26762507 阅读:27 留言:0更新日期:2020-12-18 23:12
本发明专利技术实施例涉及通信领域,公开了一种数据导出方法、装置、电子设备和存储介质。数据导出方法包括:获取对数据库进行数据导出时需要生成的导出文件数量F;获取进行所述数据导出工作的硬件设备可用线程数量P;采用所述P个可用线程并行对所述数据库执行至少两个数据导出任务,基于对所述数据库执行数据导出任务导出的数据,生成F个导出文件。应用在mongoDB中,实现快速数据导出。

【技术实现步骤摘要】
数据导出方法、装置、电子设备和存储介质
本专利技术实施例涉及通信领域,特别涉及一种数据导出方法、装置、电子设备和存储介质。
技术介绍
MongoDB是一种由C++语言编写的基于分布式文件存储的开源数据库系统。在现有技术中,当需要对MongoDB进行数据导出时,首先,获取数据导出需要生成的新文件个数,然后,从MongoDB导出数据,按照队列的方式依次生成每个新文件。具体地,生成每个新文件的方法可以包括:首先,采用分页查询命令从MongoDB中查询数据,然后,将查询到的数据根据自定义的规则组装成结果数据,最后,将结果数据写入到对应的新文件中。然而,在实现本专利技术实施例的过程中,专利技术人发现:当MongoDB中待导出的数据量较大时,现有技术从MongoDB导出数据,按照队列的方式依次生成每个新文件的方法效率较低,数据导出速度较慢。
技术实现思路
本专利技术实施方式的目的在于提供一种数据导出方法、装置、电子设备和存储介质,能够提高数据导出速度。为解决上述技术问题,本专利技术的实施方式提供了一种数据导出方法,包括:本文档来自技高网...

【技术保护点】
1.一种数据导出方法,其特征在于,包括:/n获取对数据库进行数据导出时需要生成的导出文件数量F;/n获取进行所述数据导出工作的硬件设备可用线程数量P;/n采用所述P个可用线程并行对所述数据库执行至少两个数据导出任务,基于对所述数据库执行数据导出任务导出的数据,生成F个导出文件;/n其中,采用所述P个可用线程并行对所述数据库执行至少两个数据导出任务,包括:/n在采用单个可用线程对所述数据库执行单个数据导出任务时,若执行所述单个数据导出任务查询到的数据总量大于单个所述导出文件的数据最大存储量,则从所述查询到的数据总量中,按照查询时间由先至后的顺序导出所述预定数据存储量的数据,作为执行所述单个数据导...

【技术特征摘要】
1.一种数据导出方法,其特征在于,包括:
获取对数据库进行数据导出时需要生成的导出文件数量F;
获取进行所述数据导出工作的硬件设备可用线程数量P;
采用所述P个可用线程并行对所述数据库执行至少两个数据导出任务,基于对所述数据库执行数据导出任务导出的数据,生成F个导出文件;
其中,采用所述P个可用线程并行对所述数据库执行至少两个数据导出任务,包括:
在采用单个可用线程对所述数据库执行单个数据导出任务时,若执行所述单个数据导出任务查询到的数据总量大于单个所述导出文件的数据最大存储量,则从所述查询到的数据总量中,按照查询时间由先至后的顺序导出所述预定数据存储量的数据,作为执行所述单个数据导出任务导出的数据。


2.根据权利要求1所述的方法,其特征在于,在所述采用所述P个可用线程并行对所述数据库执行至少两个数据导出任务,基于对所述数据库执行数据到处任务的数据,生成F个导出文件钟,生成每个所述导出文件的方法,包括:
根据所述数据库自带的主键id和所述数据库中单个分页包含的数据pageData,生成每个所述导出文件。


3.根据权利要求2所述的方法,其特征在于,所述根据所述数据库自带的主键id和所述数据库中单个分页包含的数据pageData,生成每个所述导出文件包括:
获取所述导出文件中的起始数据在所述数据库中的分页页码pageNum;
对所述数据库进行id升序排序,按照分页查询方法,从id升序排序后的pageNum中获取待导出数据pageData1,其中,id为所述数据库中数据的序列号;
根据所述pageData1获取已查询出的待导出数据个数foundCount;
如果foundCount大于等于所述导出文件的总行数L,从所述pageData1获取目标导出数据;
根据所述目标导出数据生成所述导出文件。


4.根据权利要求3所述的方法,其特征在于,所述根据所述pageData1获取已查询出的待导出数据个数foundCount之后,所述根据所述目标导出数据生成所述导出文件之前,还包括:
如果foundCount小于所述L,获取所述pageNum中最后一行数据的序列号ID;
以所述id大于所述ID为查询条件,按照条件查询方法,从pageNum+1中获取待导出数据pageData2;
更新所述pageNum=pageNum+1;
根据所述pageData1和所述pageData2更新所述foundCount;
如果更新后的foundCount大于等于所述L,从所述pageData1和pageData2获取目标导出数据;
如果更新后的foundCount小于所述L,循环执行所述获取所述pageNum中最后一行数据的序列号ID,以所述id大于所述ID为查询条件,按照所述分页查询方法,从pageNum+1中获取待导出数据pageData2,更新所述pageNum=pageNum+1,根据所述pageData1和所述pageData2更新所述foundCount的步骤。


5.一种数据导出装置,其特征在于,包括:
第一获取模块,用于获取对数据库进行数据导出时需要生成的导出文件数量F;
第二获取模块,用于获取进行所述数据导出工作的硬件设备可用线程数量P;
生成模块,用于采用所...

【专利技术属性】
技术研发人员:柳建龙邢刚李琳
申请(专利权)人:咪咕文化科技有限公司中国移动通信集团有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1