CN117389747B - 分布式数据库的数据共享方法、电子设备和存储介质 - Google Patents
分布式数据库的数据共享方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117389747B CN117389747B CN202311685525.9A CN202311685525A CN117389747B CN 117389747 B CN117389747 B CN 117389747B CN 202311685525 A CN202311685525 A CN 202311685525A CN 117389747 B CN117389747 B CN 117389747B
- Authority
- CN
- China
- Prior art keywords
- data
- calculation
- virtual
- nodes
- computing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 239000012634 fragment Substances 0.000 claims abstract description 202
- 238000004364 calculation method Methods 0.000 claims abstract description 187
- 238000009826 distribution Methods 0.000 claims abstract description 47
- 230000006870 function Effects 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 9
- 238000005457 optimization Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000007670 refining Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种分布式数据库的数据共享方法、电子设备和存储介质,涉及数据库领域。该方法包括获取多个待分配数据,对各个所述待分配数据进行分片,得到多个数据分片;基于各个所述数据分片确定多个数据分组;获取多个计算节点,对各个所述计算节点进行分组,得到多个虚拟计算数仓;基于各个所述数据分组与各个虚拟计算数仓的对应的关系,确定各个所述数据分片对应的数据分片计算副本;基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点。本申请实施例能够提升读写数据吞吐量,进而提高性能,实现高效并行访问共享远程存储。
Description
技术领域
本申请涉及数据库技术领域,具体涉及一种分布式数据库的数据共享方法、电子设备和存储介质。
背景技术
传统数据库的数据存储在本地磁盘上,当计算能力成为瓶颈后,由于计算所需的数据存储于原机器上,简单的新增机器并不能解决问题,还需要对数据做迁移并且其架构上支持分布式,才有可能通过新增机器的方式解决瓶颈。新增机器需要花费较高的成本,随着云计算的进展,通过分布式存储提供了高可用低成本的存储共享办法,使得多节点共享访问同一份远程数据成为可能。当多节点并行访问共享存储成为可能后,虽然实现了存储与计算解耦,但是也存在着读写数据延迟,导致性能下降的问题。
发明内容
本申请提供了一种分布式数据库的数据共享方法、电子设备和存储介质,能够提升读写数据吞吐量,进而提高性能,实现高效并行访问共享远程存储。
本申请实施例的技术方案如下:
第一方面,本申请实施例提供了一种分布式数据库的数据共享方法,所述方法包括:
获取多个待分配数据,对各个所述待分配数据进行分片,得到多个数据分片;
基于各个所述数据分片确定多个数据分组;
获取多个计算节点,对各个所述计算节点进行分组,得到多个虚拟计算数仓;
基于各个所述数据分组与各个虚拟计算数仓的对应的关系,确定各个所述数据分片对应的数据分片计算副本;
基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点。
在上述技术方案中,首先获取多个待分配数据,对各个待分配数据进行分片,得到多个数据分片,将待分配数据进行切分细化,同时兼容数据间的逻辑关系,以便后续进行高效计算;基于各个数据分片确定多个数据分组;获取多个计算节点,对各个计算节点进行分组,得到多个虚拟计算数仓,对计算节点进行切分细化,以便进行协同计算,提升读写数据吞吐量;基于各个数据分组与各个虚拟计算数仓的对应的关系,确定各个数据分片对应的数据分片计算副本;基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,基于数据分组和虚拟计算数仓进行调度,能够充分调动整体的资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能,实现高效并行访问共享远程存储。
在本申请的一些实施例中,所述数据分组包括亲和数据分组;
在所述数据分片对应的数据分片计算副本为单个,所述虚拟计算数仓的个数为单个的情况下,所述基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
判断所述数据分片是否属于所述亲和数据分组,得到第一判断结果;
在所述第一判断结果为所述数据分片属于所述亲和数据分组的情况下,选择所述虚拟计算数仓中相同的计算节点,得到所述共享分配节点。
在上述技术方案中,在数据分片对应的数据分片计算副本为单个,虚拟计算数仓的个数为单个的情况下,先判断数据分片是否属于亲和数据分组,在数据分片属于亲和数据分组的情况下,选择相同的计算节点,有利于减少读写次数,提高数据读写,进而提升性能。
在本申请的一些实施例中,所述数据分组还包括散列数据分组;
在所述判断所述数据分片是否属于所述亲和数据分组,得到第一判断结果之后,所述方法还包括:
在所述第一判断结果为所述数据分片不属于所述亲和数据分组的情况下,判断所述数据分片是否属于所述散列数据分组,得到第二判断结果;
在所述第二判断结果为所述数据分片属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点拥有所述散列数据分组中所述数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓中拥有所述散列数据分组的计算节点,得到所述共享分配节点;
在所述第二判断结果为所述数据分片不属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点当前数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓的计算节点,得到所述共享分配节点。
在上述技术方案中,在数据分片不属于亲和数据分组的情况下,判断数据分片是否属于散列数据分组,根据是否属于数据散列数据分组,利用预设的选择函数选择拥有散列数据分组的计算节点,使得能够充分调动资源,实现高效并行计算。
在本申请的一些实施例中,在所述数据分片对应的数据分片计算副本为多个,所述虚拟计算数仓的个数为单个的情况下,基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第三判断结果;
在所述第三判断结果为存在所述数据分片计算副本的情况下,将存在所述数据分片计算副本对应的计算节点从所述虚拟计算数仓中删除,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到第四判断结果;
在所述第三判断结果为不存在所述数据分片计算副本的情况下,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到所述第四判断结果;
在所述第四判断结果为所述数据分片属于所述亲和数据分组的情况下,选择所述虚拟计算数仓中相同的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述第四判断结果为所述数据分片不属于所述亲和数据分组的情况下,判断所述数据分片是否属于所述数据分组中的散列数据分组,在所述数据分片属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点拥有所述散列数据分组中所述数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓中拥有所述散列数据分组的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述数据分片不属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有节点当前数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓的计算节点,得到单个所述数据分片计算副本对应的分配节点;
判断是否存在所述数据分片计算副本未分配,得到第五判断结果;
在所述第五判断结果为不存在所述数据分片计算副本未分配,得到所述共享分配节点。
在上述技术方案中,在数据分片对应的数据分片计算副本为多个,虚拟计算数仓的个数为单个的情况下,先判断虚拟计算数仓的计算节点是否存在数据分片计算副本,得到第三判断结果,然后再判断数据分片是否属于亲和数据分组,在数据分片不属于亲和数据分组的情况下,判断数据分片是否属于散列数据分组,根据是否属于数据散列数据分组,利用预设的选择函数选择计算节点,使得能够充分调动资源,实现高效并行计算。
在本申请的一些实施例中,在所述判断是否存在所述数据分片计算副本未分配,得到第五判断结果之后,所述方法还包括:
在所述第五判断结果为存在所述数据分片计算副本未分配,执行判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第三判断结果,直至所有所述数据分片计算副本不存在未分配,得到所述共享分配节点。
在上述技术方案中,判断是否具有未分配的数据分片计算副本,使得所有数据分片计算副本均已分配,得到共享分配节点,使得能够充分调动资源,实现高效并行计算。
在本申请的一些实施例中,在所述数据分片对应的数据分片计算副本为多个,所述虚拟计算数仓的个数为多个的情况下,基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
在每一个所述虚拟计算数仓中,判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第六判断结果;
在所述第六判断结果为存在所述数据分片计算副本的情况下,将存在所述数据分片计算副本对应的计算节点从所述虚拟计算数仓中删除,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到第七判断结果;
在所述第六判断结果为不存在所述数据分片计算副本的情况下,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到所述第七判断结果;
在所述第七判断结果为所述数据分片属于所述亲和数据分组的情况下,选择所述虚拟计算数仓中相同的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述第七判断结果为所述数据分片不属于所述亲和数据分组的情况下,判断所述数据分片是否属于所述数据分组中的散列数据分组,在所述数据分片属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点拥有所述散列数据分组中所述数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓中拥有所述散列数据分组的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述数据分片不属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有节点当前数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓的计算节点,得到单个所述数据分片计算副本对应的分配节点;
判断是否存在所述数据分片计算副本未分配,得到第八判断结果;
在所述第八判断结果为不存在所述数据分片计算副本未分配,得到单个所述虚拟计算数仓的共享分配节点;
在所述第八判断结果为存在所述数据分片计算副本未分配,执行判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第六判断结果,直至所有所述数据分片计算副本不存在未分配,得到单个所述虚拟计算数仓的共享分配节点;
根据各个所述虚拟计算数仓的共享分配节点,得到所有所述虚拟计算数仓的共享分配节点。
在上述技术方案中,在数据分片对应的数据分片计算副本为多个,虚拟计算数仓的个数为多个的情况下,针对每一个虚拟计算数仓,处理方式与单个虚拟计算数仓类似,直到所有的虚拟计算数仓中数据分片计算副本分配完成,实现高效并行计算。
在本申请的一些实施例中,所述对各个所述待分配数据进行分片,得到多个数据分片,包括:
利用预设的哈希算法对各个所述待分配数据进行分片,得到多个所述数据分片;
所述对各个所述计算节点进行分组,得到多个虚拟计算数仓,包括:
利用预设的哈希算法对各个所述计算节点进行分组,得到多个所述虚拟计算数仓。
在上述技术方案中,通过预设的哈希算法对各个待分配数据和各个计算节点进行分组处理,后续通过分组进行调度,有利于提高数据读写速度,达到最佳的运行性能。
在本申请的一些实施例中,所述基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
基于所述数据分组和所述虚拟计算数仓,利用预设的打分调度算法对所述数据分片计算副本进行调度优化,得到所述共享分配节点。
在上述技术方案中,针对不同场景中的多种因素,利用预设的打分调度算法进行调度优化,使得充分且合理地调动资源,进一步提高读写数据吞吐量,达到最佳的运行性能,实现高效并行计算,应用广泛。
第二方面,本申请实施例提供了一种电子设备,包括处理器、存储器、用户接口及网络接口,所述存储器用于存储指令,所述用户接口和网络接口用于给其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行上述第一方面提供的任意一项所述的方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,执行上述第一方面提供的任意一项所述的方法。
综上所述,本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、由于采用了将待分配数据进行分片以及将计算节点进行分组,再根据各个数据分组与各个虚拟计算数仓确定数据分片计算副本,并对数据分片计算副本进行调度的技术手段,所以,有效解决了相关技术中读写数据延迟导致性能下降的问题。本申请实施例能够充分调动整体的资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能,实现高效并行访问共享远程存储。
2、在不同数量的数据分片对应的数据分片计算副本和虚拟计算数仓下,采用不同的调度方式,能够充分调动整体资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能。
3、对调度过程进行优化,进一步提高读写数据吞吐量,达到最佳的运行性能。
附图说明
图1是本申请一个实施例提供的分布式数据库的数据共享方法的流程示意图;
图2是本申请一个实施例提供的分布式数据库的数据共享方法的数据分组示意图;
图3是本申请一个实施例提供的分布式数据库的数据共享方法的虚拟计算数仓示意图;
图4是本申请一个实施例提供的分布式数据库的数据共享方法的数据分片计算副本映射关系示意图;
图5是本申请一个实施例提供的分布式数据库的数据共享方法的调度流程示意图之一;
图6是本申请一个实施例提供的分布式数据库的数据共享方法的调度流程示意图之二;
图7是本申请一个实施例提供的分布式数据库的数据共享方法的整体流程示意图;
图8是本申请一个实施例提供的分布式数据库的数据共享装置的结构示意图;
图9是本申请一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本领域的技术人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例的描述中,“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供一种分布式数据库的数据共享方法、电子设备和存储介质,该分布式数据库的数据共享方法首先获取多个待分配数据,对各个待分配数据进行分片,得到多个数据分片,将待分配数据进行切分细化,同时兼容数据间的逻辑关系,以便后续进行高效计算;基于各个数据分片确定多个数据分组;获取多个计算节点,对各个计算节点进行分组,得到多个虚拟计算数仓,对计算节点进行切分细化,以便进行协同计算,提升读写速度;基于各个数据分组与各个虚拟计算数仓的对应的关系,确定各个数据分片对应的数据分片计算副本;基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,基于数据分组和虚拟计算数仓进行调度,能够充分调动整体的资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能,实现高效并行访问共享远程存储。与相关技术中读写数据吞吐量延迟,使得性能下降相比,本申请实施例能够充分调动整体的资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能,实现高效并行访问共享远程存储。需要说明的是,该分布式数据库的数据共享方法将数据存储于云端,允许多个节点高效并行访问,存储的数据可以为各个行业的数据,实现高效的远程访问。
下面结合附图,对本申请实施例提供的技术方案作出进一步说明。
参照图1,图1是本申请实施例提供的分布式数据库的数据共享方法的流程示意图。分布式数据库的数据共享方法应用于分布式数据库的数据共享装置,通过电子设备或者可读存储介质中的处理器执行分布式数据库的数据共享方法,该分布式数据库的数据共享方法包括步骤S100、步骤S200、步骤S300、步骤S400和步骤S500。
步骤S100,获取多个待分配数据,对各个待分配数据进行分片,得到多个数据分片。
在一实施例中,待分配数据为本地收集的数据,本地收集的数据可以为不同行业的数据,并将收集的数据进行去重复,去脏数据等数据清洗方式处理,通过预设的接口将处理后的数据上传到云端的数据,获取多个待分配数据,以实现后续的数据分片和共享存储。其中预设的接口为预设的云服务商提供的接口进行上传。
在一实施例中,利用预设的哈希算法对各个待分配数据进行分片,通过不同的哈希算法将数据打散分布到不同的分桶中,每一个分桶对应一个数据分片,得到多个数据分片,通过进行精细化分片,同时兼容数据间的逻辑关系,有利于进行快速数据读写。
步骤S200,基于各个数据分片确定多个数据分组。
在一实施例中,数据分组包括亲和数据分组和散列数据分组,多组数据因哈希算法分割后分配到同一哈希区间的数据分片构成亲和数据分组,亲和数据分组中数据分片之间具有数据亲和性,在分布式计算时,将数据分片优先分配到同一台计算节点上,以减少相同哈希区间的数据跨计算节点交换带来的网络带宽开销,提高性能。同一组数据因哈希算法分割后形成的多个数据分片,该组数据为散列数据分组,将同一组数据的不同分片打散到不同计算节点,以达到最大化的并行计算效率。将各个数据分片划分为亲和数据分组和散列数据分组,为后续资源的合理调配提供支持。
如图2所示,数据分组包括亲和数据分组和散列数据分组,具有多组数据,利用预设的哈希算法进行打散,形成多个数据分片,每一个数据分组为一组数据分片的集合,同一组数据因哈希算法分割后的不同分片构成散列数据分组,将多组数据因哈希算法分割后分配到同一哈希区间的分片数据构成亲和数据分组。
步骤S300,获取多个计算节点,对各个计算节点进行分组,得到多个虚拟计算数仓。
在一实施例中,云服务商提供多个计算节点,直接通过云服务商提供的接口获取计算节点。然后利用预设的哈希算法对各个计算节点进行分组,每组节点组成一个计算集群,每一组计算集群为一个虚拟计算数仓,得到多个虚拟计算数仓。通过进行精细化分片,多组虚拟计算数仓共享数据存储,进行协同计算,有利于后续进行数据分片计算副本的调度,提升数据读写。
如图3所示,利用预设的哈希算法进行打散分布,有两组虚拟计算数仓,也可称之为两个集群,每一个计算数仓中具有多个计算节点。
步骤S400,基于各个数据分组与各个虚拟计算数仓的对应的关系,确定各个数据分片对应的数据分片计算副本。
在一实施例中,在每一个数据分组中具有多个数据分片,数据分片计算副本是指将一个数据分片被分配到计算节点上的位置关系。同一个数据分片在同一虚拟计算数仓内可以存在多个计算副本,同一数据分片也可以产生多个计算副本并分布于多个虚拟计算数仓中,确定各个数据分片对应的数据分片计算副本,有利于后续对数据分片计算副本进行调度,实现高效并发执行。
如图4所示,数据分片1在虚拟计算数仓1中有一个计算副本,所有与数据分片1相关的计算任务会派发到对应的计算节点上。数据分片1在虚拟计算数仓2中有两个计算副本,所有与数据分片2相关的计算任务可以派发到这两个计算副本的其中任何一个。
步骤S500,基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点。
在一实施例中,数据分组包括亲和数据分组,在数据分片对应的数据分片计算副本为单个,虚拟计算数仓的个数为单个的情况下,如图5所示,基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,包括但不限于有以下步骤:
步骤S501,判断数据分片是否属于亲和数据分组,得到第一判断结果。
在一实施例中,由于亲和数据分组中数据分片之间具有数据亲和性,在分布式计算时,将数据分片优先分配到同一台计算节点上,以减少相同哈希区间的数据跨计算节点交换带来的网络带宽开销,提高性能。于是,首先判断数据分片是否属于亲和数据分组,判断数据分片是否为通过属于相同的哈希区间,得到第一判断结果,有利于后续根据第一判断结果得到共享分配节点,能够提升数据读写。
步骤S502,在第一判断结果为数据分片属于亲和数据分组的情况下,选择虚拟计算数仓中相同的计算节点,得到共享分配节点。
在一实施例中,在第一判断结果为数据分片属于亲和数据分组的情况下,将亲和数据分组中的数据分片分配到相同的计算节点上,若未存在已分配的数据节点,则选择虚拟计算数仓中相同的计算节点进行分配,得到共享分配节点。若已存在已分配的数据分配,根据数据分片计算副本的位置关系,选择虚拟计算数仓中存在该数据分片计算副本的相同的计算节点进行分配,得到共享分配节点。例如,数据分片属于一个或者多个亲和数据分组,并且亲和数据分组中已经存在数据分片调度到虚拟计算数仓,选择该虚拟计算数仓中相同的计算节点,将待分配的数据分片分配到相同的计算节点上,得到共享分配节点。通过将数据亲和数据分组中的数据分片分配到同一个计算节点上,能够减少类似数据的读写次数,提升数据读写速度,从而提高性能。
在一实施例中,数据分组还包括散列数据分组,在判断数据分片是否属于亲和数据分组,得到第一判断结果之后,分布式数据库的数据共享方法还包括但不限于有以下步骤:
步骤S503,在第一判断结果为数据分片不属于亲和数据分组的情况下,判断数据分片是否属于散列数据分组,得到第二判断结果。
在一实施例中,在第一判断结果为数据分片不属于亲和数据分组的情况下,为了使得以达到最大化的并行计算效率,判断数据分片是否属于散列数据分组,通过判断数据分片是否属于同一组数据,得到第二判断结果,有利于后续根据第二判断结果进行分配。
步骤S504,在第二判断结果为数据分片属于散列数据分组的情况下,计算虚拟计算数仓中所有计算节点拥有散列数据分组中数据分片计算副本的数量,利用预设的选择函数选择虚拟计算数仓中拥有散列数据分组的计算节点,得到共享分配节点。
在一实施例中,预设的选择函数为min()函数,在第二判断结果为数据分片属于散列数据分组的情况下,表明数据分片属于同一组数据,在散列数据分组中已经存在已分配的数据分片,则计算虚拟计算数仓中所有计算节点拥有散列数据分组中数据分片计算副本的数量,利用min()函数选择虚拟计算数仓的计算节点中存在数据分片计算副本数量最小的节点,得到共享分配节点。在散列数据分组中未存在已分配的数据分片,也可以选择最小数量的计算节点进行分配。在最小数量的计算节点为多个的情况下,任意选择其中一个进行分配,得到共享分配节点,以便减少计算节点的压力,还能够方便数据读写,使得处于合适的运行性能。
步骤S505,在第二判断结果为数据分片不属于散列数据分组的情况下,计算虚拟计算数仓中所有计算节点当前数据分片计算副本的数量,利用预设的选择函数选择虚拟计算数仓的计算节点,得到共享分配节点。
在一实施例中,预设的选择函数为min()函数,在第二判断结果为数据分片不属于散列数据分组的情况下,表明数据分片既不具有亲和性也不在同一组,计算虚拟计算数仓中所有计算节点当前数据分片计算副本的数量,利用min()函数选择虚拟计算数仓的计算节点,得到共享分配节点,以便减少计算节点的压力,还能够方便数据读写,使得处于合适的运行性能。
如图6所示,在数据分片对应的数据分片计算副本为多个,虚拟计算数仓的个数为单个的情况下,基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,包括但不限于有以下步骤:
步骤506,判断虚拟计算数仓的计算节点是否存在数据分片计算副本,得到第三判断结果。
在一实施例中,同一虚拟计算数仓具有多数据分片计算副本,能够提高数据分片的数据处理并行度,为了实现高效并行,首先判断虚拟计算数仓的计算节点是否存在数据分片计算副本,根据数据分片与计算节点的映射关系,能够对计算节点上存在的数据分片计算副本进行统计,根据统计结果,得到第三判断结果,有利于后续根据第三判断结果进行计算节点处理。
步骤S507,在第三判断结果为存在数据分片计算副本的情况下,将存在数据分片计算副本对应的计算节点从虚拟计算数仓中删除。
步骤S508,判断数据分片是否属于数据分组中的亲和数据分组,得到第四判断结果。
在一实施例中,在第三判断结果为存在数据分片计算副本的情况下,由于同一数据分片的多数据分片计算副本是互斥关系,将存在数据分片计算副本对应的计算节点从虚拟计算数仓中删除,使得将数据分片计算副本分配到多个不同的节点,实现高效并行计算。然后判断数据分片是否属于亲和数据分组,得到第四判断结果,其步骤与步骤S501类似,这里不作赘述。
在第三判断结果为不存在数据分片计算副本的情况下,步骤S508,判断数据分片是否属于数据分组中的亲和数据分组,得到第四判断结果。
在一实施例中,在第三判断结果为不存在数据分片计算副本的情况下,可以将一个数据分片计算副本分配至该计算节点上,然后判断数据分片是否属于数据分组中的亲和数据分组,得到第四判断结果,其步骤与步骤S501类似,这里不作赘述。
步骤S509,在第四判断结果为数据分片属于亲和数据分组的情况下,选择虚拟计算数仓中相同的计算节点,得到单个数据分片计算副本对应的分配节点。
在一实施例中,在第四判断结果为数据分片属于亲和数据分组的情况下,将亲和数据分组中的数据分片分配到相同的计算节点上,若未存在已分配的数据节点,则选择虚拟计算数仓中相同的计算节点进行分配,得到共享分配节点。若已存在已分配的数据分配,根据数据分片计算副本的位置关系,选择虚拟计算数仓中存在该数据分片计算副本的相同的计算节点进行分配,得到共享分配节点。通过将数据亲和数据分组中的数据分片分配到同一个计算节点上,能够减少类似数据的读写次数,提升数据读写速度,从而提高性能。
步骤S510,在第四判断结果为数据分片不属于亲和数据分组的情况下,判断数据分片是否属于数据分组中的散列数据分组。
步骤S511,在数据分片属于散列数据分组的情况下,计算虚拟计算数仓中所有计算节点拥有散列数据分组中数据分片计算副本的数量,利用预设的选择函数选择虚拟计算数仓中拥有散列数据分组的计算节点,得到单个数据分片计算副本对应的分配节点。
在一实施例中,在第四判断结果为数据分片不属于亲和数据分组的情况下,判断数据分片是否属于散列数据分组,通过判断数据分片是否属于同一组数据,得到第二判断结果,在数据分片属于散列数据分组的情况下,在散列数据分组中已经存在已分配的数据分片,则计算虚拟计算数仓中所有计算节点拥有散列数据分组中数据分片计算副本的数量,该数据为删除了已分配的计算节点后剩余的计算节点,利用min()函数选择虚拟计算数仓的剩余的计算节点中存在数据分片计算副本数量最小的节点,得到单个数据分片计算副本对应的分配节点。在散列数据分组中未存在已分配的数据分片,也可以选择最小数量的计算节点进行分配。在最小数量的计算节点为多个的情况下,任意选择其中一个进行分配,得到共享分配节点,以便减少计算节点的压力,还能够方便数据读写,使得处于合适的运行性能。
步骤S512,在数据分片不属于散列数据分组的情况下,计算虚拟计算数仓中所有节点当前数据分片计算副本的数量,利用预设的选择函数选择虚拟计算数仓的计算节点,得到单个数据分片计算副本对应的分配节点。
在一实施例中,在数据分片不属于散列数据分组的情况下,表明数据分片即不具有亲和性也不在同一组,计算虚拟计算数仓中所有计算节点当前数据分片计算副本的数量,该数据为删除了已分配的计算节点后剩余的计算节点,利用min()函数选择虚拟计算数仓的剩余的计算节点,得到单个数据分片计算副本对应的分配节点,以便减少计算节点的压力,还能够方便数据读写,使得处于合适的运行性能。
步骤S513,判断是否存在数据分片计算副本未分配,得到第五判断结果。
在一实施例中,将数据分片进行按照步骤S509至步骤S512进行分配,得到的单个数据分片计算副本对应的分配节点,判断是否存在数据分片计算副本未分配,通过统计数据分片计算副本的数量,以保证所有的数据分片对应的数据分片计算副本均已分配,得到第五判断结果,有利于后续确定是否继续进行分配处理。
在一实施例中,在第五判断结果为不存在数据分片计算副本未分配,表明所有数据分片均已分配完成,得到共享分配节点,实现高效并行处理。
在一实施例中,在判断是否存在数据分片计算副本未分配,得到第五判断结果之后,分布式数据库的数据共享方法还包括但不限于有以下步骤:在第五判断结果为存在数据分片计算副本未分配,执行判断虚拟计算数仓的计算节点是否存在数据分片计算副本,得到第三判断结果,直至所有数据分片计算副本不存在未分配,得到共享分配节点。
在一实施例中,在第五判断结果为存在数据分片计算副本未分配的情况下,执行步骤S506至步骤S512对未分配的数据分片计算副本进行分配,直至所有数据分片计算副本均分配完成,得到共享分配节点,以实现高效并行计算。
在一实施例中,在数据分片对应的数据分片计算副本为多个,虚拟计算数仓的个数为多个的情况下,基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,包括:首先针对每一个虚拟计算数仓中,进行多个数据分片计算副本的分配,具体为:判断虚拟计算数仓的计算节点是否存在数据分片计算副本,得到第六判断结果;在第六判断结果为存在数据分片计算副本的情况下,将存在数据分片计算副本对应的计算节点从虚拟计算数仓中删除,判断数据分片是否属于数据分组中的亲和数据分组,得到第七判断结果;在第六判断结果为不存在数据分片计算副本的情况下,判断数据分片是否属于数据分组中的亲和数据分组,得到第七判断结果;在第七判断结果为数据分片属于亲和数据分组的情况下,选择虚拟计算数仓中相同的计算节点,得到单个数据分片计算副本对应的分配节点;在第七判断结果为数据分片不属于亲和数据分组的情况下,判断数据分片是否属于数据分组中的散列数据分组,在数据分片属于散列数据分组的情况下,计算虚拟计算数仓中所有计算节点拥有散列数据分组中数据分片计算副本的数量,利用预设的选择函数选择虚拟计算数仓中拥有散列数据分组的计算节点,得到单个数据分片计算副本对应的分配节点;在数据分片不属于散列数据分组的情况下,计算虚拟计算数仓中所有节点当前数据分片计算副本的数量,利用预设的选择函数选择虚拟计算数仓的计算节点,得到单个数据分片计算副本对应的分配节点;判断是否存在数据分片计算副本未分配,得到第八判断结果;在第八判断结果为不存在数据分片计算副本未分配,得到单个虚拟计算数仓的共享分配节点;在第八判断结果为存在数据分片计算副本未分配,执行判断虚拟计算数仓的计算节点是否存在数据分片计算副本,得到第六判断结果,直至所有数据分片计算副本不存在未分配,得到单个虚拟计算数仓的共享分配节点。上述单个虚拟计算数仓的分配方式与步骤S506值步骤S512类似,这里不作赘述。
在另一实施例中,由于多个虚拟计算数仓做为相互独立的单个集群进行计算,多个虚拟计算数仓的计算副本相互之间互不干扰,针对每一个虚拟计算数仓进行分配后,得到所有虚拟计算数仓的共享分配节点,实现高效并行计算。
在一实施例中,为了更加符合不同真实场景的选择,均可以快速读写数据,提高性能,基于数据分组和虚拟计算数仓,利用预设的打分调度算法对数据分片计算副本进行调度优化,得到共享分配节点。
具体地,利用预设的打分调度算法对数据分片计算副本进行调度优化为:设定虚拟计算数仓有N个计算节点,分别记为;选择Y个计算节点做为新增计算副本的位置;待分配数据分片在虚拟计算数仓中已经分配的数据分片计算副本表示为,,
待分配数据分片在虚拟计算数仓中已经存在的具有亲和关系的数据分片分布为,表示在节点上有块数据分片计算副本与待分配的数据分片有亲和关系;待分配数据分片在虚拟计算数仓中已经存在的具有散列关系的数据分片分布为,表示在节点上有块数据分片计算副本与待分配的数据分片有散列关系;虚拟计算数仓的所有计算节点根据过去X分钟内的资源分配、负载水平和剩余资源水位等信息,计算出资源评估分数。对应以上资源分配、负载水平和剩余资源水位等每一种评估因素,分配对应权重组合,加分项权重为正数,减分项权重为负数。于是得到所有计算节点的加权得分,表示为:
,
在所有节点的加权得分数组,通过不同的选择算法最终选择出y个计算节点作为新增数据分片计算副本的位置,通过预设的选择策略选出y个计算节点,实现映射关系。其中选择策略policy可以为TOP-n:严格按分数从高到低选择;也可以为Random:从所有可能的候选计算节点中随机选择;还可以为TOP-n Random:从所有可能的候选节点中先按分数选择其中差额数量,例如需要分配r个数据分片计算副本,则可以差额选择TOP1.5r个计算节点,从这些计算节点中再随机选择r个计算节点。
在一实施例中,根据实际场景不同,选择不同的权重组合,可以达到不同的效果。示例性地,将设置为一个非常大的数字,则实现亲和优先的分配算法;将设置为一个非常小的数字,则实现散列优先的分配算法。还可以根据需求进行扩展,示例性地新增第f项评估,并给定权重为,则所有节点的加权得分调整为如下
。
通过考虑不同因素计算加权得分,进行调度优化,能够根据实际不同场景进行调度,实现高效并行运行。
如图7所示,本申请实施例提供了一种分布式数据库的数据共享方法的整体流程示意图,具有三个数据分片,分别为数据分片1、数据分片2、数据分片3,以及2个虚拟计算数仓。每一个数据分片具有2个数据分片计算副本,基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,将数据分片计算副本分配于不同的虚拟计算数仓中,并行访问远程存储,实现高效并行计算。
如图8所示,本申请实施例提供一种分布式数据库的数据共享装置100,该装置100通过数据获取模块110获取多个待分配数据,对各个待分配数据进行分片,得到多个数据分片,将待分配数据进行切分细化,同时兼容数据间的逻辑关系,以便后续进行高效计算;利用第一分组模块120基于各个数据分片确定多个数据分组;通过第二分组模块130获取多个计算节点,对各个计算节点进行分组,得到多个虚拟计算数仓,对计算节点进行切分细化,以便进行协同计算,提升读写速度;采用关系映射模块140基于各个数据分组与各个虚拟计算数仓的对应的关系,确定各个数据分片对应的数据分片计算副本;利用调度模块150基于数据分组和虚拟计算数仓,对数据分片计算副本进行调度,得到共享分配节点,基于数据分组和虚拟计算数仓进行调度,能够充分调动整体的资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能,实现高效并行访问共享远程存储。
需要说明的是,数据获取模块110与第一分组模块120连接,第一分组模块120与第二分组模块130连接,第二分组模块130与关系映射模块140连接,关系映射模块140与调度模块150连接。上述分布式数据库的数据共享方法应用于分布式数据库的数据共享装置100,分布式数据库的数据共享装置100能够充分调动整体的资源,提高读写数据吞吐量和资源利用率,达到最佳的运行性能,实现高效并行访问共享远程存储。
还需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置和方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还公开一种电子设备。参照图9,图9是本申请实施例的公开的一种电子设备的结构示意图。该电子设备500可以包括:至少一个处理器501,至少一个网络接口504,用户接口503,存储器505,至少一个通信总线502。
其中,通信总线502用于实现这些组件之间的连接通信。
其中,用户接口503可以包括显示屏(Display)、摄像头(Camera),可选用户接口503还可以包括标准的有线接口、无线接口。
其中,网络接口504可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器501可以包括一个或者多个处理核心。处理器501利用各种接口和线路连接整个服务器内的各个部分,通过运行或执行存储在存储器505内的指令、程序、代码集或指令集,以及调用存储在存储器505内的数据,执行服务器的各种功能和处理数据。可选的,处理器501可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器501可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器501中,单独通过一块芯片进行实现。
其中,存储器505可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器505包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器505可用于存储指令、程序、代码、代码集或指令集。存储器505可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及的数据等。存储器505可选的还可以是至少一个位于远离前述处理器501的存储装置。参照图9,作为一种计算机存储介质的存储器505中可以包括操作系统、网络通信模块、用户接口模块以及一种分布式数据库的数据共享方法的应用程序。
在图9所示的电子设备500中,用户接口503主要用于为用户提供输入的接口,获取用户输入的数据;而处理器501可以用于调用存储器505中存储一种分布式数据库的数据共享方法的应用程序,当由一个或多个处理器501执行时,使得电子设备500执行如上述实施例中一个或多个的方法。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必需的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几种实施方式中,应该理解到,所披露的装置,可通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践真理的公开后,将容易想到本公开的其他实施方案。
本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种分布式数据库的数据共享方法,其特征在于,所述方法包括:
获取多个待分配数据,对各个所述待分配数据进行分片,得到多个数据分片;
基于各个所述数据分片确定多个数据分组,所述数据分组包括亲和数据分组和散列数据分组,所述亲和数据分组包括利用预设的哈希算法将多组数据分割后分配到同一哈希区间的所述数据分片,所述散列数据分组包括利用预设的哈希算法将同一组数据分割后的不同所述数据分片;
获取多个计算节点,对各个所述计算节点进行分组,得到多个虚拟计算数仓;
基于各个所述数据分组与各个虚拟计算数仓的对应的关系,确定各个所述数据分片对应的数据分片计算副本;
基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,其中,调度操作为将各个所述亲和数据分组中的所述数据分片优先分配到同一台所述计算节点上,将各个所述散列数据分组中的所述数据分片打散分配到不同所述计算节点。
2.根据权利要求1所述的方法,其特征在于,在所述数据分片对应的数据分片计算副本为单个,所述虚拟计算数仓的个数为单个的情况下,所述基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
判断所述数据分片是否属于所述亲和数据分组,得到第一判断结果;
在所述第一判断结果为所述数据分片属于所述亲和数据分组的情况下,选择所述虚拟计算数仓中相同的计算节点,得到所述共享分配节点。
3.根据权利要求2所述的方法,其特征在于,在所述判断所述数据分片是否属于所述亲和数据分组,得到第一判断结果之后,所述方法还包括:
在所述第一判断结果为所述数据分片不属于所述亲和数据分组的情况下,判断所述数据分片是否属于所述散列数据分组,得到第二判断结果;
在所述第二判断结果为所述数据分片属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点拥有所述散列数据分组中所述数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓中拥有所述散列数据分组的计算节点,得到所述共享分配节点;
在所述第二判断结果为所述数据分片不属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点当前数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓的计算节点,得到所述共享分配节点。
4.根据权利要求1所述的方法,其特征在于,在所述数据分片对应的数据分片计算副本为多个,所述虚拟计算数仓的个数为单个的情况下,基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第三判断结果;
在所述第三判断结果为存在所述数据分片计算副本的情况下,将存在所述数据分片计算副本对应的计算节点从所述虚拟计算数仓中删除,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到第四判断结果;
在所述第三判断结果为不存在所述数据分片计算副本的情况下,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到所述第四判断结果;
在所述第四判断结果为所述数据分片属于所述亲和数据分组的情况下,选择所述虚拟计算数仓中相同的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述第四判断结果为所述数据分片不属于所述亲和数据分组的情况下,判断所述数据分片是否属于所述数据分组中的散列数据分组,在所述数据分片属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点拥有所述散列数据分组中所述数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓中拥有所述散列数据分组的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述数据分片不属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有节点当前数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓的计算节点,得到单个所述数据分片计算副本对应的分配节点;
判断是否存在所述数据分片计算副本未分配,得到第五判断结果;
在所述第五判断结果为不存在所述数据分片计算副本未分配,得到所述共享分配节点。
5.根据权利要求4所述的方法,其特征在于,在所述判断是否存在所述数据分片计算副本未分配,得到第五判断结果之后,所述方法还包括:
在所述第五判断结果为存在所述数据分片计算副本未分配,执行判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第三判断结果,直至所有所述数据分片计算副本不存在未分配,得到所述共享分配节点。
6.根据权利要求1所述的方法,其特征在于,在所述数据分片对应的数据分片计算副本为多个,所述虚拟计算数仓的个数为多个的情况下,基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
在每一个所述虚拟计算数仓中,判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第六判断结果;
在所述第六判断结果为存在所述数据分片计算副本的情况下,将存在所述数据分片计算副本对应的计算节点从所述虚拟计算数仓中删除,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到第七判断结果;
在所述第六判断结果为不存在所述数据分片计算副本的情况下,判断所述数据分片是否属于所述数据分组中的亲和数据分组,得到所述第七判断结果;
在所述第七判断结果为所述数据分片属于所述亲和数据分组的情况下,选择所述虚拟计算数仓中相同的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述第七判断结果为所述数据分片不属于所述亲和数据分组的情况下,判断所述数据分片是否属于所述数据分组中的散列数据分组,在所述数据分片属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有计算节点拥有所述散列数据分组中所述数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓中拥有所述散列数据分组的计算节点,得到单个所述数据分片计算副本对应的分配节点;
在所述数据分片不属于所述散列数据分组的情况下,计算所述虚拟计算数仓中所有节点当前数据分片计算副本的数量,利用预设的选择函数选择所述虚拟计算数仓的计算节点,得到单个所述数据分片计算副本对应的分配节点;
判断是否存在所述数据分片计算副本未分配,得到第八判断结果;
在所述第八判断结果为不存在所述数据分片计算副本未分配,得到单个所述虚拟计算数仓的共享分配节点;
在所述第八判断结果为存在所述数据分片计算副本未分配,执行判断所述虚拟计算数仓的计算节点是否存在所述数据分片计算副本,得到第六判断结果,直至所有所述数据分片计算副本不存在未分配,得到单个所述虚拟计算数仓的共享分配节点;
根据各个所述虚拟计算数仓的共享分配节点,得到所有所述虚拟计算数仓的共享分配节点。
7.根据权利要求1所述的方法,其特征在于,所述对各个所述待分配数据进行分片,得到多个数据分片,包括:
利用预设的哈希算法对各个所述待分配数据进行分片,得到多个所述数据分片;
所述对各个所述计算节点进行分组,得到多个虚拟计算数仓,包括:
利用预设的哈希算法对各个所述计算节点进行分组,得到多个所述虚拟计算数仓。
8.根据权利要求1所述的方法,其特征在于,所述基于所述数据分组和所述虚拟计算数仓,对所述数据分片计算副本进行调度,得到共享分配节点,包括:
基于所述数据分组和所述虚拟计算数仓,利用预设的打分调度算法对所述数据分片计算副本进行调度优化,得到所述共享分配节点。
9.一种电子设备,其特征在于,包括处理器(501)、存储器(505)、用户接口(503)、通信总线(502)及网络接口(504),所述处理器(501)、所述存储器(505)、所述用户接口(503)、及所述网络接口(504)分别与所述通信总线(502)连接,所述存储器(505)用于存储指令,所述用户接口(503)和网络接口(504)用于给其他设备通信,所述处理器(501)用于执行所述存储器(505)中存储的指令,以使所述电子设备(500)执行如权利要求1-8任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,执行如权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311685525.9A CN117389747B (zh) | 2023-12-11 | 2023-12-11 | 分布式数据库的数据共享方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311685525.9A CN117389747B (zh) | 2023-12-11 | 2023-12-11 | 分布式数据库的数据共享方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117389747A CN117389747A (zh) | 2024-01-12 |
CN117389747B true CN117389747B (zh) | 2024-02-09 |
Family
ID=89472440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311685525.9A Active CN117389747B (zh) | 2023-12-11 | 2023-12-11 | 分布式数据库的数据共享方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389747B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503708A (zh) * | 2014-12-29 | 2015-04-08 | 成都致云科技有限公司 | 数据散列存储的方法及装置 |
CN106354548A (zh) * | 2016-08-31 | 2017-01-25 | 天津南大通用数据技术股份有限公司 | 分布式数据库系统中虚拟集群创建、管理方法及装置 |
CN106528683A (zh) * | 2016-10-25 | 2017-03-22 | 深圳市盛凯信息科技有限公司 | 一种基于索引分片均衡的大数据云搜索平台及其方法 |
CN109388335A (zh) * | 2017-08-10 | 2019-02-26 | 中国移动通信集团宁夏有限公司 | 一种数据存储方法及系统 |
CN113268472A (zh) * | 2021-07-15 | 2021-08-17 | 北京华品博睿网络技术有限公司 | 一种分布式数据存储系统及方法 |
CN113886037A (zh) * | 2021-09-14 | 2022-01-04 | 北京东方金信科技股份有限公司 | 一种分布式数据库集群中实现数据分布的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180004777A1 (en) * | 2016-04-15 | 2018-01-04 | Brian J. Bulkowski | Data distribution across nodes of a distributed database base system |
US20210303633A1 (en) * | 2020-03-30 | 2021-09-30 | International Business Machines Corporation | Shard hashing |
-
2023
- 2023-12-11 CN CN202311685525.9A patent/CN117389747B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503708A (zh) * | 2014-12-29 | 2015-04-08 | 成都致云科技有限公司 | 数据散列存储的方法及装置 |
CN106354548A (zh) * | 2016-08-31 | 2017-01-25 | 天津南大通用数据技术股份有限公司 | 分布式数据库系统中虚拟集群创建、管理方法及装置 |
CN106528683A (zh) * | 2016-10-25 | 2017-03-22 | 深圳市盛凯信息科技有限公司 | 一种基于索引分片均衡的大数据云搜索平台及其方法 |
CN109388335A (zh) * | 2017-08-10 | 2019-02-26 | 中国移动通信集团宁夏有限公司 | 一种数据存储方法及系统 |
CN113268472A (zh) * | 2021-07-15 | 2021-08-17 | 北京华品博睿网络技术有限公司 | 一种分布式数据存储系统及方法 |
CN113886037A (zh) * | 2021-09-14 | 2022-01-04 | 北京东方金信科技股份有限公司 | 一种分布式数据库集群中实现数据分布的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117389747A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12001681B2 (en) | Distributed storage system and data processing method | |
US10325343B1 (en) | Topology aware grouping and provisioning of GPU resources in GPU-as-a-Service platform | |
CN110301128B (zh) | 基于学习的资源管理数据中心云架构的实现方法 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US9864759B2 (en) | System and method for providing scatter/gather data processing in a middleware environment | |
CN103703450A (zh) | Ssd存储访问的方法和装置 | |
CN108932150B (zh) | 基于ssd和磁盘混合存储的缓存方法、装置及介质 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN112181613B (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
CN108519917A (zh) | 一种资源池分配方法和装置 | |
CN103176849A (zh) | 一种基于资源分类的虚拟机集群的部署方法 | |
WO2024021470A1 (zh) | 一种跨区域的数据调度方法、装置、设备及存储介质 | |
Perwej | The ambient scrutinize of scheduling algorithms in big data territory | |
Rathinaraja et al. | Dynamic ranking-based MapReduce job scheduler to exploit heterogeneous performance in a virtualized environment | |
WO2016201998A1 (zh) | 一种缓存分配、数据访问、数据发送方法、处理器及系统 | |
CN110167031A (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
CN117389747B (zh) | 分布式数据库的数据共享方法、电子设备和存储介质 | |
CN109254844B (zh) | 一种大规模图的三角形计算方法 | |
CN108228323B (zh) | 基于数据本地性的Hadoop任务调度方法及装置 | |
CN116483547A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
Soosai et al. | Dynamic replica replacement strategy in data grid | |
CN110543362B (zh) | 一种图形处理器管理方法、装置及服务器 | |
CN115203133A (zh) | 数据处理方法、装置、归约服务器及映射服务器 | |
CN112764935A (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
JP2011113377A (ja) | 分散計算装置および分散計算装置の制御方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |