一种应用于数据库的数据处理方法及系统技术方案

技术编号:13589606 阅读:85 留言:0更新日期:2016-08-25 17:01
本发明专利技术公开了一种应用于数据库的数据处理方法及系统,其中,所述方法包括:根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系;根据主键、数据表编号和数据库编号三者的映射关系将主键所对应的数据存储至相应数据库的数据表中。采用本发明专利技术,能够将数据均匀分布在数据库中,并且能支持快速的数据迁移处理。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,更为具体而言,涉及一种应用于数据库的数据处理方法及系统
技术介绍
为了支持高并发、大数据量的访问场景,现有技术通常都会采用数据库的分库策略从而提高应用的并发处理能力。然而,对应用数据进行分库,就会涉及到数据如何分布和数据迁移的问题。目前,并没有好的方法能既保证数据均匀分布,同时还可以支持数据(例如,热点数据)的快速迁移。例如,现有的数据库分库方式,都是通过一致性哈希算法计算出记录/数据应当分布在哪个数据库中,然后存储在该数据库中。这种方式存在如下缺点:仅是计算出数据存储的数据库,该数据库在访问过于集中时容易导致数据库性能下降;在需要迁移部分数据到其他数据库中时,只能单条记录导出,然后再导入到其他的数据库中,该方式效率低下,导致联机交易时间长并且影响了涉及到数据库的所有数据访问,影响范围大。
技术实现思路
鉴于现有技术的上述缺陷,本专利技术实施方式提供了一种应用于数据库的数据处理方法及系统,能够将数据均匀分布在数据库中,并且能支持快速的数据迁移处理。具体地,本专利技术实施方式提供了一种应用于数据库的数据处理方法,其包括:根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系;根据主键、数据表编号和数据库编号三者的映射关系将主键所对应的数
据存储至相应数据库的数据表中。相应地,本专利技术实施方式还提供了一种应用于数据库的数据处理装置,其包括:关系确认模块,用于根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系;数据存储模块,用于根据主键、数据表编号和数据库编号三者的映射关系将主键所对应的数据存储至相应数据库的数据表中。采用本专利技术实施方式,具有以下有益效果:根据预设策略确定主键、数据表编号、数据库编号三者之间的映射关系,从而能将数据均匀分布在数据库的数据表中,尽量减少热点数据的集中分布。通过将待迁移数据完整分布在整张表中,便于进行整张数据表迁移,可以使用命令快速迁移,同时对应用的影响仅限于该表中数据,对其他数据无任何影响,从而将对应用的影响降至最低。附图说明图1是根据本专利技术实施例的一种应用于数据库的数据处理方法的流程示意图;图2是根据本专利技术实施例的一种根据第一映射策略确定主键、数据表编号二者的映射关系的流程示意图;图3是根据本专利技术实施例的一种根据第二映射策略确定数据表编号、数据库编号二者的映射关系的流程示意图;图4是根据本专利技术实施例的一种应用于数据库的数据处理装置的框图的一例;图5是根据本专利技术实施例的一种应用于数据库的数据处理装置的框图的另一例。具体实施方式为了便于理解本专利技术技术方案的各个方面、特征以及优点,下面结合附图对本专利技术进行具体描述。应当理解,下述的各种实施方式只用于举例说明,
而非用于限制本专利技术的保护范围。图1是根据本专利技术实施例的一种应用于数据库的数据处理方法的流程示意图。参照图1,所述方法包括:10:根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系。换言之,也就是确定主键、数据表、数据库三者之间的映射关系。12:根据主键、数据表编号和数据库编号三者的映射关系将主键所对应的数据存储至相应数据库的数据表中。在本专利技术中,通过数据表编号(业界又称作篮子号)和数据库编号来区分不同的数据表(业界又称作篮子)和数据库。主键则优选区分度高的主键,在本实施例中可以利用主键的键值计算其存储所在的数据库编号和数据表编号。举例而言,针对电子商务系统,采用本专利技术实施例提供的方法,可以将客户号作为主键来计算其对应的数据库编号和数据表编号,并将相应数据存储到对应数据库的数据表中。采用本专利技术实施例提供的方法,根据预设策略确定主键、数据表编号、数据库编号三者之间的映射关系,从而能将数据均匀分布在数据库的数据表中,尽量减少热点数据分布。而通过将待迁移数据完整分布在整张表中,便于进行整张数据表迁移,并且可以使用命令快速迁移。此外,数据迁移对应用的影响仅限于迁移数据的数据表中的数据,对其他数据无任何影响,将对应用的影响降至最低。可选地,在本实施例的一种实现方式中,处理10可以通过先确定主键、数据表编号二者的映射关系,再确定数据表编号、数据库编号二者的映射关系的方式实现。当然,在其它实现方式中,也可以根据本实现方式提供的方法直接确定三者的对应关系。具体而言,在本实现方式中,如图2所示,可采用以下方式从而根据第一映射策略确定主键、数据表编号二者的映射关系(输入参数为主键、输出参数为数据表编号)。1.计算主键的哈希值H。例如,根据MurMurHash哈希算法计算。2.根据H进行判断。如果H为0,则主键对应的数据表编号为最小编号;如果H为232,则主键对应的数据表编号为最大编号;如果H∈(0,232),则主键对应的数据表编号为[(H÷L)](即,对H÷L的值取整),L表示每个数据表对应的哈希区间长度。其中,L=232÷N,N表示数据表总数。数据表总数是指分布在所有数据库上的所有数据表的个数,例如:篮子总数是1024,那么客户表可分成1024张表,每张表类似于cust1、cust2、cust3、cust4…cust1024,即编号从小到大依次是从1到1024。3.返回数据表编号。另一方面,在本实现方式中,可以采用以下方式从而根据第二映射策略确定数据表编号、数据库编号二者的映射关系。将每个数据库编号及每个数据库编号对应的虚拟节点的哈希值存储于采用预设结构的哈希环中;根据哈希值从小到大的顺序遍历所述哈希环,对于每个数据表编号,将遍历得到的第一个比其哈希值大的哈希值所对应的数据库编号作为与其对应的数据库编号。具体而言,如图3所示,首先,初始化一致性哈希环nodes,其存储哈希值和数据库编号的映射关系。包括:①初始化nodes为java.util.TreeMap结构。②由于每个数据库编号对应多个虚拟节点,因此,计算每个虚拟节点(每个虚拟节点用字符串:“\SHARD\+数据库编号+\NODE\+虚拟节点编号”表示,其中,SHARD和NODE均为字符串,用于表示所有虚拟节点所对应的字符串中的相同部分,原则上可以取任意值)的哈希值,从而将每个数据库编号和与其对应的虚拟节点的哈希值建立一个对应关系,并将计算得出的每个虚拟节点的哈希值和对应的数据库编号存储于哈希环中。在哈希环中,按照哈希值从小到大的顺序排列,哈希环中的节点个数为:数据库数目×每个数据库编号对应的虚拟节点数目。然后,计算各数据表编号的哈希值。之后,遍历哈希环,针对每一个数据表编号,找出哈希环中第一个大于数据表编号的哈希值的哈希值所对应的数据库编号。最后,返回数据表编号和数据库编号的映射关系。采用本实现方式提供的方法,支持快速迁移数据。例如,在数据迁移时,将待迁移数据表中的数据直接通过imp/exp命令迁移到另一数据库中,同时修
改数据表编号和数据库编号的映射关系。可选地,在本实施例的一种实现方式中,如图1中虚线框所示,所述方法还可以包括:14:为每个数据表编号设置用于表示该数据表编号是否可用的可用状态字段。换言之,所述可用状态字段用于配置表示数据表编号所对应的数据表是否可用的信息。例如,当可用状态字段为1时,表示数据表编号可用,此时允许正常访问数据库表;当可用状态字段为0时,表示数据表编本文档来自技高网
...

