CN111274028B - 基于数据库中间件的分区方法、分区装置和可读存储介质 - Google Patents

基于数据库中间件的分区方法、分区装置和可读存储介质 Download PDF

Info

Publication number
CN111274028B
CN111274028B CN202010039777.4A CN202010039777A CN111274028B CN 111274028 B CN111274028 B CN 111274028B CN 202010039777 A CN202010039777 A CN 202010039777A CN 111274028 B CN111274028 B CN 111274028B
Authority
CN
China
Prior art keywords
database
data threshold
data
value
dimension
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
Application number
CN202010039777.4A
Other languages
English (en)
Other versions
CN111274028A (zh
Inventor
冯光武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New Founder Holdings Development Co ltd
Beijing Founder Electronics Co Ltd
Original Assignee
New Founder Holdings Development Co ltd
Beijing Founder Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New Founder Holdings Development Co ltd, Beijing Founder Electronics Co Ltd filed Critical New Founder Holdings Development Co ltd
Priority to CN202010039777.4A priority Critical patent/CN111274028B/zh
Publication of CN111274028A publication Critical patent/CN111274028A/zh
Application granted granted Critical
Publication of CN111274028B publication Critical patent/CN111274028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种基于数据库中间件的分区方法、分区装置和可读存储介质,包括:接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;根据数据阈值的倾斜程度,新建数据库分片实例;根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,以使维度字段分布在数据库分片实例中,根据数据库分片实例生成新增数据库节点。通过控制二维,甚至n维分片字段对数据库中的某些数据进行重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。

Description

基于数据库中间件的分区方法、分区装置和可读存储介质
技术领域
本发明涉及数据库中间件技术领域,具体而言,涉及一种基于数据库中间件的分区方法、一种基于数据库中间件的分区装置及一种计算机可读存储介质。
背景技术
当前主流中间件分片算法主要以Hash(哈希算法)、Range(水平切分)等一维分片算法为主。一维数据划分方法只根据单个属性进行划分,数据划分范围受限制。由于数据库系统经过长时间运行之后,特别是经过大量的插入和删除操作,各节点的数据的分布将不再均衡,各节点的负载会严重失衡,即发生了数据倾斜,如果数据存储分布不合理,将会加大数据操作的响应时间,降低并行数据库的性能。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。
为此,本发明的第一方面提供了一种基于数据库中间件的分区方法。
本发明的第二方面提供了一种基于数据库中间件的分区装置。
本发明的第三方面提供了一种计算机可读存储介质。
有鉴于此,根据本发明的第一方面,提供了一种基于数据库中间件的分区方法,包括:接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;根据数据阈值的倾斜程度,新建数据库分片实例;根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,以使维度字段分布在数据库分片实例中;根据数据库分片实例生成新增数据库节点。
本发明实施例提供的基于数据库中间件的分区方法,通过判断多个数据库节点负载中存储的数据阈值是否发生倾斜,根据数据阈值的倾斜程度,新建数据库分片实例,从而为需要进行重分布的数据库节点负载提供存放空间,进一步提高大数据量场景下数据库的性能;根据预先设置的节点重分布规则,对数据库节点中发生数据阈值倾斜的维度字段进行重新分配,使重新分配的维度字段分布在扩建后的数据库分片实例中,并根据重分布后的数据库分片实例,生成新增数据库节点,实现对超出均衡负载的数据阈值和对应的字段进行转移,从而使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,可以理解的是,分配后的数据库分片实例,能够生成多个新的数据库节点。本发明通过控制二维甚至n维分片字段对数据库中的某些数据进行重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。
另外,根据本发明上述技术方案提供的基于数据库中间件多维分片的方法,还具有如下附加技术特征:
在上述技术方案中,进一步地,根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,具体包括:获取各个数据库节点中预存的维度字段;根据节点重分布规则中的维度遍历规则,提取维度字段中的维度值,并根据维度值对维度字段进行排序;提取维度字段中对应的数据阈值,确认数据阈值和目标临界数值的大小关系,调取排序后的维度字段;将调取的维度字段分配到新建后的任一数据库分片实例中。
在该技术方案中,获取各个数据库节点负载预存的维度字段,根据节点负载重分布规则中的维度遍历规则,提取出维度字段中的维度值,从而便于区分出各个维度的字段和相对应的数据阈值;对维度值进行排序后并提取维度字段中对应的数据阈值,通过匹配数据阈值与目标阈值之间的数量关系,将调取后的维度字段重新分配到新建后的任一数据库分片实例中,进而通过控制多维度字段,对各个数据库节点负载的数据实现重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。
在上述技术方案中,进一步地,提取维度字段中对应的数据阈值,确认数据阈值和目标临界数值的大小关系,调取排序后的维度字段,具体包括:确认数据阈值小于目标临界数值,根据目标临界数值与数据阈值的差值,从下一个排序后的维度字段对应的数据阈值中调取差值,根据节点重分布规则中的调用规则,调取与差值和数据阈值分别对应的维度字段;确认数据阈值大于等于目标临界数值,根据目标临界数值,从数据阈值中调取目标临界数值,根据节点重分布规则中的调用规则,调取与数据阈值对应的维度字段。
在该技术方案中,通过确认数据阈值和目标临界数值之间的数量关系,进而确定调取排序后的维度字段的方法。当数据阈值小于目标临界数值时,说明调取的维度字段的数据阈值量过小,获取数据阈值与目标临界数值之间的差值,还需要从其他的维度字段中调取数据阈值,使该数据阈值与差值相等,从而补足需要分配的数据阈值的数量;根据节点重分布规则中的调用规则,分别对需要分配的数据阈值中的维度字段进行调取,能够理解的是,所调取的维度字段可以存在多个,从而保证调取的数据阈值与目标数据阈值相等,进一步使各个数据库节点负载达到均衡。并且当数据阈值大于等于目标临界数值时,说明调取的维度字段的数据阈值处于饱和状态,只需要从数据阈值中调取与目标临界数值相等的数据量即可;然后根据节点重分布规则中的调用规则,对需要分配的数据阈值中的维度字段进行调取,能够理解的是,所调取的维度字段可以存在一个,从而更进一步保证调取的数据阈值与目标数据阈值相等,使各个数据库节点负载达到均衡,进一步可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。
在上述技术方案中,进一步地,根据数据阈值的倾斜程度,新建数据库分片实例,具体包括:获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,为发生数据阈值倾斜的至少一个数据库节点,新建数据库分片实例。
在该技术方案中,由于比例值能够反映数据阈值的倾斜程度,通过获取各个数据库节点对应的数据阈值的倾斜程度,控制数据库中间件内预设的创建规则,统计各个发生数据阈值倾斜的数据库节点,根据倾斜程度,新建数据库分片实例,用于负载各个发生数据倾斜的数据库节点中对应的数据阈值,能够针对解决数据量较大需要进行数据库扩容的情景,从而扩展了数据库集群中的数据库分片节点实例。
在上述技术方案中,进一步地,接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜,具体包括:统计各个数据库节点内放置的维度字段和与维度字段对应的数据阈值;从数据阈值中筛选出最小的数据阈值,并确定为目标临界数据;根据目标临界数据,查找超过目标临界数据的至少一个数据库节点;对各个超过的数据库节点内存放的数据阈值分别进行计算,以得到对应的数据阈值的倾斜程度。
在该技术方案中,通过统计维度字段和维度字段对应的数据阈值,从而准确获知各个数据库节点的实际阈值量;然后从数据阈值中筛选出最小的数据阈值,以此作为目标临界数据,从而能够作为均衡数据库节点负载的基准;根据目标临界数据,查找出超过目标临界数据的数据库节点,可以说明的是,查找出的数据库节点可以存在多个,然后对查找出的数据库节点上的数据阈值进行计算,进而通过计算结果得到各个发生数据倾斜的数据库节点对应的倾斜程度,从而可以有效的控制数据存储过程中的数据倾斜现象。
在上述技术方案中,进一步地,获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,具体包括:根据创建规则,统计各个比例值的数量;根据数量,确定数据库分片实例的扩建个数。
在该技术方案中,获取倾斜程度的各个比例值,根据数据库中间件内预设的创建规则,从而统计出各个比例值的数量,由于比例值能够反映数据库分片实例的扩建个数,因此根据比例值的数量,确定数据库分片实例的扩建个数,从而在原有的数据库节点的基础上,扩展了数据库集群中的数据库分片实例,便于使超出负载均衡的数据阈值进行转移到扩建后的数据库分片实例中,提高大数据量场景下数据库重分布的性能。
在上述技术方案中,进一步地,对各个超过的数据库节点内存放的数据阈值分别进行计算,以得到对应的数据阈值的倾斜程度,具体包括:计算超过的数据阈值与目标临界数据的差值;将差值与目标临界数据进行比值计算,以确定倾斜程度。
在该技术方案中,对各个超过的数据库节点内存放的数据阈值分别以计算的方式进行统计,其计算步骤具体包括:统计出数据阈值与目标临界数据的差值,然后将差值与目标临界数据进行比值计算,确定比值的倾斜程度,从而使重分布后的数据库节点负载更均衡。
在上述技术方案中,进一步地,接收到数据库路由指令之前,具体包括:数据库中间件判断接收的指令语句中是否包含路由注解,确认从控制语句中提取字段名和属性值、数据库表;根据数据库中间件的分片算法,解析数据库表对应的数据库节点,并调取字段名和属性值,存储在解析后的对应的数据库节点。
在该技术方案中,接收到数据库路由指令之前,数据库中间件能够拦截到用户发送的指令语句,通过判断指令语句中是否包含路由注解,如果包含则说明能够从控制语句中提取字段名和属性值、数据库表;根据数据库中间件内的分片算法,解析数据库表对应的数据库节点,可以说明的是,数据库表能够存储在多个数据库节点中,通过调取控制语句中的字段名和属性值,使其存储在对应的解析后的数据库节点上,从而使各个数据库分片节点能够负载指令语句中相互关联的字段名和属性值、数据库表。
根据本发明的第二方面,提供了一种基于数据库中间件的分区装置,包括存储器和处理器,存储器被配置为存储计算机程序;处理器被配置为执行计算机程序以实现如上述任一技术方案的基于数据库中间件的分区方法的步骤,因而具备该基于数据库中间件的分区方法的全部有益技术效果,在此不再赘述。
根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一技术方案的基于数据库中间件的分区方法的步骤,因而具备该基于数据库中间件的分区方法的全部有益技术效果,在此不再赘述。
根据本发明的附加方面和优点将在下面的描述部分中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明的一个实施例的基于数据库中间件的分区方法的示意流程图;
图2示出了本发明的另一个实施例的基于数据库中间件的分区方法的示意流程图;
图3示出了本发明的再一个实施例的基于数据库中间件的分区方法的示意流程图;
图4示出了本发明的又一个实施例的基于数据库中间件的分区方法的示意流程图;
图5示出了本发明的另一个实施例的基于数据库中间件的分区方法的示意流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面参照图1至图5描述根据本发明一些实施例的基于数据库中间件的分区方法、基于数据库中间件的分区装置和计算机可读存储介质。
实施例一:
本发明第一方面的实施例提供了一种基于数据库中间件的分区方法。
具体阐述关于分区方法的详细内容。
下文将以mycat(数据库中间件的命名方式)分布式数据库中间件为例,此数据库中间件原理主要通过拦截用户发送的控制语句,对控制语句中对应的字段、属性值、数据库表进行解析后,路由在数据库集群中对应的多个数据库分片节点内部,从而对本申请的实施例进行具体说明。
图1示出了本申请的一个实施例的基于数据库中间件的分区方法的示意流程图。
如图1所示,该基于数据库中间件的分区方法包括:
步骤S102,接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;
步骤S104,根据数据阈值的倾斜程度,新建数据库分片实例;
步骤S106,根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,以使维度字段分布在数据库分片实例中;
步骤S108,根据数据库分片实例生成新增数据库节点。
本发明实施例提供的基于数据库中间件的分区方法,首先根据mycat分布式数据库中间件内设置的分片算法,诸如枚举算法、以及其他的算法,配置参数解析,其配置参数的过程能够参考mycat分布式数据库中间件设定的规则,进行配置。其次,基于mycat分布式数据库中间件分片算法的基础上,进行二次开发,针对多维度分片字段,设计了多维分片算法,通过控制二维、甚至多维分片字段对数据库中的某些数据进行重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能,具体功能实现过程:当数据库中间件接收到数据库路由指令后,需要对数据库节点负载中出现失衡的,进行倾斜程度的判断策略。确定失衡的数据库节点负载的倾斜程度后,根据数据阈值的倾斜程度,新建数据库分片实例,进一步为后续设计的分区策略提供分配基础。根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,以使维度字段分布在数据库分片实例中,根据数据库分片实例生成新增数据库节点。
图2示出了本申请的一个实施例的基于数据库中间件的分区方法的另一个示意流程图。
如图2所示,根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,具体包括:
步骤S202,获取各个数据库节点中预存的维度字段;
步骤S204,根据节点重分布规则中的维度遍历规则,提取维度字段中的维度值,并根据维度值对维度字段进行排序;
步骤S206,提取维度字段中对应的数据阈值,确认数据阈值和目标临界数值的大小关系,调取排序后的维度字段;
步骤S208,将调取的维度字段分配到新建后的任一数据库分片实例中。
在该实施例中,通过控制多维度字段,对各个数据库节点负载的数据实现重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。
图3示出了本申请的一个实施例的基于数据库中间件的分区方法的再一个示意流程图。
如图3所示,该基于数据库中间件的分区方法还包括:
步骤S302,接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;
步骤S304,根据数据阈值的倾斜程度,新建数据库分片实例;
步骤S306,获取各个数据库节点中预存的维度字段;
步骤S308,根据节点重分布规则中的维度遍历规则,提取维度字段中的维度值,并根据维度值对维度字段进行排序;
步骤S310,提取维度字段中对应的数据阈值;
步骤S312,确认数据阈值和目标临界数值的大小关系;
步骤S314,如果数据阈值大于等于目标临界数值,根据目标临界数值,从数据阈值中调取目标临界数值,根据节点重分布规则中的调用规则,调取与数据阈值对应的维度字段;
步骤S316,如果数据阈值小于目标临界数值,根据目标临界数值与数据阈值的差值,从下一个排序后的维度字段对应的数据阈值中调取差值,根据节点重分布规则中的调用规则,调取与差值和数据阈值分别对应的维度字段;
步骤S318,将调取的维度字段分配到新建后的任一数据库分片实例中。
在该实施例中,通过节点重分布规则中的维度遍历规则以及根据调取的数据阈值与目标参数之间的连续比较关系,进一步保证调取的数据阈值与目标数据阈值相等,使各个数据库节点负载达到均衡,进一步可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。
具体的路由重分布功能的实现过程是:当用户在数据库设置一条插入语句,即insert into person(shengfen,city)value(‘湖北’,‘武汉’),数据库中间件拦截到该条语句后,会按照内置的分片算法,将字段名和对应的属性值,即,{shengfen:‘湖北’,city:‘武汉’}以及数据库表person路由到dn2中,通过路由的数据库节点,能够合理表明此时的dn2数据库节点中存储了关于省份和城市的数据阈值,可以说明的是,dn2中存储的数据库表person内部数据存储量分布情况中,省份中不仅仅只包含湖北省,并且湖北省里面不仅仅包含武汉市;很明显,省份和城市之间属于二维分片字段。确定dn2此时节点的数据分布不再均衡,获取dn2中预存的维度字段,即,shengfen和city,并且假设此时的shengfen中‘湖北’属性值含有的数据阈值量为80,而‘湖北’字段里面包含的‘武汉’属性值含有的数据阈值量为8;根据节点重分布规则中的维度遍历规则,确定shengfen为一维、city为二维,根据维度值对维度字段进行排序,对shengfen中存储的属性按照维度进行拆分,提取到‘湖北’属性值对应含有的数据阈值量80,然后再次根据维度字段,从‘湖北’这一属性值中提取关于‘武汉’的数据阈值量8,从而实现控制多维分片字段,提取与维度字段对应的数据阈值量;根据dn2节点负载数据阈值300与目标临界数值100的大小关系,确定此时dn2节点负载数据需要分别转移100个负载节点数据阈值到dn3、dn4上;其中当提取‘湖北’这一属性值中提取关于‘武汉’的数据阈值量为8时,明显小于100,其差值相差为92;根据预设规则确定的差值,从下一个排序后的维度字段中调取对应的数据阈值,即,提取已存储的‘湖北’这一属性值中关于‘宜昌’的数据阈值量10,此时,调取的数据阈值量仍然不满足其差值,还需要再次从排序后的维度字段对应的数据阈值调取,直到调取后的数据阈值量能够满足其差值92;同时,也存在数据阈值大于目标临界数值的情况,根据目标临界数值,对需要调取的维度字段的进行拆分截取,使截取后的数据阈值与目标临界数值相等,从而保证分配后的dn3(一种命名方式)和dn4(一种命名方式)能够分别存储100个数据阈值量。再次根据预先设定的调用规则,分别调取与数据阈值量对应的维度字段,从而通过控制二维甚至n维分片字段对数据库中的某些数据进行重分布,实现节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能,提供了一种基于分布式数据库中间件系统数据存储扩容的算法,用以解决大数据量场景下造成的数据倾斜导致数据库性能低下的难题。
图4示出了本申请的一个实施例的基于数据库中间件的分区方法的另一个示意流程图。
如图4所示,该基于数据库中间件的分区方法还包括:
步骤S402,统计各个数据库节点内放置的维度字段和与维度字段对应的数据阈值;
步骤S404,从数据阈值中筛选出最小的数据阈值,并确定为目标临界数据;
步骤S406,根据目标临界数据,查找超过目标临界数据的至少一个数据库节点;
步骤S408,对各个超过的数据库节点内存放的数据阈值分别进行计算,以得到对应的数据阈值的倾斜程度;
步骤S410,获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,为发生数据阈值倾斜的至少一个数据库节点,新建数据库分片实例。
在该实施例中,先筛选出最小的节点负载,然后以此为目标临界数值,作为计算倾斜程度的基准;为了使数据节点分布的负载数据阈值能够更为合理、均衡,需要对失衡的数据库节点负载的倾斜程度进行统计,具体的统计方式可以为,计算负载数据阈值与目标数据阈值的差值,进而以差值与目标数据阈值的比例形式,并获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,具体包括:根据创建规则,统计各个比例值的数量;根据数量,确定数据库分片实例的扩建个数。可以根据系统需求进行任意维度的扩展,对于数据量较大需要进行数据库扩容的情景,扩展性好。
根据数据库节点负载的倾斜程度,比如,两个数据库节点分别命名为dn1(一种命名方式)和dn2(一种命名方式),假设dn1的节点负载数据阈值为100,dn2的节点负载数据阈值为300,则dn2与目标数据阈值100的比例值为2,则根据倾斜程度对应的比例值,扩建2个数据库分片实例,即命名为dn3和dn4;可以说明的是,扩建的数据库分片实例的缓存数据阈值为空。根据二次开发后设计的多维分片算法,对失衡的负载节点数据阈值进行重分布,使失衡超出的数据阈值按照分片字段的维度,路由到扩建后的数据库分片实例。
在该实施例中,对各个超过的数据库节点内存放的数据阈值分别进行计算,以得到对应的数据阈值的倾斜程度,具体包括:计算超过的数据阈值与目标临界数据的差值;将差值与目标临界数据进行比值计算,以确定倾斜程度。
在该实施例中,获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,为发生数据阈值倾斜的至少一个数据库节点,新建数据库分片实例。
图5示出了本申请的一个实施例的基于数据库中间件的分区方法的另一个示意流程图。
如图5所示,接收到数据库路由指令之前,具体包括:
步骤S502,数据库中间件判断接收的指令语句中是否包含路由注解;
步骤S504,确认从控制语句中提取字段名和属性值、数据库表;
步骤S506,根据数据库中间件的分片算法,解析数据库表对应的数据库节点,并调取字段名和属性值,存储在解析后的对应的数据库节点。
实施例二:
本发明第二方面的实施例提供了一种基于数据库中间件的分区装置。
在该实施例中,包括存储器和处理器,存储器中存储有计算机程序,处理器用于执行计算机程序时实现如上述任一实施例中基于数据库中间件的分区方法的方法的步骤,在此不再赘述。
实施例三:
根据本发明的实施例,提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例中提供的基于数据库中间件的分区方法,因此,该计算机可读存储介质包括如上述任一实施例中提供的基于数据库中间件的分区方法的全部有益效果,在此不再赘述。
在该实施例中,计算机可读存储介质,计算机程序被处理器执行时实现如上述任一技术方案的基于数据库中间件的分区方法的步骤,因此该计算机可读存储介质包括上述任一技术方案的基于数据库中间件的分区方法的全部有益效果。
具体地,计算机可读存储介质可以包括能够存储或传输信息的任何介质。计算机可读存储介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
在本申请中,术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.一种基于数据库中间件的分区方法,其特征在于,包括:
接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;
根据数据阈值的倾斜程度,新建数据库分片实例;
根据预先设置的节点重分布规则,将所述发生数据阈值倾斜的所述数据库节点中的维度字段进行分配,以使所述维度字段分布在所述数据库分片实例中;
根据所述数据库分片实例生成新增数据库节点;
所述根据预先设置的节点重分布规则,将所述发生数据阈值倾斜的所述数据库节点中的维度字段进行分配,具体包括:
获取各个所述数据库节点中预存的所述维度字段;
根据所述节点重分布规则中的维度遍历规则,提取所述维度字段中的维度值,并根据所述维度值对所述维度字段进行排序;
提取所述维度字段中对应的所述数据阈值,确认所述数据阈值和目标临界数值的大小关系,调取排序后的所述维度字段;
将所述调取的所述维度字段分配到新建后的任一所述数据库分片实例中。
2.根据权利要求1所述的基于数据库中间件的分区方法,其特征在于,所述提取所述维度字段中对应的所述数据阈值,确认所述数据阈值和目标临界数值的大小关系,调取排序后的所述维度字段,具体包括:
确认所述数据阈值小于所述目标临界数值,根据所述目标临界数值与所述数据阈值的差值,从下一个排序后的所述维度字段对应的所述数据阈值中调取所述差值,根据所述节点重分布规则中的调用规则,调取与所述差值和所述数据阈值分别对应的所述维度字段;
确认所述数据阈值大于等于所述目标临界数值,根据所述目标临界数值,从所述数据阈值中调取所述目标临界数值,根据所述节点重分布规则中的调用规则,调取与所述数据阈值对应的所述维度字段。
3.根据权利要求1或2所述的基于数据库中间件的分区方法,其特征在于,所述根据数据阈值的倾斜程度,新建数据库分片实例,具体包括:
获取所述倾斜程度的各个比例值,控制所述数据库中间件内预设的创建规则,为发生所述数据阈值倾斜的至少一个所述数据库节点,新建所述数据库分片实例。
4.根据权利要求1或2所述的基于数据库中间件的分区方法,其特征在于,所述接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜,具体包括:
统计各个所述数据库节点内放置的所述维度字段和与所述维度字段对应的所述数据阈值;
从所述数据阈值中筛选出最小的所述数据阈值,并确定为目标临界数据;
根据所述目标临界数据,查找超过所述目标临界数据的至少一个所述数据库节点;
对各个超过的所述数据库节点内存放的所述数据阈值分别进行计算,以得到对应的所述数据阈值的倾斜程度。
5.根据权利要求3所述的基于数据库中间件的分区方法,其特征在于,所述获取所述倾斜程度的各个比例值,控制所述数据库中间件内预设的创建规则,具体包括:
根据所述创建规则,统计所述各个比例值的数量;
根据所述数量,确定所述数据库分片实例的扩建个数。
6.根据权利要求4所述的基于数据库中间件的分区方法,其特征在于,所述对各个超过的所述数据库节点内存放的所述数据阈值分别进行计算,以得到对应的所述数据阈值的倾斜程度,具体包括:
计算超过的所述数据阈值与所述目标临界数据的差值;
将所述差值与所述目标临界数据进行比值计算,以确定所述倾斜程度。
7.根据权利要求1或2所述的基于数据库中间件的分区方法,其特征在于,所述接收到数据库路由指令之前,具体包括:
所述数据库中间件判断接收的指令语句中是否包含路由注解,确认从控制语句中提取字段名和属性值、数据库表;
根据所述数据库中间件的分片算法,解析所述数据库表对应的所述数据库节点,并调取所述字段名和所述属性值,存储在解析后的对应的所述数据库节点。
8.一种基于数据库中间件的分区装置,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器用于执行计算机程序时实现如权利要求1至7中任一项的所述基于数据库中间件的分区方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项的所述基于数据库中间件的分区方法的步骤。
CN202010039777.4A 2020-01-15 2020-01-15 基于数据库中间件的分区方法、分区装置和可读存储介质 Active CN111274028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010039777.4A CN111274028B (zh) 2020-01-15 2020-01-15 基于数据库中间件的分区方法、分区装置和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010039777.4A CN111274028B (zh) 2020-01-15 2020-01-15 基于数据库中间件的分区方法、分区装置和可读存储介质

Publications (2)

Publication Number Publication Date
CN111274028A CN111274028A (zh) 2020-06-12
CN111274028B true CN111274028B (zh) 2023-09-05

Family

ID=70997110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010039777.4A Active CN111274028B (zh) 2020-01-15 2020-01-15 基于数据库中间件的分区方法、分区装置和可读存储介质

Country Status (1)

Country Link
CN (1) CN111274028B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970495A (en) * 1995-09-27 1999-10-19 International Business Machines Corporation Method and apparatus for achieving uniform data distribution in a parallel database system
US6401098B1 (en) * 1999-07-15 2002-06-04 American Management Systems, Inc. System for database creation, maintenance and access using event marking and two-dimensional partitioning
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统
CN103714098A (zh) * 2012-09-29 2014-04-09 伊姆西公司 用于对数据库进行分区的方法和系统
CN105426396A (zh) * 2015-10-28 2016-03-23 深圳市万姓宗祠网络科技股份有限公司 一种基于路由算法的数据库分片方法、系统和中间件系统
CN106611064A (zh) * 2017-01-03 2017-05-03 北京华胜信泰数据技术有限公司 分布式关系数据库的数据处理方法和装置
CN107862090A (zh) * 2017-12-04 2018-03-30 中企动力科技股份有限公司 数据库的水平扩展方法及装置
CN109857725A (zh) * 2019-02-20 2019-06-07 北京百度网讯科技有限公司 数据库管理方法及装置、服务器及计算机可读介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101544356B1 (ko) * 2012-10-31 2015-08-13 삼성에스디에스 주식회사 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드
US9372907B2 (en) * 2013-11-26 2016-06-21 Sap Se Table placement in distributed databases
US10782987B2 (en) * 2015-12-04 2020-09-22 Quest Software Inc. Distributed database driver middleware
US11249973B2 (en) * 2018-05-03 2022-02-15 Sap Se Querying partitioned tables in a distributed database

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970495A (en) * 1995-09-27 1999-10-19 International Business Machines Corporation Method and apparatus for achieving uniform data distribution in a parallel database system
US6401098B1 (en) * 1999-07-15 2002-06-04 American Management Systems, Inc. System for database creation, maintenance and access using event marking and two-dimensional partitioning
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统
CN103714098A (zh) * 2012-09-29 2014-04-09 伊姆西公司 用于对数据库进行分区的方法和系统
CN105426396A (zh) * 2015-10-28 2016-03-23 深圳市万姓宗祠网络科技股份有限公司 一种基于路由算法的数据库分片方法、系统和中间件系统
CN106611064A (zh) * 2017-01-03 2017-05-03 北京华胜信泰数据技术有限公司 分布式关系数据库的数据处理方法和装置
CN107862090A (zh) * 2017-12-04 2018-03-30 中企动力科技股份有限公司 数据库的水平扩展方法及装置
CN109857725A (zh) * 2019-02-20 2019-06-07 北京百度网讯科技有限公司 数据库管理方法及装置、服务器及计算机可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多叉树和Spark的改进Apriori算法;曹佳豪等;《信息技术》;20180625(第6期);128-132 *

Also Published As

Publication number Publication date
CN111274028A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
Mehlhorn et al. External-memory breadth-first search with sublinear I/O
KR102266756B1 (ko) Kvs 트리
Bender et al. Cache-oblivious B-trees
US8195705B2 (en) Hybrid search memory for network processor and computer systems
CN102461092A (zh) 用于地址查找的数据结构、方法和系统
US20080228783A1 (en) Data Partitioning Systems
KR100284778B1 (ko) 내용기반 이미지 검색을 위한 고차원 색인구조의 삽입 방법
AU2016230539B2 (en) Retrieval device, retrieval method, program, and recording medium
KR101411321B1 (ko) 액티브 노드와 유사한 특성을 가지는 이웃 노드의 관리방법, 장치 및 그 방법을 구현하기 위한 프로그램이 기록된기록매체
EP1063827A2 (en) Method for address lookup
US9485309B2 (en) Optimal fair distribution among buckets of different capacities
CN111538867A (zh) 一种有界增量图划分方法和系统
CN110287179A (zh) 一种数据缺失属性值的填充设备、装置及方法
CN111274028B (zh) 基于数据库中间件的分区方法、分区装置和可读存储介质
CN112925789B (zh) 一种基于Spark的空间矢量数据内存存储查询方法及系统
Meyer External memory BFS on undirected graphs with bounded degree.
CN112052413A (zh) Url模糊匹配方法、装置和系统
KR20100018409A (ko) 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치
KR100233365B1 (ko) Hg-트리 색인 구조 및 그의 삽입, 삭제, 검색 방법
CN113111351B (zh) 测试方法、装置和计算机可读存储介质
CN102930011B (zh) 流转发表项的处理方法及装置
CN110765073A (zh) 分布式存储系统的文件管理方法、介质、设备及装置
CN116303763A (zh) 一种基于顶点度的分布式图数据库增量图划分方法及系统
US20060026187A1 (en) Apparatus, method, and program for processing data
EP2850526A1 (en) Dynamic allocation of records to clusters in a ternary content addressable memory

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
TA01 Transfer of patent application right

Effective date of registration: 20230608

Address after: 3007, Hengqin international financial center building, No. 58, Huajin street, Hengqin new area, Zhuhai, Guangdong 519031

Applicant after: New founder holdings development Co.,Ltd.

Applicant after: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

Address before: 100871, Beijing, Haidian District Cheng Fu Road 298, founder building, 9 floor

Applicant before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Applicant before: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant