基于多并发技术从数据库快速导出批量数据方法和系统技术方案

技术编号:22364028 阅读:37 留言:0更新日期:2019-10-23 04:40
本发明专利技术公开了基于多并发技术从数据库快速导出批量数据方法和系统,该系统包括数据导出工具和注册到数据库服务器的数据导出插件,数据导出插件包括一个写文件进程和多个数据处理进程;该方法包括以下步骤:数据导出工具负责读取配置文件连接和调用数据导出插件进行导出工作;所述数据导出插件接收连接的进程为写文件进程,写文件进程创建多个数据处理进程;每个数据处理进程读取对应数据块的数据进行元组解析;将解析后的所述元组转化为目标格式数据后存入共享内存队列;写文件进程遍历所有所述共享内存队列,从中取出目标格式数据后批量写入目标数据文件。本发明专利技术有益效果:增强了扩展性,降低了与数据库服务器的耦合性,提高了导出效率。

Method and system of fast exporting batch data from database based on multi concurrent technology

【技术实现步骤摘要】
基于多并发技术从数据库快速导出批量数据方法和系统
本专利技术涉及数据库
,具体来说,涉及一种基于多并发技术从数据库快速导出批量数据方法和系统,适用于批量数据导出。
技术介绍
随着计算机技术的飞速发展,数据库的应用也越来越广泛,数据的导入和导出效率是数据库的总体性能的一个非常重要的指标。数据导出主要是将数据库的数据导出成CSV、二进制和文本文件格式,也有将数据导出到EXCEL或者其他数据库中。目前,从数据库中导出数据的主要技术如下:一种通过实现一个外部工具连接到数据库,根据设置的数据导出配置,将导出数据存储在内存中并转换为目标格式,最后将其保存为目标文件。例如:申请号为CN201610834990的中国专利申请中就采用该技术,这种导出方式首先要通过数据库的查询接口查询出数据,网络传输给导出工具,然后导出工具再进行格式转换为目标格式,整个导出流程复杂,耗时长,并且整个导出过程为单进程,导致导出的效率极其低下,同时通过该方式在某种情况下,导出数据的数据量也受到限制。另一种通过关系数据库中自带的函数或者命令的方式导出为目标格式的文件。例如:在开源数据库PostgreSQL中,就可以通过本文档来自技高网...

【技术保护点】
1.一种基于多并发技术从数据库快速导出批量数据方法,其特征在于,包括以下步骤:数据导出工具负责读取配置文件,与所述数据导出插件的写文件进程相连接,并调用所述数据导出插件进行数据导出工作;每个所述写文件进程接收所述数据导出工具的连接后创建多个数据处理进程;每个所述数据处理进程分任务并行读取对应数据块的数据后进行元组解析;将解析后的所述元组转化为目标格式数据后存储于共享内存队列;所述写文件进程遍历所有所述共享内存队列,从其取出目标格式数据后批量写入到目标数据文件。

【技术特征摘要】
1.一种基于多并发技术从数据库快速导出批量数据方法,其特征在于,包括以下步骤:数据导出工具负责读取配置文件,与所述数据导出插件的写文件进程相连接,并调用所述数据导出插件进行数据导出工作;每个所述写文件进程接收所述数据导出工具的连接后创建多个数据处理进程;每个所述数据处理进程分任务并行读取对应数据块的数据后进行元组解析;将解析后的所述元组转化为目标格式数据后存储于共享内存队列;所述写文件进程遍历所有所述共享内存队列,从其取出目标格式数据后批量写入到目标数据文件。2.根据权利要求1所述的基于多并发技术从数据库快速导出批量数据方法,其特征在于,该方法还包括:在所述写文件进程的初始化函数中获取当前快照并存储,并将存储的快照名传给所述数据处理进程,所述数据处理进程根据所述快照名读取相应的快照。3.根据权利要求1所述的基于多并发技术从数据库快速导出批量数据方法,其特征在于,该方法还包括:在所述数据处理进程中采用异常捕获机制捕获出错信息进行异常处理,将错误进行分类处理并记入日志。4.根据权利要求1-3任一项所述的基于多并发技术从数据库快速导出批量数据方法,其特征在于,所述数据导出工具包括:在所述数据导出工具读取命令行参数和解析配置文件;将解析后的配置信息存储于链表,并将所述链表中的配置选项转化成字符串;将配置选项作为函数的参数,调用数据导出插件中快速导出函数;所述数据库服务器根据配置选项导出数据。5.根据权利要求4所述的基于多并发技术从数据库快速导出批量数据方法,其特征在于,调用数据导出插件中快速导出函数包括:将快速导出函数进行参数解析;创建第一Reader模块和第一Writer模块,并调用对应模块的初始化函进行数初始化;循环判断已导出的条数是否小于限制数,若导出的条数小于所述限制数,则通过所述第一Reader模块获取下一个元组,如果下一个元组不为空,则通过所述第一Writer模块导出元组;否则,若导出的条数超过受限范围或者获取元组为空则结束导出流程;数据导出完成后,将导出的结果信息通过函数的返回值的形式返回。6.一种基于多并发技术从数据库快速导出批量数据系统,其特征在于,包括数据导出工具和注册到数据库服务器的数据导出插...

【专利技术属性】
技术研发人员:袁远松王建华杜春魁
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:北京,11

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

1