CN115129782A - 一种分布式数据库的分区级连接方法和装置 - Google Patents
一种分布式数据库的分区级连接方法和装置 Download PDFInfo
- Publication number
- CN115129782A CN115129782A CN202210635770.8A CN202210635770A CN115129782A CN 115129782 A CN115129782 A CN 115129782A CN 202210635770 A CN202210635770 A CN 202210635770A CN 115129782 A CN115129782 A CN 115129782A
- Authority
- CN
- China
- Prior art keywords
- physical machine
- partition
- logical
- data
- logical partitions
- 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
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
- 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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
Abstract
本说明书的一个或多个实施例提供了一种分布式数据库的分区级连接方法和装置,所述分布式数据库包含多个数据表,多个数据表基于相同的分区键被分区,任一数据表被分为多个逻辑分区,隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接方法包括:接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;检验所述M个逻辑分区所处的物理机是否发生改变;若是,获取位置发生改变的逻辑分区所处的第二物理机,并进行数据迁移代价评估,所述数据迁移代价评估用于计算将所述逻辑分区从所述第二物理机迁移至第一物理机的代价值;根据所述数据迁移代价评估的结果确定是否执行所述连接规则。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种分布式数据库的分区级连接方法和装置。
背景技术
在数据库系统中,数据分区是提高运维效率、提高系统性能的重要手段。对于涉及到多分区的查询,数据库往往采用多线程/进程并发的执行方式提高执行效率,但并行执行也带来了数据交换的代价,为此,优化器会尽可能的将可以合并的操作聚合在同一个线程中完成。一种聚合的方式称为分区级连接——即当需要进行连接操作的两表或多表的分区键与连接键相同时,可以将连接操作下压到对应的分区内部进行,避免跨线程/进程间的数据交换。但是,在分布式数据库下,这一优化的场景受到分区物理分布的限制,分布式数据库系统经常出现数据迁移的操作,优化阶段处于同一台物理机的数据分区,在执行阶段也有可能出现某些分区被迁移到其他机器的情况,静态生成的并行分区级连接计划同样也无法自动处理这种情况。
发明内容
针对以上提出的问题,本说明书提供了一种分布式数据库的分区级连接方法,
所述分布式数据库包含多个数据表,所述多个数据表基于相同的分区键被分区,其中,任一数据表被分为多个逻辑分区,隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接方法包括:
接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;
检验所述M个逻辑分区所处的物理机是否发生改变;
若是,获取位置发生改变的逻辑分区所处的第二物理机,并进行数据迁移代价评估,所述数据迁移代价评估用于计算将所述逻辑分区从所述第二物理机迁移至第一物理机的代价值;
根据所述数据迁移代价评估的结果确定是否执行所述连接规则。
更优地,所述连接规则包括从所述位于第一物理机的M个逻辑分区获取所述分区键取值相同的逻辑分区,对所述分区键取值相同的逻辑分区进行等值连接。
更优地,所述根据所述数据迁移代价评估的结果确定是否执行所述连接规则,包括:对比所述代价值与预设代价值阈值,
若所述代价值小于所述预设代价阈值,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则。
若所述代价值大于所述预设代价阈值,不执行所述连接规则。
更优地,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需的时长。
更优地,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需进行的数据交换次数。
本说明书还提供了一种分布式数据库的分区级连接装置,所述分布式数据库包含多个数据表,所述多个数据表基于相同的分区键被分区,其中,任一数据表被分为多个逻辑分区,隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接装置包括:
接收模块,接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;
检验模块,检验所述M个逻辑分区所处的物理机是否发生改变;
代价评估模块,获取位置发生改变的逻辑分区所处的第二物理机,并进行数据迁移代价评估,所述数据迁移代价评估用于计算将所述逻辑分区从所述第二物理机迁移至第一物理机的代价值;
判断模块,根据所述数据迁移代价评估的结果确定是否执行所述连接规则。
更优地,所述连接规则包括从所述位于第一物理机的M个逻辑分区获取所述分区键取值相同的逻辑分区,对所述分区键取值相同的逻辑分区进行等值连接。
更优地,所述判断模块进一步:对比所述代价值与预设代价值阈值,
若所述代价值小于所述预设代价阈值,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则。
若所述代价值大于所述预设代价阈值,不执行所述连接规则。
更优地,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需的时长。
更优地,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需进行的数据交换次数。
相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述分布式数据库的分区级连接方法所述的步骤。
相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述分布式数据库的分区级连接方法所述的步骤。
应用本说明书所提供的数据库分区级连接方法和装置,在静态生成适应分布式数据库的并行分区级连接计划时,引入了自动处理数据迁移或者少数分区不满足分区级连接计划条件的处理能力,基于内建的代价模型,可以自适应处理分布式系统的分区物理分布变化,提升用户查询等数据库操作指令的执行效率。
附图说明
图1为本说明书一示例性实施例提供的一种数据库分区级连接方法的流程图;
图2为本说明书一示例性实施例提供的在分布式数据库中多物理机并行执行分区级连接操作的逻辑架构图;
图3为本说明书一示例性实施例提供的一种数据库分区级连接装置的示意图;
图4为运行本说明书所提供的数据库分区级连接方法或装置实施例的一种硬件结构图。
具体实施方式
为了在特定的数据库操作中减少数据读写的总量以缩减响应时间,数据库分区是一种常用的物理数据库设计技术。数据库(或数据表)分区就是将一张大数据量表中的数据按照不同的分区策略分配到不同的系统分区、硬盘或是不同的服务器设备上,实现数据的均衡分配,以均衡大数据量数据到不同的存储介子中,这样每个分区均摊了一部分数据,然后可以定位到指定的分区中,对数据表进行需求操作,另外,也方便管理数据表,比如要删除某个时间段的数据,就可以按照日期分区,然后直接删除该日期分区即可。因此数据分区是提高运维效率、提高系统性能的重要手段。
对于涉及多分区的数据需求操作,数据库往往采用多线程/进程并发执行方式以提高执行效率,为降低并行执行带来的数据交换代价,数据库的优化器会尽可能将可以合并的执行操作放在同一个线程/进程中完成,其中一种合并执行操作的方式称为“分区级连接”,即当两表或者多表连接时,如果涉及到的两表或多表的连接键(join key)与其分区键一致(即对两表或多表执行连接操作参照的列也是该两表或多表执行分区操作时参照的列),则连接操作可以在多个分区内部同时执行,分区间无需进行数据交换。但是当数据库是由一台或多台物理机通过网络互连构成的分布式数据库时,分布式数据库系统经常出现数据迁移的操作,优化阶段处于同一台物理机的数据分区,在执行阶段也有可能出现某些分区被迁移到其他机器的情况,静态生成的并行分区级连接计划同样也无法自动处理这种情况。
基于以上问题,本说明书一示例性实施例提出一种分布式数据库的分区级连接方法,如图1所示,所述分布式数据库包含多个数据表,所述多个数据表基于相同的分区键被分区,其中,任一数据表被分为多个逻辑分区,隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接方法包括:
步骤102,接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;
步骤104,检验所述M个逻辑分区所处的物理机是否发生改变;
若是,
步骤106,获取位置发生改变的逻辑分区所处的第二物理机,并进行数据迁移代价评估,所述数据迁移代价评估用于计算将所述逻辑分区从所述第二物理机迁移至第一物理机的代价值;
步骤108,根据所述数据迁移代价评估的结果确定是否执行所述连接规则。
本说明书所提供的实施例中所述的分布式数据库,是指由一台或者多台物理机通过网络互连构成的分布式数据库,上述每台物理机中都可能有全部数据的一份完整拷贝副本,或者部分拷贝副本,位于不同物理地址的上述多台物理机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的数据库。数据库内的多个数据表在基于属性相同的分区键执行逻辑分区后,每个数据表的多个逻辑分区可以位于不同的物理机中,上述分布式数据库在为上述的“分区级连接”制定连接规则(或称连接计划join)时,需针对上述多个数据表的位于同一物理机的相应逻辑分区来制定连接计划,以其将上述相应逻辑分区连接,以方便在该物理机的同一线程/进程中进行连接后数据的多种操作,如对数据的增、删、改、查等。
图2示意了本说明书一实施例提供的在分布式数据库中多物理机并行执行分区级连接操作的逻辑架构,为简化起见,图2所示的每个物理机中只示意了两个数据表t1、t2基于属性相同的分区键分区后的、相对应的逻辑分区(如t1的p0分区与t2的p0分区)的连接,本领域的技术人员应知,在实际应用中,同一物理机内可以包含一个数据表的多个不同的逻辑分区,在本说明书中并不限定一个数据表在一个物理机内的逻辑分区个数,但分区级连接规则(如图2所示的join逻辑操作)需针对隶属于M个数据表的M个逻辑分区(如t1的p1分区与t2的p1分区、或t1的p2分区与t2的p2分区)执行,本领域技术人员应知,M应取自然数。上述的“对应逻辑分区”,是该多个逻辑分区可基于上述相同的分区键进行连接,并可在同一物理机的同一线程/进程中进行连接后对数据的多种操作。上述基于相同的分区键进行分区的具体过程,在本说明书中不作限定,可以选用hash分区模式、或range分区模式等多种分区策略模式。
例如,在图2所示的实施例中,t1和t2可基于hash分区模式进行分区,t1的第一列c1为其分区键,t2的第一列c1也为其分区键,且t1的c1列与t2的c2列属性相同,其分区过程可以为:
select*from t1,t2 where t1.c1=t2.c1;
create table t1(c1 int,c2 int)partition by hash(c1)partitions 4;
create table t2(c1 int,c2 int)partition by hash(c1)partitions 4;
从而将t1及t2表格分别分为p0、p1、p2、p3四个逻辑分区。
通常,上述具体的分区级连接规则是由分布式数据库的优化器规划的。优化器基于目前数据库的分区表所示的逻辑分区所在的物理机位置,为处于同一物理机的多个数据表(如图2所示的t1、t2)的对应逻辑分区(如t1的p3分区与t2的p3分区)制定分区级连接规则(如图2所示的join 0、join 1、join 2、或join 4),该连接规则可包含应连接的多个数据表的处于同一物理机的多个对应逻辑分区、连接方式、连接流程等内容,一般可体现为优化器处理生成的执行计划树。上述的连接方式包括但不限于对上述多个逻辑分区的内连接,外连接和交叉连接等,且在分区级连接中上述连接方式均应基于上述多个数据表在生成分区时的分区键而进行;为进一步提高对多个数据库进行分区级连接后的数据处理效率,上述连接规则中的连接方式应优选为等值连接,即从位于同一物理机的隶属于多个数据表的多个逻辑分区中获取所述分区键取值相同的逻辑分区,对所述分区键取值相同的逻辑分区进行等值连接。
为防止上述逻辑分区数据在分布式数据库中发生物理迁移而影响上述连接计划被准确地执行实施,在本说明书一示意性实施例中,可在数据库的逻辑层面为每个数据库的每个逻辑分区引入算子RX,该逻辑算子RX在接收优化器发来的连接规则(或连接计划)后,检验各逻辑分区对应的物理位置相较于连接规则中包含的逻辑分区应处于的物理位置是否发生改变:
如果执行该逻辑算子RX检验出该逻辑分区对应的物理机与连接规则中包含的该逻辑分区应处于的物理机相同,即处于同一物理机中,则该RX算子执行“短路模式”,即上述连接规则对于该逻辑分区可用,如图2所示的连接规则join 0、join 1、join 2、及join 3均对其逻辑分区可用,该逻辑分区可直接向数据库系统(或优化器)返回其数据扫描的结果。
由于分布式数据库容易发生人为的、或系统其它指令执行导致的数据迁移,如果执行该逻辑算子RX检验出其对应的逻辑分区已经不在连接规则中认定的该逻辑分区应处于的物理机上,如图2所示的t2的p3分区已不在连接规则生成时认定该分区所在的物理机3上,RX可向该分布式数据库中负责收录数据分区信息的模块进行通信,以获取该对应的逻辑分区现在所处的物理机4的位置,并将该对应的逻辑分区现在所处的物理机4的位置发送至数据库负责计算数据迁移的代价评估模块,以进行数据迁移代价评估,上述代价评估过程包括计算将该逻辑算子RX对应的逻辑分区从物理机4迁移回物理机3所需消耗的数据库系统的代价值(cost),如在图2中,数据库系统(通常为优化器)应t2的p3分区对应的RX的请求,评估将t2的p3分区从现在所处的物理机4迁移回连接计划join 3中对应的物理机3所需的代价值。
上述数据库中负责计算数据迁移的代价评估模块,通常为该分布式数据库的优化器包含的功能模块,该数据迁移的代价的具体表现,可包括系统将所述逻辑分区从所述第二物理机(如图2中的物理机4)迁移回所述第一物理机(如图2中的物理机3)所需消耗的时长(系统指令延时),还可包括将所述逻辑分区从所述第二物理机(如图2中的物理机4)迁移回所述第一物理机(如图2中的物理机3)所需进行的数据交换次数等计算机系统常用的代价表示。本说明书并不限定上述代价评估过程所依据的数学模型或算法,本领域技术人员可基于具体的应用场景设置数据迁移的代价评估模型,并为具体的应用场景设置不同的数据迁移代价阈值,该数据迁移代价阈值用于表示数据库系统为维持原定的分区级连接计划(规则)而可以接受的逻辑分区数据在不同物理机间的迁移代价值。
在评估得出上述逻辑分区数据的迁移代价值后,数据库系统可根据该数据迁移代价评估的结果进行是否可执行上述连接规则的判断,判断的方式可有多种,例如数据库系统的逻辑判断模块可选用代价阈值对比法进行判断,根据上述计算得出的数据迁移代价值与系统针对逻辑分区数据迁移而预设的迁移代价阈值进行对比:
若代价评估模型计算所得的代价值小于所述预设代价阈值,该分布式数据库可发出迁移指令,将所述逻辑分区从第二物理机迁移回第一物理机,并确定对所述多个数据表的多个逻辑分区的数据表执行所述连接规则,上述迁移可以通过如RPC远程数据调用的方式实现。
若代价评估模型计算所得的代价值大于所述预设代价阈值,则数据库系统将不执行所述连接规则,如图2所示的连接规则join 4,即不再执行。在此情况下,优化器可以生成新的连接规则,对现在时刻处于同一物理机内的逻辑分区重新制定新的分区级连接计划,而对不处在同一物理机内的逻辑分区,从实际应用场景的需求出发,如需要进行处于不同物理机上的多个逻辑分区的连接,则应制定新的连接计划,如分别hash连接的左右两表、广播左表、随机发送右表等执行计划。
当然,上述数据库系统根据该数据迁移代价评估的结果进行是否可执行上述连接规则的判断方式还可选用评分排序制,如对不同物理机内的分区级连接规则执行所需的逻辑分区数据迁移代价进行按代价值的大小进行排序,数据库系统选取代价值在可接受范围内的分区级连接规则,并通过对应的RX算子将其相应逻辑分区的数据迁移回原分区级连接规则指示的物理机以进行原分区级连接规则的执行。
本说明书上述实施例通过引入逻辑算子RX实现了对分布式数据库的分区级连接计划的处理,在数据库系统的优化器静态生成适应分布式数据库的并行分区级连接计划时,通过RX与数据库系统各功能模块的交互引入了自动处理数据迁移或者少数分区不满足分区级连接计划条件的处理能力,基于内建的代价评估模型,可以自适应处理分布式数据库的逻辑分区的物理分布变化,提升用户查询等数据库操作指令的执行效率。本领域的技术人员应知,逻辑算子RX仅是数据库系统在逻辑操作层面的抽象表示,对该逻辑过程的实际实现方式应不限于任何计算机语言的任何表达方式。
与上述流程实现对应,本说明书的实施例还提供了一种分布式数据库的分区级连接装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的CPU、内存以及存储器之外,该数据处理装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图3所示为本说明书所提供的一种分布式数据库的分区级连接装置30,所述分布式数据库包含多个数据表,所述多个数据表基于相同的分区键被分区,其中,任一数据表被分为多个逻辑分区,隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接装置30包括:
接收模块302,接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;
检验模块304,检验所述M个逻辑分区所处的物理机是否发生改变;
代价评估模块306,获取位置发生改变的逻辑分区所处的第二物理机,并进行数据迁移代价评估,所述数据迁移代价评估用于计算将所述逻辑分区从所述第二物理机迁移至第一物理机的代价值;
判断模块308,根据所述数据迁移代价评估的结果确定是否执行所述连接规则。
更优地,为进一步提高分布式数据库并行的分区级连接的执行效率,所述连接规则包括从所述位于第一物理机的M个逻辑分区获取所述分区键取值相同的逻辑分区,对所述分区键取值相同的逻辑分区进行等值连接。
更优地,所述判断模块进一步:对比所述代价值与预设代价值阈值,
若所述代价值小于所述预设代价阈值,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则。
若所述代价值大于所述预设代价阈值,不执行所述连接规则。
更优地,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需的时长。
更优地,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需进行的数据交换次数。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,相关之处参见方法实施例的部分说明即可,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中分布式数据库的分区级连接方法的各个步骤。对分布式数据库的分区级连接方法的各个步骤的详细描述请参见之前的内容,不再重复。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中分布式数据库的分区级连接方法的各个步骤。对分布式数据库的分区级连接方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (9)
1.一种分布式数据库的分区级连接方法,所述分布式数据库包含多个数据表,所述多个数据表基于相同的分区键被分区,其中,任一数据表被分为多个逻辑分区,位于同一物理机的隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接方法包括:
接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;
检验所述M个逻辑分区所处的物理机是否发生改变;
若是,获取位置发生改变的逻辑分区所处的第二物理机,并评估将所述逻辑分区从所述第二物理机迁移至第一物理机的数据迁移代价值;
根据所述数据迁移代价值确定是否将所述逻辑分区从所述第二物理机迁移至第一物理机,若是,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则。
2.根据权利要求1所述的方法,所述根据所述数据迁移代价值确定是否将所述逻辑分区从所述第二物理机迁移至第一物理机,若是,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则,包括:
对比所述数据迁移代价值与预设代价值阈值,
若所述数据迁移代价值小于所述预设代价阈值,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则。
3.根据权利要求1或2所述的方法,所述方法还包括:
若确定不将所述逻辑分区从所述第二物理机迁移至第一物理机,不执行所述连接规则。
4.根据权利要求1所述的方法,所述连接规则包括从所述位于第一物理机的M个逻辑分区获取所述分区键取值相同的逻辑分区,对所述分区键取值相同的逻辑分区进行等值连接。
5.根据权利要求1所述的方法,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需的时长。
6.根据权利要求1所述的方法,所述数据迁移代价包括将所述逻辑分区从所述第二物理机迁移回所述第一物理机所需进行的数据交换次数。
7.一种分布式数据库的分区级连接装置,所述分布式数据库包含多个数据表,所述多个数据表基于相同的分区键被分区,其中,任一数据表被分为多个逻辑分区,位于同一物理机的隶属于不同数据表的多个逻辑分区基于所述相同的分区键进行连接,所述连接装置包括:
接收模块,接收对位于第一物理机的M个逻辑分区规划的连接规则,其中,所述M个逻辑分区分别隶属于M个数据表;
检验模块,检验所述M个逻辑分区所处的物理机是否发生改变;
代价评估模块,获取位置发生改变的逻辑分区所处的第二物理机,并评估将所述逻辑分区从所述第二物理机迁移至第一物理机的数据迁移代价值;
判断模块,根据所述数据迁移代价值确定是否将所述逻辑分区从所述第二物理机迁移至第一物理机,若是,将所述逻辑分区从所述第二物理机位置迁移回所述第一物理机,对所述多个数据表的多个逻辑分区的表格执行所述连接规则。
8.一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1到6任意一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如权利要求1到6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210635770.8A CN115129782A (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210635770.8A CN115129782A (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
CN201810682121.7A CN108959510B (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810682121.7A Division CN108959510B (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129782A true CN115129782A (zh) | 2022-09-30 |
Family
ID=64487428
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810682121.7A Active CN108959510B (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
CN202210635770.8A Pending CN115129782A (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810682121.7A Active CN108959510B (zh) | 2018-06-27 | 2018-06-27 | 一种分布式数据库的分区级连接方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108959510B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020034818A1 (zh) * | 2018-08-14 | 2020-02-20 | 华为技术有限公司 | 分区合并方法和数据库服务器 |
CN110825794B (zh) | 2018-08-14 | 2022-03-29 | 华为云计算技术有限公司 | 分区合并方法和数据库服务器 |
CN111831425A (zh) * | 2019-04-18 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
CN112905591B (zh) * | 2021-02-04 | 2022-08-26 | 成都信息工程大学 | 一种基于机器学习的数据表连接顺序选择方法 |
CN112905596B (zh) * | 2021-03-05 | 2024-02-02 | 北京中经惠众科技有限公司 | 数据处理的方法、装置、计算机设备以及存储介质 |
CN114416884B (zh) * | 2022-03-28 | 2022-06-14 | 北京奥星贝斯科技有限公司 | 连接分区表的方法和装置 |
CN115114328B (zh) * | 2022-08-29 | 2022-10-28 | 北京奥星贝斯科技有限公司 | 针对分布式数据库生成查询计划的方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831211A (zh) * | 2012-08-14 | 2012-12-19 | 中山大学 | 一种基于表关联分析的数据表迁移的方法 |
CN104871153B8 (zh) * | 2012-10-29 | 2019-02-01 | 华为技术有限公司 | 用于分布式大规模并行处理数据库的方法和系统 |
US8799284B2 (en) * | 2012-11-30 | 2014-08-05 | Futurewei Technologies, Inc. | Method for automated scaling of a massive parallel processing (MPP) database |
CN102968498B (zh) * | 2012-12-05 | 2016-08-10 | 华为技术有限公司 | 数据处理方法及装置 |
CN103440301B (zh) * | 2013-08-21 | 2017-06-13 | 曙光信息产业股份有限公司 | 一种数据多副本混合存储方法及系统 |
CN106415534B (zh) * | 2015-05-31 | 2019-09-20 | 华为技术有限公司 | 一种分布式数据库中关联表分区的方法和设备 |
CN105512268B (zh) * | 2015-12-03 | 2019-05-10 | 曙光信息产业(北京)有限公司 | 一种数据查询方法及装置 |
CN107784044B (zh) * | 2016-08-31 | 2020-02-14 | 华为技术有限公司 | 表数据查询方法及装置 |
CN107807938A (zh) * | 2016-09-09 | 2018-03-16 | 华为技术有限公司 | 一种数据表的处理方法及装置 |
-
2018
- 2018-06-27 CN CN201810682121.7A patent/CN108959510B/zh active Active
- 2018-06-27 CN CN202210635770.8A patent/CN115129782A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN108959510A (zh) | 2018-12-07 |
CN108959510B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959510B (zh) | 一种分布式数据库的分区级连接方法和装置 | |
US20220067025A1 (en) | Ordering transaction requests in a distributed database according to an independently assigned sequence | |
KR102226257B1 (ko) | 서비스 데이터를 블록체인 시스템에 기입하기 위한 방법 및 디바이스 | |
US20200327107A1 (en) | Data Processing Method, Apparatus, and System | |
US8122008B2 (en) | Joining tables in multiple heterogeneous distributed databases | |
CN110019292B (zh) | 一种数据的查询方法及装置 | |
US10394805B2 (en) | Database management for mobile devices | |
US11288287B2 (en) | Methods and apparatus to partition a database | |
US11429636B2 (en) | Smart elastic scaling based on application scenarios | |
US20180293257A1 (en) | Method for accessing distributed database and distributed data service apparatus | |
US20200250192A1 (en) | Processing queries associated with multiple file formats based on identified partition and data container objects | |
US20180300147A1 (en) | Database Operating Method and Apparatus | |
US20240061712A1 (en) | Method, apparatus, and system for creating training task on ai training platform, and medium | |
EP2778962B1 (en) | Silo-aware databases | |
Yassien et al. | RDBMS, NoSQL, Hadoop: a performance-based empirical analysis | |
CN115422205A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
US20210349918A1 (en) | Methods and apparatus to partition a database | |
US20230132117A1 (en) | Handling system-characteristics drift in machine learning applications | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
US20130304707A1 (en) | Data Archiving Approach Leveraging Database Layer Functionality | |
Reniers et al. | Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF | |
US10303882B2 (en) | Implementing locale management on PaaS: locale replacement risk analysis | |
US11947537B1 (en) | Automatic index management for a non-relational database | |
US11914598B2 (en) | Extended synopsis pruning in database management systems |
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 |