【技术保护点】
一种应用于数据库的数据处理方法,其特征在于,所述方法包括:根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系;根据主键、数据表编号和数据库编号三者的映射关系将主键所对应的数据存储至相应数据库的数据表中。

【技术特征摘要】
1.一种应用于数据库的数据处理方法,其特征在于,所述方法包括:根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系;根据主键、数据表编号和数据库编号三者的映射关系将主键所对应的数据存储至相应数据库的数据表中。2.如权利要求1所述的方法,其特征在于,根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系包括:采用以下方式从而根据第一映射策略确定主键、数据表编号二者的映射关系:根据H进行判断;如果H为0,则主键对应的数据表编号为最小编号;如果H为232,则主键对应的数据表编号为最大编号;如果H∈(0,232),则主键对应的数据表编号为[(H÷L)];其中,H表示主键的哈希值,L表示各数据表对应的哈希区间长度。3.如权利要求1或2所述的方法,其特征在于,根据预设的映射策略确定主键、数据表编号、数据库编号三者之间的映射关系包括:采用以下方式从而根据第二映射策略确定数据表编号、数据库编号二者的映射关系:将每个数据库编号及每个数据库编号对应的虚拟节点的哈希值存储于采用预设结构的哈希环中;根据哈希值从小到大的顺序遍历所述哈希环,对于每个数据表编号,将遍历得到的第一个比其哈希值大的哈希值所对应的数据库编号作为与其对应的数据库编号。4.如权利要求1所述的方法,其特征在于,所述方法还包括:在执行数据迁移处理时,将待迁移数据所在的待迁移数据表迁移至目标数据库。5.如权利要求1或4所述的方法,其特征在于,所述方法还包括:为每个数据表编号设置用以表示该数据表编号是否可用的可用状态字段。6.如权利要求5所述的方法,其特征在于,所述方法还包括:在数据迁移处理之前,将待迁移数据所在的待迁移数据表所对应的数据表编号的可用状态字段设置为不可用,从而禁止该数据表被访问;在数据迁移处理之后,修改数据表编号、数据库编号二者的映射关系。7.一种应用于数据库的数据处理...

【专利技术属性】
技术研发人员:邢磊舒展聂砂贾国琛杨宇鹏
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1