CN108804712A - 数据导出方法及装置 - Google Patents
数据导出方法及装置 Download PDFInfo
- Publication number
- CN108804712A CN108804712A CN201810679487.9A CN201810679487A CN108804712A CN 108804712 A CN108804712 A CN 108804712A CN 201810679487 A CN201810679487 A CN 201810679487A CN 108804712 A CN108804712 A CN 108804712A
- Authority
- CN
- China
- Prior art keywords
- data
- subquery
- subprocess
- file
- sentence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明实施例提供一种数据导出方法及装置。所述方法应用于服务器,所述服务器中存储有数据库,所述方法包括:将与数据导出需求对应的查询语句拆分为多个子查询语句;控制多个子进程以并行的方式分别在数据库中执行一子查询语句,以并行查询数据库;控制多个子进程在得到与执行的子查询语句对应的目标数据后,将目标数据存储在数据文件中。通过将查询语句拆分为多个子查询语句,并通过多个子进程并行执行子查询语句,可极大地提高数据导出效率。
Description
技术领域
本发明涉及数据库技术领域,具体而言,涉及一种数据导出方法及装置。
背景技术
一个体系庞大的软件系统通常是由实现各个功能模块的子系统组成的,各个子系统之间本着“高内聚、低耦合”的设计理念分工合作。在此种合作模式下,系统间的数据共享显得尤为重要。其中,系统之间的数据共享主要通过上游系统将文件导出,再推送给下游系统来实现。
以oracle为例,一般通过调用自带的SPOOL工具进行数据卸载,从而实现数据导出。具体地,将查询语句封装到SPOOL语句中,然后连接数据库,执行封装好的SPOOL语句以得到数据文件。虽然现有的方式也可以实现数据导出,但是在导出文件大且查询语句复杂的情况下,存在耗时长的不足,甚至无法完成文件导出任务。
发明内容
为了克服现有技术中的上述不足,本发明实施例的目的在于提供一种数据导出方法及装置,其能够将查询语句拆分为多个子查询语句,使多个子进程并行执行子查询语句,从而极大地提高数据导出效率。
本发明实施例提供一种数据导出方法,应用于服务器,所述服务器中存储有数据库,所述方法包括:
将与数据导出需求对应的查询语句拆分为多个子查询语句;
控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库;
控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中。
在本发明实施例中,所述将与数据导出需求对应的查询语句拆分为多个子查询语句的步骤包括:
根据查询逻辑将所述查询语句拆分为多个子查询语句。
在本发明实施例中,所述控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句的步骤包括:
控制主卸数进程根据所述子查询语句的总数量建立相同数量的子进程;
根据子进程与子查询语句的对应关系控制多个子进程以并行方式在所述数据库中执行对应的子查询语句。
在本发明实施例中,所述方法还包括:
控制每个所述子进程在执行对应的所述子查询语句时实时获得目标数据的子文件信息,并在执行完毕后向所述主卸数进程返回所述子文件信息,其中,所述子文件信息包括行数及大小;
控制所述主卸数进程根据每个所述子进程在执行完毕后发送的子文件生成文件信息,并将所述文件信息添加至所述数据文件中。
在本发明实施例中,所述控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中的步骤包括:
在得到与所述子查询语句对应的目标数据后,判断所述数据文件是否被文件锁锁定;
若所述数据文件没有被文件锁锁定,对所述数据文件申请文件锁,并将得到的所述目标数据写入所述数据文件,及在写入完毕后将文件锁释放;
若所述数据文件被文件锁锁定,则等待至文件锁释放后再将所述目标数据发送给所述数据文件。
本发明实施例还提供一种数据导出装置,应用于服务器,所述服务器中存储有数据库,所述装置包括:
拆分模块,用于将与数据导出需求对应的查询语句拆分为多个子查询语句;
并行查询模块,用于控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库;
导出模块,用于控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中。
在本发明实施例中,所述拆分模块将与数据导出需求对应的查询语句拆分为多个子查询语句的方式包括:
根据查询逻辑将所述查询语句拆分为多个子查询语句。
在本发明实施例中,所述并行查询模块控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句的方法包括:
控制主卸数进程根据所述子查询语句的总数量建立相同数量的子进程;
根据子进程与子查询语句的对应关系控制多个子进程以并行方式在所述数据库中执行对应的子查询语句。
在本发明实施例中,所述装置还包括:
信息获取模块,用于控制每个所述子进程在执行对应的所述子查询语句时实时获得目标数据的子文件信息,并在执行完毕后向所述主卸数进程返回所述子文件信息,其中,所述子文件信息包括行数及大小;
所述导出模块,还用于控制所述主卸数进程根据每个所述子进程在执行完毕后发送的子文件信息生成文件信息,并将所述文件信息添加至所述数据文件中。
在本发明实施例中,所述导出模块控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中的方式包括:
在得到与所述子查询语句对应的目标数据后,判断所述数据文件是否被文件锁锁定;
若所述数据文件没有被文件锁锁定,对所述数据文件申请文件锁,并将得到的所述目标数据写入所述数据文件,及在写入完毕后将文件锁释放;
若所述数据文件被文件锁锁定,则等待至文件锁释放后再将所述目标数据发送给所述数据文件。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供一种数据导出方法及装置。所述方法应用于服务器,所述服务器中存储有数据库。在得到与查询需求对应的查询语句后,将所述查询语句拆分为多个子查询语句。控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库。在子进程得到与子查询语句对应的目标数据后,控制多个子进程将所述目标数据存储在数据文件中。由此,通过并行查询所述数据库,即使要导出的目标数量很大且查询语句复杂,也可以极大提高数据的导出效率。
为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例提供的服务器的方框示意图。
图2是本发明实施例提供的数据导出方法的流程示意图之一。
图3是图2中步骤S120包括的子步骤的流程示意图。
图4是图2中步骤S130包括的子步骤的流程示意图。
图5是本发明实施例提供的数据导出方法的流程示意图之二。
图6是本发明实施例提供的数据导出装置的方框示意图之一。
图7是本发明实施例提供的数据导出装置的方框示意图之二。
图标:100-服务器;110-存储器;120-存储控制器;130-处理器;200-数据导出装置;210-拆分模块;220-并行查询模块;230-导出模块;240-信息获取模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请发明人提出本申请实施例中的技术方案之前,一般通过调用自带的SPOOL工具进行数据卸载,从而实现数据导出。这种方式的卸数瓶颈不仅在于系统层面对数据文件的输入输出,还取决于数据库应用层面对于查询语句的执行效率。并且,目前数据的读取是通过串行的方式实现的,对于大数据量查询不能满足时效性要求。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得到的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应是发明人在本申请过程中对本申请做出的贡献。
请参照图1,图1是本发明实施例提供的服务器100的方框示意图。所述服务器100可以是独立服务器,也可以是由多个独立服务器构成的集群服务器。所述服务器100包括:存储器110、存储控制器120及处理器130。
所述存储器110、存储控制器120及处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有数据导出装置200,所述数据导出装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器130通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的数据导出装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的数据导出方法。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述处理器130以及其他可能的组件对存储器110的访问可在所述存储控制器120的控制下进行。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,图1所示的结构仅为示意,服务器100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2是本发明实施例提供的数据导出方法的流程示意图之一。所述方法应用于所述服务器100,所述服务器100中存储有数据库。下面对数据导出方法的具体流程进行详细阐述。
步骤S110,将与数据导出需求对应的查询语句拆分为多个子查询语句。
在本实施例中,在确定数据导出需求后,获得与所述数据导出需求对应的查询语句。可选地,获得查询语句的方式可以是,但不限于,接收输入的与所述数据导出需求对应的查询语句。其中,所述查询语句可以是SQL(Structured Query Language,结构化查询语言)语句。SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
由于直接执行所述查询语句耗时比较长,因此在本实施例中,对所述查询语句进行拆分,以便后续进行并行查询。其中,可以根据查询逻辑进行拆分,从而保证可以将所述查询语句拆分为多个子查询语句,并且每个子查询语句对应的目标数据不会有交叉。
步骤S120,控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库。
请参照图3,图3是图2中步骤S120包括的子步骤的流程示意图。步骤S120可以包括子步骤S121及子步骤S122。
子步骤S121,控制主卸数进程根据所述子查询语句的总数量建立相同数量的子进程。
子步骤S122,根据子进程与子查询语句的对应关系控制多个子进程以并行方式在所述数据库中执行对应的子查询语句。
在本实施例中,在完成查询语句拆分后,通过主卸数进程批量调起相应数量的子进程。其中,子进程的数量大于或等于所述子查询语句的数量。在本实施例中的一种方式中,子进程的数量与子查询语句的数量相等。然后每个子进程在数据库中执行一子查询语句,实现对数据库的并行查询,由此提高数据导出效率。其中,所述主卸数进程还可以监控每个子进程的执行进度,并在不正常时发送异常提示信息。
可选地,为保证每个子查询语句都被执行,在建立子进程后,可设置每个子进程与一子查询语句的对应关系。每个子进程可根据在该对应关系中被分发的子查询语句对数据库执行查询操作,以获得与子查询语句对应的目标数据。
步骤S130,控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中。
请参照图4,图4是图2中步骤S130包括的子步骤的流程示意图。步骤S130可以包括子步骤S131、子步骤S132及子步骤S133。
子步骤S131,在得到与所述子查询语句对应的目标数据后,判断所述数据文件是否被文件锁锁定。
在所述数据文件没有被文件锁锁定时,执行子步骤S132。在所述数据文件被文件锁锁定时,执行子步骤S133。
子步骤S132,对所述数据文件申请文件锁,并将得到的所述目标数据写入所述数据文件,及在写入完毕后将文件锁释放;
子步骤S133,等待至文件锁释放后再将所述目标数据发送给所述数据文件。
在本实施例中,每个子进程在获得与子查询语句对应的目标数据后,需要将其写入数据文件,以便后续发送给其他系统。在向数据文件写入获得的目标数据前,首先检测该数据文件是否正被其他子进程占用。其中,检测的方式可以是,但不限于,检测该数据文件是否被文件锁锁定。
若数据文件没有被文件锁锁定,表示该数据文件没有正被其他某个子进程占用,可以针对该数据文件申请文件锁,并在获取文件锁成功后,进行写入操作,以将获得的所述目标数据写入所述数据文件。由此,在多进程并行写入同一个数据文件中时,可以保证数据文件与查询结构(即目标数据)的一致性,避免出现数据串行的情况。
若数据文件被文件锁锁定,表示该数据文件正在被其他某个子进程占用,当前子进程不能向数据文件中写入获得的目标数据,直到数据文件的文件锁被释放才能将目标数据写入所述数据文件。其中,关于写入目标数据的部分可以参照上文描述。
将复杂的查询语句根据查询逻辑拆分为多个子查询语句,并根据子查询语句的数量建立同等数量的子进程,每个子进程读取各自的子查询语句并在所述数据库中进行查询。在得到目标数据后,多进程并行地将查询结果以互斥方式写入同一个数据文件。由此,通过并行查询数据库,并行返回结果,解决了在返回大量数据结果时数据库读取慢的瓶颈问题。并且,将多个并行的数据库查询结果以互斥方式导出到数据文件中,导出速度快并且导出结果准确,无串行现象。
在本方案中,软件设计和程序均使用基础技术开发,部署灵活方便。并且,并行脚本(即进程)的执行完全独立于应用系统运行,对应用系统影响最小。
可选地,在本实施例的一种实施方式中,每个子进程在查询过程中,在得到预设大小的目标数据后,即可将该部分目标数据写入所述数据文件。
请参照图5,图5是本发明实施例提供的数据导出方法的流程示意图之二。所述方法还可以包括步骤S140及步骤S150。
步骤S140,控制每个所述子进程在执行对应的所述子查询语句时实时获得目标数据的子文件信息,并在执行完毕后向所述主卸数进程返回所述子文件信息。
步骤S150,控制所述主卸数进程根据每个所述子进程在执行完毕后发送的子文件生成文件信息,并将所述文件信息添加至所述数据文件中。
在本实施例中,所述子文件信息可以包括,但不限于,行数及大小等。每个子进程在向数据文件写入获得目标数据后,实时统计累计向数据文件写入的目标数据的行数及大小。并在整个子进程执行查询完毕后,也就是在将与执行的子查询语句对应的所有目标数据军写入所述数据文件后,将此时累计得到的目标的数据的行数及大小返回给所述主卸数进程。所述主卸数进程将每个子进程在查询完毕的情况下发送的所述子文件信息进行汇总,得到文件信息。所述主卸数进程可以将所述文件信息添加至所述数据文件中,以便后续接收该数据文件的系统核对接收的文件是否完整。通过使子进程在执行过程中实时统计子文件信息,相比于在执行完毕后统计获取文件信息,可进一步提高数据导出效率。
下面对上述方法进行举例说明。
总账系统每日境内总账余额备份表行数为1亿3千万行以上,数据文件大小为69GB,按照下游系统的需求,需要境内余额备份文件提供到数据仓库以供下游加载使用。且考虑到时效性的要求,需要在尽可能短的时间内将数据卸载到本地NAS盘。
首先分析每日境内余额备份表的查询逻辑,得到查询逻辑为汇总模块编号。然后根据汇总模板编号将用于卸数的查询语句拆分为6个子查询语句,其中,每个子查询语句之间无数据重复。主卸数进程根据6个子查询语句,读取配置表,并行调起6个子进程。6个子进程并行对余额备份表文件进行查询,并在查询完毕之后累计当前进程写入行数。其中,在查询过程中,每个子进程实时统计当前返回(即写入数据文件)目标数据得到行数及大小。
主卸数进程循环检查所有子进程是否全部执行完毕,待全部完成以后,顺序获得各子进程累计统计的总行数及总大小,叠加计算后生成境内余额备份文件的总行数及总大小,并将其添加至境内余额备份文件中。
在生产AP机器配置为4C16G的情况下,整个卸数时长为45分钟。在此次数据导出过程中,原有的查询语句被6条并行执行的子查询语句替代,并行导出的平均数据生成速度达到1.58GB/分钟以上,数据导出效率是传统方式的3倍以上。由于每个汇总模板对应的子进程在各自查询过程中会实时统计当前返回行数及大小,故在所有子进程查询结束后,能够迅速计算出生成境内余额备份文件的总行数,相比传统方法在整个文件生成以后再执行文件总行数的统计,特别是在文件非常大(比如,大于30GB)的情况下提升效果十分明显。因此,整个数据导出过程在执行效率上得到极大提升。
请参照图6,图6是本发明实施例提供的数据导出装置200的方框示意图之一。所述数据导出装置200应用于服务器100,所述服务器100中存储有数据库。所述数据导出装置200可以包括拆分模块210、并行查询模块220及导出模块230。
拆分模块210,用于将与数据导出需求对应的查询语句拆分为多个子查询语句。
可选地,所述拆分模块210将与数据导出需求对应的查询语句拆分为多个子查询语句的方式包括:
根据查询逻辑将所述查询语句拆分为多个子查询语句。
在本实施例中,所述拆分模块210用于执行图2中的步骤S110,关于所述拆分模块210的具体描述可以参照图2中步骤S110的描述。
并行查询模块220,用于控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库。
可选地,所述并行查询模块220控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句的方法包括:
控制主卸数进程根据所述子查询语句的总数量建立相同数量的子进程;
根据子进程与子查询语句的对应关系控制多个子进程以并行方式在所述数据库中执行对应的子查询语句。
在本实施例中,所述并行查询模块220用于执行图2中的步骤S120,关于所述并行查询模块220的具体描述可以参照图2中步骤S120的描述。
导出模块230,用于控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中。
可选地,所述导出模块230控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中的方式包括:
在得到与所述子查询语句对应的目标数据后,判断所述数据文件是否被文件锁锁定;
若所述数据文件没有被文件锁锁定,对所述数据文件申请文件锁,并将得到的所述目标数据写入所述数据文件,及在写入完毕后将文件锁释放;
若所述数据文件被文件锁锁定,则等待至文件锁释放后再将所述目标数据发送给所述数据文件。
在本实施例中,所述导出模块230用于执行图2中的步骤S130,关于所述导出模块230的具体描述可以参照图2中步骤S130的描述。
请参照图7,图7是本发明实施例提供的数据导出装置200的方框示意图之二。所述数据导出装置200还可以包括信息获取模块240。
所述信息获取模块240,用于控制每个所述子进程在执行对应的所述子查询语句时实时获得目标数据的子文件信息,并在执行完毕后向所述主卸数进程返回所述子文件信息,其中,所述子文件信息包括行数及大小。
在本实施例中,所述信息获取模块240用于执行图5中的步骤S140,关于所述信息获取模块240的具体描述可以参照图5中步骤S140的描述。
所述导出模块230,还用于控制所述主卸数进程根据每个所述子进程在执行完毕后发送的子文件信息生成文件信息,并将所述文件信息添加至所述数据文件中。
在本实施例中,所述导出模块230还用于执行图5中的步骤S150,关于所述导出模块230的具体描述可以参照图5中步骤S150的描述。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有可执行计算机指令,所述可执行计算机指令被处理器执行时实现所述数据导出方法。
本领域的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
综上所述,本发明实施例提供一种数据导出方法及装置。所述方法应用于服务器,所述服务器中存储有数据库。在得到与查询需求对应的查询语句后,将所述查询语句拆分为多个子查询语句。控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库。在子进程得到与子查询语句对应的目标数据后,控制多个子进程将所述目标数据存储在数据文件中。由此,通过并行查询所述数据库,即使要导出的目标数量很大且查询语句复杂,也可以极大提高数据的导出效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据导出方法,其特征在于,应用于服务器,所述服务器中存储有数据库,所述方法包括:
将与数据导出需求对应的查询语句拆分为多个子查询语句;
控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库;
控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中。
2.根据权利要求1所述的方法,其特征在于,所述将与数据导出需求对应的查询语句拆分为多个子查询语句的步骤包括:
根据查询逻辑将所述查询语句拆分为多个子查询语句。
3.根据权利要求2所述的方法,其特征在于,所述控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句的步骤包括:
控制主卸数进程根据所述子查询语句的总数量建立相同数量的子进程;
根据子进程与子查询语句的对应关系控制多个子进程以并行方式在所述数据库中执行对应的子查询语句。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
控制每个所述子进程在执行对应的所述子查询语句时实时获得目标数据的子文件信息,并在执行完毕后向所述主卸数进程返回所述子文件信息,其中,所述子文件信息包括行数及大小;
控制所述主卸数进程根据每个所述子进程在执行完毕后发送的子文件生成文件信息,并将所述文件信息添加至所述数据文件中。
5.根据权利要求1所述的方法,其特征在于,所述控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中的步骤包括:
在得到与所述子查询语句对应的目标数据后,判断所述数据文件是否被文件锁锁定;
若所述数据文件没有被文件锁锁定,对所述数据文件申请文件锁,并将得到的所述目标数据写入所述数据文件,及在写入完毕后将文件锁释放;
若所述数据文件被文件锁锁定,则等待至文件锁释放后再将所述目标数据发送给所述数据文件。
6.一种数据导出装置,其特征在于,应用于服务器,所述服务器中存储有数据库,所述装置包括:
拆分模块,用于将与数据导出需求对应的查询语句拆分为多个子查询语句;
并行查询模块,用于控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句,以并行查询所述数据库;
导出模块,用于控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中。
7.根据权利要求6所述的装置,其特征在于,所述拆分模块将与数据导出需求对应的查询语句拆分为多个子查询语句的方式包括:
根据查询逻辑将所述查询语句拆分为多个子查询语句。
8.根据权利要求7所述的装置,其特征在于,所述并行查询模块控制多个子进程以并行的方式分别在所述数据库中执行一子查询语句的方法包括:
控制主卸数进程根据所述子查询语句的总数量建立相同数量的子进程;
根据子进程与子查询语句的对应关系控制多个子进程以并行方式在所述数据库中执行对应的子查询语句。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
信息获取模块,用于控制每个所述子进程在执行对应的所述子查询语句时实时获得目标数据的子文件信息,并在执行完毕后向所述主卸数进程返回所述子文件信息,其中,所述子文件信息包括行数及大小;
所述导出模块,还用于控制所述主卸数进程根据每个所述子进程在执行完毕后发送的子文件信息生成文件信息,并将所述文件信息添加至所述数据文件中。
10.根据权利要求6所述的装置,其特征在于,所述导出模块控制所述多个子进程在得到与执行的子查询语句对应的目标数据后,将所述目标数据存储在数据文件中的方式包括:
在得到与所述子查询语句对应的目标数据后,判断所述数据文件是否被文件锁锁定;
若所述数据文件没有被文件锁锁定,对所述数据文件申请文件锁,并将得到的所述目标数据写入所述数据文件,及在写入完毕后将文件锁释放;
若所述数据文件被文件锁锁定,则等待至文件锁释放后再将所述目标数据发送给所述数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810679487.9A CN108804712A (zh) | 2018-06-27 | 2018-06-27 | 数据导出方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810679487.9A CN108804712A (zh) | 2018-06-27 | 2018-06-27 | 数据导出方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108804712A true CN108804712A (zh) | 2018-11-13 |
Family
ID=64071856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810679487.9A Pending CN108804712A (zh) | 2018-06-27 | 2018-06-27 | 数据导出方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804712A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597810A (zh) * | 2018-11-21 | 2019-04-09 | 金色熊猫有限公司 | 一种任务切分方法、装置、介质及电子设备 |
CN110389968A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 聚合查询方法、聚合查询装置、设备及介质 |
CN110502562A (zh) * | 2019-08-16 | 2019-11-26 | 深圳证券交易所 | 数据导入方法及装置、可读存储介质 |
CN111611307A (zh) * | 2020-06-11 | 2020-09-01 | 上海乾臻信息科技有限公司 | 报表导出方法及装置 |
CN111915424A (zh) * | 2020-07-30 | 2020-11-10 | 平安证券股份有限公司 | 信息保存方法及相关产品 |
CN112597228A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种文件处理方法及系统 |
CN113268502A (zh) * | 2020-12-23 | 2021-08-17 | 上海右云信息技术有限公司 | 一种用于提供信息的方法与设备 |
CN113609168A (zh) * | 2021-07-14 | 2021-11-05 | 远景智能国际私人投资有限公司 | 数据导出方法、装置、终端以及可读存储介质 |
CN114265874A (zh) * | 2022-03-02 | 2022-04-01 | 北京奥星贝斯科技有限公司 | 查询数据的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440296A (zh) * | 2013-08-19 | 2013-12-11 | 曙光信息产业股份有限公司 | 数据查询方法和装置 |
CN104050283A (zh) * | 2014-06-27 | 2014-09-17 | 浙江大学 | 一种适用于高维散乱点云的索引查询方法 |
CN105975617A (zh) * | 2016-05-20 | 2016-09-28 | 北京京东尚科信息技术有限公司 | 一种多分区表查询处理的方法和装置 |
US9544663B1 (en) * | 2000-09-14 | 2017-01-10 | Network-1 Technologies, Inc. | System for taking action with respect to a media work |
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
-
2018
- 2018-06-27 CN CN201810679487.9A patent/CN108804712A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9544663B1 (en) * | 2000-09-14 | 2017-01-10 | Network-1 Technologies, Inc. | System for taking action with respect to a media work |
CN103440296A (zh) * | 2013-08-19 | 2013-12-11 | 曙光信息产业股份有限公司 | 数据查询方法和装置 |
CN104050283A (zh) * | 2014-06-27 | 2014-09-17 | 浙江大学 | 一种适用于高维散乱点云的索引查询方法 |
CN105975617A (zh) * | 2016-05-20 | 2016-09-28 | 北京京东尚科信息技术有限公司 | 一种多分区表查询处理的方法和装置 |
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597810B (zh) * | 2018-11-21 | 2021-11-09 | 金色熊猫有限公司 | 一种任务切分方法、装置、介质及电子设备 |
CN109597810A (zh) * | 2018-11-21 | 2019-04-09 | 金色熊猫有限公司 | 一种任务切分方法、装置、介质及电子设备 |
CN110389968A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 聚合查询方法、聚合查询装置、设备及介质 |
CN110502562A (zh) * | 2019-08-16 | 2019-11-26 | 深圳证券交易所 | 数据导入方法及装置、可读存储介质 |
CN111611307A (zh) * | 2020-06-11 | 2020-09-01 | 上海乾臻信息科技有限公司 | 报表导出方法及装置 |
CN111611307B (zh) * | 2020-06-11 | 2023-12-15 | 上海乾臻信息科技有限公司 | 报表导出方法及装置 |
CN111915424A (zh) * | 2020-07-30 | 2020-11-10 | 平安证券股份有限公司 | 信息保存方法及相关产品 |
CN113268502A (zh) * | 2020-12-23 | 2021-08-17 | 上海右云信息技术有限公司 | 一种用于提供信息的方法与设备 |
CN112597228A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种文件处理方法及系统 |
CN113609168A (zh) * | 2021-07-14 | 2021-11-05 | 远景智能国际私人投资有限公司 | 数据导出方法、装置、终端以及可读存储介质 |
CN113609168B (zh) * | 2021-07-14 | 2024-01-05 | 远景智能国际私人投资有限公司 | 数据导出方法、装置、终端以及可读存储介质 |
CN114265874A (zh) * | 2022-03-02 | 2022-04-01 | 北京奥星贝斯科技有限公司 | 查询数据的方法和装置 |
CN114265874B (zh) * | 2022-03-02 | 2022-05-03 | 北京奥星贝斯科技有限公司 | 查询数据的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804712A (zh) | 数据导出方法及装置 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US11099973B2 (en) | Automated test case management systems and methods | |
US10855791B2 (en) | Clustered storage system path quiescence analysis | |
CN106033373B (zh) | 一种云计算平台中虚拟机资源调度方法和调度系统 | |
EP1091294A2 (en) | Method and apparatus for assigning resources to logical partition clusters | |
US20190294519A1 (en) | System and method for database replication benchmark testing using a pipeline-based microservices model | |
CN116466959A (zh) | 微服务系统的部署方法、装置、可读存储介质和电子设备 | |
CN108880896A (zh) | 一种基于大型机的程序灰度发布方法及装置 | |
US10048991B2 (en) | System and method for parallel processing data blocks containing sequential label ranges of series data | |
CN105681070A (zh) | 一种自动收集计算机集群节点信息并分析的方法及系统 | |
CN111090401B (zh) | 存储设备性能预测方法及装置 | |
US11907103B2 (en) | Test environment determination device and test environment determination method | |
US20210286647A1 (en) | Embedded persistent queue | |
CN116431498A (zh) | 性能测试方法及装置、电子设备和计算机可读存储介质 | |
US11852668B2 (en) | Method and system for real time outlier detection and product re-binning | |
Mesbahi et al. | Cloud dependability analysis: Characterizing Google cluster infrastructure reliability | |
CN109857629B (zh) | 一种扫描检测方法及装置 | |
CN110245166A (zh) | 数据核对方法及装置 | |
CN114138839A (zh) | 一种基于数据库路由的测试账号实现方法 | |
CN114911589A (zh) | 跨数据平台的融合计算方法、系统、终端及存储介质 | |
CN110648219B (zh) | 一种银行交易系统标准化输入区的方法和装置 | |
CN114637592A (zh) | 一种数据清分方法、装置、系统、电子设备及存储介质 | |
CN112783954A (zh) | 数据访问方法、装置及服务器 | |
CN110059071A (zh) | 基于存储过程的数据对比监控方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181113 |