CN114706922A - 数据导出方法、节点、服务器、系统、设备和存储介质 - Google Patents
数据导出方法、节点、服务器、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN114706922A CN114706922A CN202111301095.7A CN202111301095A CN114706922A CN 114706922 A CN114706922 A CN 114706922A CN 202111301095 A CN202111301095 A CN 202111301095A CN 114706922 A CN114706922 A CN 114706922A
- Authority
- CN
- China
- Prior art keywords
- data
- export
- exported
- node
- side server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000004044 response Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 238000009795 derivation Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000005192 partition Methods 0.000 claims 1
- 239000000126 substance Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 48
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Abstract
本申请实施例涉及数据处理技术领域,公开了一种数据导出方法、节点、服务器、数据库、设备和存储介质。应用于存储节点的数据导出方法,包括:接收管理节点的第一导出请求,所述第一导出请求携带待导出数据的主键信息;根据所述主键信息对所述待导出数据进行划分,得到若干数据分块;创建至少两个用于数据导出和上传的线程;根据创建的至少两个线程并行导出不同所述数据分块中的数据并上传至用户侧服务器,供所述用户侧服务器将接收到的数据合并发送给用户。能够快速地对待导出数据进行划分,并能够利用创建的多个线程并发快速地上传划分后的数据,使得数据导出效率提高,用户体验提升。
Description
技术领域
本申请实施例涉及数据处理技术领域,特别涉及一种数据导出方法、节点、服务器、系统、设备和存储介质。
背景技术
分布式数据库是基于计算机网络将物理上分散的多个存储数据的存储节点(DataBase,DB)连接起来组成的一个逻辑上统一的数据库,由于其具有存储量大、业务并发量高、可扩展性好的优点,故分布式数据库应用日益广泛,其中,为了保证分布式数据库的安全和便捷,通常会对分布式数据库中的数据进行备份、恢复和迁移等操作,不论是备份、恢复还是迁移,通常都依赖于数据导出。目前分布式数据库的数据导出功能基本是由各DB单线程全量导出,直至所有DB将自身存储的全部数据导出并上传至用户侧服务器之后,用户侧服务器才开始进行数据合并以及数据发送来实现。
然而,单线程导出数据往往耗时过长,严重影响了分布式数据库的数据导出性能,用户体验差。
发明内容
本申请实施例的主要目的在于提出一种数据导出方法、节点、服务器、系统、设备和存储介质,旨在实现能够快速地对待导出数据进行划分,并能够利用创建的多个线程并发快速地上传划分后的数据,使得数据导出效率提高,用户体验提升。
为实现上述目的,本申请实施例提供了一种数据导出方法,应用于存储节点,包括:接收管理节点的第一导出请求,所述第一导出请求携带待导出数据的主键信息;根据所述主键信息对所述待导出数据进行划分,得到若干数据分块;创建至少两个用于数据导出和上传的线程;根据创建的至少两个线程并行导出不同所述数据分块中的数据并上传至用户侧服务器,供所述用户侧服务器将接收到的数据合并发送给用户。
为实现上述目的,本申请实施例还提供了一种数据导出方法,应用于管理节点,包括:接收用户侧服务器发送的第二导出请求,所述第二导出请求携带所述管理节点所在的分布式数据库中所有待导出数据的指示信息;获取各个存储节点的元数据信息;根据所述存储节点的元数据信息和所述指示信息确定需要进行数据导出的所述存储节点作为目标节点并生成相应的第一导出请求,所述第一导出请求携带对应目标节点的所述待导出数据的主键信息;将所述第一导出请求发送给对应的所述目标节点,供所述目标节点根据接收到的所述第一导出请求进行数据导出。
为实现上述目的,本申请实施例还提供了一种数据导出方法,应用于用户侧服务器,包括:接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据,其中,所述数据分块根据待导出数据的主键信息划分得到;对当前已接收的所述数据分块中的数据进行合并,直到合并完所有所述数据分块中的数据;将合并后的数据发送给用户。
为实现上述目的,本申请实施例还提出了一种存储节点,包括:第一接收模块,用于接收管理节点的第一导出请求,所述第一导出请求携带待导出数据的主键信息;划分模块,用于根据所述主键信息对所述待导出数据进行划分,得到若干数据分块;创建模块,用于创建至少两个用于数据导出和上传的线程;数据导出模块,用于根据创建的至少两个线程并行导出不同所述数据分块中的数据并上传至用户侧服务器,供所述用户侧服务器将接收到的数据合并发送给用户。
为实现上述目的,本申请实施例还提出了一种管理节点,包括:第二接收模块,用于接收用户侧服务器发送的第二导出请求,所述第二导出请求携带所述管理节点所在的分布式数据库中所有待导出数据的指示信息;获取模块,用于获取各个存储节点的元数据信息;生成模块,用于根据所述存储节点的元数据信息和所述指示信息确定需要进行数据导出的所述存储节点作为目标节点并生成相应的第一导出请求,所述第一导出请求携带对应目标节点的所述待导出数据的主键信息;第一发送模块,用于将所述第一导出请求发送给对应的所述目标节点,供所述目标节点根据接收到的所述第一导出请求进行数据导出。
为实现上述目的,本申请实施例还提出了一种服务器,包括:第三接收模块,用于接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据,其中,所述数据分块根据待导出数据的主键信息划分得到;合并模块,用于对当前已接收的所述数据分块中的数据进行合并,直到合并完所有所述数据分块中的数据;第二发送模块,用于将合并后的数据发送给用户。
为实现上述目的,本申请实施例还提出了一种数据库系统,包括:一个如上所述的管理节点和若干如上所述的存储节点。
为实现上述目的,本申请实施例还提出了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的数据导出方法。
为实现上述目的,本申请实施例还提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据导出方法。
本申请实施例提出的数据导出方法,在用户通过用户侧服务器和数据库中的管理节点向数据库中相应的存储节点发送导出请求,接收到导出请求的存储节点根据导出请求中携带的主键信息对待导出数据进行划分,得到若干数据分块,由于主键信息是对本存储节点的待导出数据的完整和准确的描述,因此,根据主键信息能够快速准确地对待导出数据进行划分,接着,在创建了至少两个用于数据导出和上传地线程后,根据创建的至少两个线程并行导出不同数据分块中的数据并上传至用户侧服务器,供用户侧服务器将接收到的数据合并发送给用户,实现将原有的单线程导出变为多线程导出,使得数据导出效率提高,用户体验提升。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是本申请一实施例中提供的数据导出方法的流程图;
图2是本申请另一实施例中提供的包括接收用户侧服务器发送的第二导出请求步骤的数据导出方法的流程图;
图3是本申请另一实施例中提供的包括接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据步骤的数据导出方法的流程图;
图4是本申请另一实施例中提供的存储节点的结构示意图;
图5是本申请另一实施例中提供的管理节点的结构示意图;
图6是本申请另一实施例中提供的用户侧服务器的结构示意图;
图7是本申请另一实施例中提供的分布式数据库系统的结构示意图;
图8是本申请另一实施例中提供的电子设备的结构示意图。
具体实施方式
由背景技术可知,当前从分布式数据库的多个存储节点导出数据时采用的时单线程导出方式,但是耗时过长,严重影响了分布式数据库的数据导出性能,用户体验差。
为解决上述问题,本申请实施例提供了一种数据导出方法,应用于存储节点,包括:接收管理节点的第一导出请求,所述第一导出请求携带待导出数据的主键信息;根据所述主键信息对所述待导出数据进行划分,得到若干数据分块;创建至少两个用于数据导出和上传的线程;根据创建的至少两个线程并行导出不同所述数据分块中的数据并上传至用户侧服务器,供所述用户侧服务器将接收到的数据合并发送给用户。
本申请实施例提出的数据导出方法,在用户通过用户侧服务器和数据库中的管理节点向数据库中相应的存储节点发送导出请求,接收到导出请求的存储节点根据导出请求中携带的主键信息对待导出数据进行划分,得到若干数据分块,由于主键信息是对本存储节点的待导出数据的完整和准确的描述,因此,根据主键信息能够快速准确地对待导出数据进行划分,接着,在创建了至少两个用于数据导出和上传地线程后,根据创建的至少两个线程并行导出不同数据分块中的数据并上传至用户侧服务器,供用户侧服务器将接收到的数据合并发送给用户,实现将原有的单线程导出变为多线程导出,使得数据导出效率提高,用户体验提升。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本申请实施例一方面提供了一种数据导出方法,应用于存储节点,其中,存储节点可以是任何一种分布式数据中的任一用于存储数据的节点,如图1所示,数据导出方法包括:
步骤101,接收管理节点的第一导出请求,第一导出请求携带待导出数据的主键信息。
本实施例中,主键信息为待导出数据在数据表中的主键,其中,主键是指数据表中的一个列或多列的组合,其值能唯一地标识表中的每一行,如一个统计列表中的第一列描述每一行的信息类型,即第一列即为给统计表中数据的主键信息。
步骤102,根据主键信息对待导出数据进行划分,得到若干数据分块。
本实施例中,根据主键信息进行划分可以通过如下方式实现:根据主键信息确定待导出数据在数据表中所占行数;根据行数和预设并行条件对待导出数据进行划分,得到数据分块,预设并行条件包括预设线程数量阈值或预设并行发送时间阈值。
在一个例子中,预设并行条件为至多同时创建4个线程,可以将待传输数据划分成4的整倍数个数据分块,如根据主键信息确定该列的最小ID值为0000,最大ID值为9999,根据主键信息确定出待导出数据有10000行,将其平均分为4份,即0000-2499行中的数据为一个数据分块,2500-4999行中的数据为一个数据分块,5000-7499行中的数据为一个数据分块以及7500-9999行中的数据为一个数据分块,或者,将其平均划分为8份,即0000-1249行中的数据为一个数据分块,1250-2499行中的数据为一个数据分块,2500-3749行中的数据为一个数据分块,3750-4999行中的数据为一个数据分块,5000-6249行中的数据为一个数据分块,6250-7499行中的数据为一个数据分块,7500-8749行中的数据为一个数据分块,8750-9999。
在另一个例子中,预设并行条件为每个数据表至多需要时长t传输,假设某个数据表中的一行数据传输时间为t1,根据t和t1确定最大数据分块的数据行数为m,m为正整数,将数据表以m为步长进行划分,最后不满m行的数据作为一个数据分块。
当然,以上仅为具体的举例说明,预设并行条件还可以是总的数据导出时长等,相应地,划分方式可能会有所不同,此处就不再一一赘述了。
值得一提的是,存储节点或用户可能有各自的需求,如存储节点中能够用于数据导出的资源比较有限可能最多只能支持创建两个线程、用户的等待时间不能超过一定时长等,这些需求在划分时能够通过预设并行条件来体现,从而按照实际需求进行划分,能够提升用户体验,避免系统资源不能支持当前的划分等。
步骤103,创建至少两个用于数据导出和上传的线程。
步骤104,根据创建的至少两个线程并行导出不同数据分块中的数据并上传至用户侧服务器,供用户侧服务器将接收到的数据合并发送给用户。
在一个例子中,基于创建的n个线程同时导出n个数据分块的数据,直到所有数据分块中的数据均被导出,n为创建的线程的数量;根据导出的各个数据分块的数据生成若干个数据文件并将数据文件上传至用户侧服务器预设存储空间。
值得一提的是,存储节点直接将待导出数据组成的若干数据文件上传至用户侧服务器存储空间中,从而用户侧服务器在使用待导出数据时可以直接访问预设存储空间,不需要用户侧服务器和存储节点之间进行繁琐复杂的交互,即基于用户侧服务器和存储节点构建生产者消费者模型,对于数据库中包含的多存储节点而言,即构建了多生产者单消费者模型,实现分布式数据库导出数据的过程中对数据导出过程和合并过程的解耦并发,提高了处理效率。
进一步,第一导出请求还可以携带待导出数据的指定数据格式,在此情况下,根据创建的至少两个线程并行导出数据分块中的数据并上传至用户侧服务器之前,数据导出方法还包括:将待导出数据转换为指定数据格式的数据;根据创建的至少两个线程并行导出数据分块中的数据并上传至用户侧服务器,包括:根据所述创建的至少两个线程并行导出所述数据分块中格式转换后的数据并上传至所述用户侧服务器。即将待导出数据以期望的数据格式导出。
进一步地,为了便于用户侧服务器了解数据导出情况,在根据创建的至少两个线程并行导出不同数据分块中的数据并上传至用户侧服务器之后,数据导出方法还包括:向管理节点发送导出响应,供管理节点通知用户侧服务器对预设存储空间中的数据文件合并。当然,待导出数据不论是否以数据文件的形式存储到预设存储空间,还是以其他方式传输给用户侧服务器,存储节点都可以通过发送给管理节点的导出响应,通知用户侧服务器进行数据合并。
本申请实施例另一方面还提供了一种数据导出方法,应用于管理节点,其中,管理节点可以是任何一种分布式数据中的用于管理各个存储节点的节点,如图2所示,数据导出方法包括:
步骤201,接收用户侧服务器发送的第二导出请求,第二导出请求携带管理节点所在的分布式数据库中所有待导出数据的指示信息。
本实施例中,对于管理节点而言,第二导出请求所请求的待导出数据是对管理节点所在的数据库而言的,或者说,第二导出请求所请求的待导出数据是管理节点的一个或多个存储节点的待导出数据的总和。
步骤202,获取各个存储节点的元数据信息。
在一个例子中,元数据信息存储在管理节点所在的数据库的元数据服务模块(或节点),因此,获取元数据信息可以通过访问元数据服务模块(或节点)的方式实现。
步骤203,根据存储节点的元数据信息和指示信息确定需要进行数据导出的存储节点作为目标节点并生成相应的第一导出请求,第一导出请求携带对应目标节点的待导出数据的主键信息。
本实施例中,存储节点的元数据信息反映了该存储节点中所存储的数据的信息,因此,可以根据指示信息在元数据信息中进行匹配等操作来确定哪些存储节点需要导出数据,即确定目标节点。
需要说明的是,由于生成的第一导出请求中需要携带主键信息,因此,在生成第一导出请求之前需要获取主键信息,需要强调的是,获取的主键信息是对应存储节点中需要导出的数据的主键信息。获取主键信息的方式可以是:在第二导出请求中携带管理节点所属数据库的所有待导出数据的主键信息的情况下,确定各个目标节点对应的主键信息,以根据该主键信息生成发送给对应目标节点的第一导出请求;或者,在确定各个目标节点时还根据元数据信息确定对应目标节点的待导出数据的主键信息,以根据该主键信息生成发送给对应目标节点的第一导出请求。当然,以上仅为具体的举例说明,主键信息的获取方法还可以是通过其他方式实现,此处就不再一一赘述了。
步骤204,将第一导出请求发送给对应的目标节点,供目标节点根据接收到的第一导出请求进行数据导出。
进一步地,将第一导出信息发送给对应的目标节点之后,数据导出方法还包括:接收目标节点发送的导出响应;将导出响应转发至用户侧服务器,以通知用户侧服务器进行数据合并。
在一个例子中,每接收到一个目标节点发送的导出响应后,就转发给用户侧服务器。
在另一个例子中,每接收到一个目标节点发送的导出响应后,就转发给用户侧服务器,其中,在确定接收到所有目标节点发送的最后一个导出响应后,还同时发送导出结束的响应给用户侧服务器。可以理解的是,管理节点在确定目标节点时,能够确定等待接收到的导出响应的数量,进而可以根据接收到的导出响应是否达到该数量来确定是否为所有目标节点发送的最后一个导出响应。
当然,以上仅为具体的举例说明,实际在接收目标节点发送的导出响应之后,还可以扽等到所有目标节点发送的最后一个导出响应后
本申请实施例另一方面还提供了一种数据导出方法,应用于用户侧服务器,如图3所示,数据导出方法包括:
步骤301,接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据,其中,数据分块根据待导出数据的主键信息划分得到。
在一个例子中,接收到的数据分块中的数据是存储节点以数据文件的形式上传的,用户从服务器将接收到的若干数据文件存储在预设存储空间,预设存储空间可以通过一个预设文件目录进行管理,每当用户侧服务器接收到一个数据文件,预设文件目录中将会新增该数据文件的文件名,每当用户侧服务器从预设存储空间中取出一个数据文件,预设文件目录中将会减少该数据文件的文件名。
当然,接收到数据或数据文件还可以不存储在预设存储空间中,此时,用户侧服务器就需要确定一个上述的预设文件目录,用于管理接收到的数据和数据文件,特别地,预设文件目录需要含有路径名或存储地址以便用户侧服务器获取存储的数据或数据文件,从而用户侧服务器可以通过对预设文件目录进行维护的方式实现对接收到的数据或数据文件的管理。
进一步地,接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据之前,数据导出方法还包括:接收用户发送的第三导出请求,第三导出请求携带校验信息、数据库信息和数据表信息;在根据校验信息通过权限校验的情况下,获取各个数据库的元数据信息;根据数据库的元数据信息、数据库信息和数据表信息确定需要进行数据导出的目标数据库,并生成与目标数据库对应的第二导出请求;将第二导出请求发送给目标数据库的管理节点,供管理节点通知存储节点进行数据导出和上传。其中,确定数据库和生成第二导出请求的步骤与应用于管理节点的数据导出方法中的步骤203类似,此处就不再一一赘述了。
需要说明的是,用户侧服务器可以对应多个数据库,即用户通过用户侧服务器可以请求导出若干不同的数据库中的数据。
还需要说明的是,各个数据库均具有各自的元数据信息,其中,元数据信息可以存储在数据库的元数据服务模块(或节点),用户侧服务器通过访问数据库的元数据服务模块(或节点)获取数据库的元数据信息。特别地,数据库的元数据服务模块(或节点)还可以承担权限校验,即鉴权的任务,也就是说,用户侧服务器在接收到用户发送的第三导出请求之后,还可以将第三导出请求或者第三导出请求中携带的可用于鉴权的信息转发至数据库的元数据服务模块(或节点),以便数据库的元数据服务模块(或节点)进行鉴权。
特别地,在用户需要进行数据导出时,可以在用户侧服务器提供的用户交互界面上,如手机上安装的应用界面,通过勾选等操作确定待导出数据,以生成第三导出请求,其中,界面上呈现的关于各个数据库、数据表等的信息可以是通过外部业务系统提供的或访问元数据服务模块(或节点)获取的。
步骤302,对当前已接收的数据分块中的数据进行合并,直到合并完所有数据分块中的数据。
在一个例子中,对当前已接收的数据分块中的数据进行合并,包括:从预设存储空间中获取当前已接收的数据文件;对数据文件进行合并。
在另一个例子中,对当前已接收的数据分块中的数据进行合并,直到合并完所有数据分块中的数据,包括:不断接收管理节点返回的导出响应,以根据导出响应对当前已接收的数据分块中的数据进行合并,直到接收管理节点返回的导出完成响应。
特别地,用户侧服务器还可能接收到管理节点发送的导出结束响应,从而确定导出的状态或进度。
步骤303,将合并后的数据发送给用户。
在一个例子中将合并后的数据打包后发送给用户。
此外,应当理解的是,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例另一方面还提供了一种存储节点,如图4所示,包括:
第一接收模块401,用于接收管理节点的第一导出请求,第一导出请求携带待导出数据的主键信息。
划分模块402,用于根据主键信息对待导出数据进行划分,得到若干数据分块。
创建模块403,用于创建至少两个用于数据导出和上传的线程。
数据导出模块404,用于根据创建的至少两个线程并行导出不同数据分块中的数据并上传至用户侧服务器,供用户侧服务器将接收到的数据合并发送给用户。
不难发现,本实施例为与应用于存储节点的方法实施例相对应的节点实施例,本实施例可与应用于存储节点的方法实施例互相配合实施。应用于存储节点的方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在应用于存储节点的方法实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本申请实施例另一方面还提供了一种管理节点,如图5所示,包括:
第二接收模块501,用于接收用户侧服务器发送的第二导出请求,第二导出请求携带管理节点所在的分布式数据库中所有待导出数据的指示信息。
获取模块502,用于获取各个存储节点的元数据信息。
生成模块503,用于根据存储节点的元数据信息和指示信息确定需要进行数据导出的存储节点作为目标节点并生成相应的第一导出请求,第一导出请求携带对应目标节点的待导出数据的主键信息。
第一发送模块504,用于将第一导出请求发送给对应的目标节点,供目标节点根据接收到的第一导出请求进行数据导出。
不难发现,本实施例为与应用于管理节点的方法实施例相对应的节点实施例,本实施例可与应用于管理节点的方法实施例互相配合实施。应用于管理节点的方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在应用于管理节点的方法实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本申请实施例另一方面还提供了一种服务器,如图6所示,包括:
第三接收模块601,用于接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据,其中,所述数据分块根据待导出数据的主键信息划分得到。
合并模块602,用于对当前已接收的所述数据分块中的数据进行合并,直到合并完所有所述数据分块中的数据。
第二发送模块603,用于将合并后的数据发送给用户。
不难发现,本实施例为与应用于用户侧服务器的方法实施例相对应的服务器实施例,本实施例可与应用于用户侧服务器的方法实施例互相配合实施。应用于用户侧服务器的方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在应用于用户侧服务器的方法实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本申请实施例另一方面还提供了一种分布式数据库系统,如图7所示,包括:一个管理节点701和若干存储节点702。
其中,管理节点包括:第一接收模块,用于接收管理节点的第一导出请求,第一导出请求携带待导出数据的主键信息;划分模块,用于根据主键信息对待导出数据进行划分,得到若干数据分块;创建模块,用于创建至少两个用于数据导出和上传的线程;数据导出模块,用于根据创建的至少两个线程并行导出不同数据分块中的数据并上传至用户侧服务器,供用户侧服务器将接收到的数据合并发送给用户。存储节点包括:第二接收模块,用于接收用户侧服务器发送的第二导出请求,第二导出请求携带管理节点所在的分布式数据库中所有待导出数据的指示信息;获取模块,用于获取各个存储节点的元数据信息;生成模块,用于根据存储节点的元数据信息和指示信息确定需要进行数据导出的存储节点作为目标节点并生成相应的第一导出请求,第一导出请求携带对应目标节点的待导出数据的主键信息;第一发送模块,用于将第一导出请求发送给对应的目标节点,供目标节点根据接收到的第一导出请求进行数据导出。
特别地,管理节点和各个存储节点之间通过通信连接。
不难发现,本实施例为与存储节点实施例和管理节点实施例相对应的系统实施例,本实施例可与存储节点实施例和管理节点实施例互相配合实施。存储节点实施例和管理节点实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在存储节点实施例和管理节点实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本申请实施例另一方面还提供了一种电子设备,如图8所示,包括:至少一个处理器801;以及,与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,指令被至少一个处理器801执行,以使至少一个处理器801能够执行上述任一方法实施例所描述的数据导出方法。
其中,存储器802和处理器801采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器801和存储器802的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器801处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传输给处理器801。
处理器801负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器802可以被用于存储处理器801在执行操作时所使用的数据。
本申请实施例另一方面还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述任一方法实施例所描述的数据导出方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (17)
1.一种数据导出方法,其特征在于,应用于存储节点,包括:
接收管理节点的第一导出请求,所述第一导出请求携带待导出数据的主键信息;
根据所述主键信息对所述待导出数据进行划分,得到若干数据分块;
创建至少两个用于数据导出和上传的线程;
根据创建的至少两个线程并行导出不同所述数据分块中的数据并上传至用户侧服务器,供所述用户侧服务器将接收到的数据合并发送给用户。
2.根据权利要求1所述的数据导出方法,其特征在于,所述根据所述主键信息对所述待导出数据进行划分,得到若干数据分块,包括:
根据所述主键信息确定所述待导出数据在数据表中所占行数;
根据所述行数和预设并行条件对所述待导出数据进行划分,得到所述数据分块,所述预设并行条件包括预设线程数量阈值或预设并行发送时间阈值。
3.根据权利要求1所述的数据导出方法,其特征在于,所述根据创建的至少两个线程并行导出所述数据分块中的数据并上传至用户侧服务器,包括:
基于创建的n个线程同时导出n个所述数据分块的数据,直到所有所述数据分块中的数据均被导出,n为创建的线程的数量;
根据导出的各个所述数据分块的数据生成若干个数据文件并将所述数据文件上传至所述用户侧服务器预设存储空间。
4.根据权利要求1至3中任一项所述的数据导出方法,其特征在于,所述根据各个所述数据分块导出的数据生成若干个数据文件之后,所述方法还包括:
向所述管理节点发送导出响应,供所述管理节点通知所述用户侧服务器对所述待导出数据合并。
5.根据权利要求1所述的数据导出方法,其特征在于,所述第一导出请求还携带所述待导出数据的指定数据格式,所述根据创建的至少两个线程并行导出所述数据分块中的数据并上传至用户侧服务器之前,所述方法还包括:
将所述待导出数据转换为所述指定数据格式的数据;
所述根据创建的至少两个线程并行导出所述数据分块中的数据并上传至用户侧服务器,包括:
根据所述创建的至少两个线程并行导出所述数据分块中格式转换后的数据并上传至所述用户侧服务器。
6.一种数据导出方法,其特征在于,应用于管理节点,包括:
接收用户侧服务器发送的第二导出请求,所述第二导出请求携带所述管理节点所在的分布式数据库中所有待导出数据的指示信息;
获取各个存储节点的元数据信息;
根据所述存储节点的元数据信息和所述指示信息确定需要进行数据导出的所述存储节点作为目标节点并生成相应的第一导出请求,所述第一导出请求携带对应目标节点的所述待导出数据的主键信息;
将所述第一导出请求发送给对应的所述目标节点,供所述目标节点根据接收到的所述第一导出请求进行数据导出。
7.根据权利要求6所述的数据导出方法,其特征在于,所述将所述第一导出信息发送给对应的所述目标节点之后,所述方法还包括:
接收所述目标节点发送的导出响应;
将所述导出响应转发至所述用户侧服务器,以通知所述用户侧服务器进行数据合并。
8.一种数据导出方法,其特征在于,应用于用户侧服务器,包括:
接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据,其中,所述数据分块根据待导出数据的主键信息划分得到;
对当前已接收的所述数据分块中的数据进行合并,直到合并完所有所述数据分块中的数据;
将合并后的数据发送给用户。
9.根据权利要求8所述的数据导出方法,其特征在于,所述接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据之前,所述方法还包括:
接收用户发送的第三导出请求,所述第三导出请求携带校验信息、数据库信息和数据表信息;
在根据所述校验信息通过权限校验的情况下,获取各个数据库的元数据信息;
根据所述数据库的元数据信息、所述数据库信息和所述数据表信息确定需要进行数据导出的目标数据库,并生成与所述目标数据库对应的第二导出请求;
将所述第二导出请求发送给所述目标数据库的管理节点,供所述管理节点通知存储节点进行数据导出和上传。
10.根据权利要求8所述的数据导出方法,其特征在于,每个所述数据分块中的数据均以数据文件的形式存储在预设存储空间,所述对当前已接收的所述数据分块中的数据进行合并,包括:
从所述预设存储空间中获取当前已接收的所述数据文件;
对所述数据文件进行合并。
11.根据权利要求8所述的数据导出方法,其特征在于,所述对当前已接收的所述数据分块中的数据进行合并,直到合并完所有所述数据分块中的数据,包括:
不断接收所述管理节点返回的导出响应,以根据所述导出响应对当前已接收的所述数据分块中的数据进行合并,直到接收所述管理节点返回的导出完成响应。
12.一种存储节点,其特征在于,包括:
第一接收模块,用于接收管理节点的第一导出请求,所述第一导出请求携带待导出数据的主键信息;
划分模块,用于根据所述主键信息对所述待导出数据进行划分,得到若干数据分块;
创建模块,用于创建至少两个用于数据导出和上传的线程;
数据导出模块,用于根据创建的至少两个线程并行导出不同所述数据分块中的数据并上传至用户侧服务器,供所述用户侧服务器将接收到的数据合并发送给用户。
13.一种管理节点,其特征在于,包括:
第二接收模块,用于接收用户侧服务器发送的第二导出请求,所述第二导出请求携带所述管理节点所在的分布式数据库中所有待导出数据的指示信息;
获取模块,用于获取各个存储节点的元数据信息;
生成模块,用于根据所述存储节点的元数据信息和所述指示信息确定需要进行数据导出的所述存储节点作为目标节点并生成相应的第一导出请求,所述第一导出请求携带对应目标节点的所述待导出数据的主键信息;
第一发送模块,用于将所述第一导出请求发送给对应的所述目标节点,供所述目标节点根据接收到的所述第一导出请求进行数据导出。
14.一种服务器,其特征在于,包括:
第三接收模块,用于接收存储节点通过至少两个线程并行导出和上传的不同数据分块中的数据,其中,所述数据分块根据待导出数据的主键信息划分得到;
合并模块,用于对当前已接收的所述数据分块中的数据进行合并,直到合并完所有所述数据分块中的数据;
第二发送模块,用于将合并后的数据发送给用户。
15.一种分布式数据库系统,其特征在于,包括:一个如权利要求13所述的管理节点和若干如权利要求12所述的存储节点。
16.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任意一项所述数据导出方法,或者,执行如权利要求6至7中任意一项所述数据导出方法,或者,执行如权利要求8至11中任意一项所述数据导出方法。
17.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的数据导出方法,或者,实现如权利要求6至7中任意一项所述数据导出方法,或者,实现如权利要求8至11中任意一项所述数据导出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111301095.7A CN114706922A (zh) | 2021-11-04 | 2021-11-04 | 数据导出方法、节点、服务器、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111301095.7A CN114706922A (zh) | 2021-11-04 | 2021-11-04 | 数据导出方法、节点、服务器、系统、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706922A true CN114706922A (zh) | 2022-07-05 |
Family
ID=82167180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111301095.7A Pending CN114706922A (zh) | 2021-11-04 | 2021-11-04 | 数据导出方法、节点、服务器、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706922A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016115A (zh) * | 2017-04-18 | 2017-08-04 | 网易(杭州)网络有限公司 | 数据导出方法、装置、计算机可读存储介质及电子设备 |
CN110019469A (zh) * | 2017-12-07 | 2019-07-16 | 中兴通讯股份有限公司 | 分布式数据库数据处理方法、装置、存储介质及电子装置 |
CN110929131A (zh) * | 2019-10-12 | 2020-03-27 | 中国平安财产保险股份有限公司 | 数据导出方法、装置、设备及存储介质 |
EP3751427A1 (en) * | 2019-06-13 | 2020-12-16 | Palantir Technologies Inc. | Rules-based dataset cleaning |
CN112395337A (zh) * | 2019-08-12 | 2021-02-23 | 北京京东振世信息技术有限公司 | 一种数据导出方法和装置 |
-
2021
- 2021-11-04 CN CN202111301095.7A patent/CN114706922A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016115A (zh) * | 2017-04-18 | 2017-08-04 | 网易(杭州)网络有限公司 | 数据导出方法、装置、计算机可读存储介质及电子设备 |
CN110019469A (zh) * | 2017-12-07 | 2019-07-16 | 中兴通讯股份有限公司 | 分布式数据库数据处理方法、装置、存储介质及电子装置 |
EP3751427A1 (en) * | 2019-06-13 | 2020-12-16 | Palantir Technologies Inc. | Rules-based dataset cleaning |
CN112395337A (zh) * | 2019-08-12 | 2021-02-23 | 北京京东振世信息技术有限公司 | 一种数据导出方法和装置 |
CN110929131A (zh) * | 2019-10-12 | 2020-03-27 | 中国平安财产保险股份有限公司 | 数据导出方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
董越等: "EMS中公共信息模型导入/导出技术", 《电力系统自动化》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017167171A1 (zh) | 一种数据操作方法,服务器及存储系统 | |
CN103095687B (zh) | 元数据处理方法及装置 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN109739435B (zh) | 文件存储和更新方法及装置 | |
CN112130748A (zh) | 一种数据访问方法、网卡及服务器 | |
EP3480686A1 (en) | Data processing method, cluster manager, resource manager and data processing system | |
CN103631666A (zh) | 数据冗余容错的适配管理设备、服务设备、系统及方法 | |
CN113051102B (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN103905512A (zh) | 一种数据处理方法和设备 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN107547605B (zh) | 一种基于节点队列的消息读写方法及节点设备 | |
US20200081869A1 (en) | File storage method and storage apparatus | |
CN105491082A (zh) | 远程资源访问方法和交换设备 | |
CN113535666A (zh) | 数据写入方法及装置、数据库系统、存储介质 | |
CN114706922A (zh) | 数据导出方法、节点、服务器、系统、设备和存储介质 | |
CN108108473B (zh) | 数据查询方法以及服务器 | |
CN107305581B (zh) | 分布式数据库系统中的表连接方法及分布式数据库系统 | |
CN114490189A (zh) | 一种云平台数据库备份方法、装置、电子设备及存储介质 | |
CN105389218A (zh) | 一种服务器机柜处理bios信息的方法及节点 | |
CN112035413A (zh) | 元数据信息查询方法、装置及存储介质 | |
EP3709173A1 (en) | Distributed information memory system, method, and program | |
CN114328604B (zh) | 一种提高集群数据采集能力的方法、装置及介质 | |
CN116991333B (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: 20220705 |