一种将复制表转换为分片表的方法及装置的制造方法

文档序号:8445546阅读:289来源:国知局
一种将复制表转换为分片表的方法及装置的制造方法
【技术领域】
[0001]本发明涉及大数据处理技术,尤其涉及一种将复制表转换为分片表的方法及装置。
【背景技术】
[0002]随着大数据时代的到来,以小型计算机加存储阵列构建的传统关系型数据库由于横向扩展能力的限制,已经越来越不适应海量数据对计算能力的需求。近些年来,分布式系统成为一种趋势。各数据库厂商和用户也在积极研究分布式关系数据库的架构和应用。希望使用廉价的X86服务器堆叠出具有高可用和高扩展能力的数据库集群,从而摆脱对大型设备的依赖。
[0003]大多数厂商和用户选择X86服务器和开源的mysql数据库来构建分布式关系数据库集群。在分布式关系数据库中,一台服务器和mysql数据库为一个节点,所有的节点共同构成分布式集群。分布式系统最大的优点就是具有良好的横向扩展能力,并可将业务请求分布到各节点来完成。而在分布式关系型数据库系统中,为了尽量提升集群的并发访问能力,通常有两种常见的表:复制表和分片表。所谓复制表,就是在每个节点都完全相同的数据表。通常应用于查询频繁,更新较少的场景。好处是查询效率高,能充分发挥分布式集群计算和输入输出(I/O, Input/Output)能力,缺点是冗余度高,存储空间占用大。分片表,就是按照一定的规则(hash、rang、list等方式)将数据分片存放在不同的节点,每个节点仅保存其中一部分数据。好处是节省存储空间,又有利于多节点的并发访问。不足之处就是可能存在一定的跨节点访问。同时在分片设计时还要尽量避免跨节点的数据关联查询可能。
[0004]由于信息生命周期特性,随着时间的推移,某些热度高的表会逐渐变冷,为了节约存储空间,也就有了将复制表转换成分片表的需求。常用的复制表转换分片表的方法是重建法。假设需要转换的表为T,重建法包括以下步骤:
[0005]步骤Al,按分片规则新建分片表T_sharding。
[0006]步骤A2,复制表T改名为T_back。
[0007]步骤A3,抽取T_back数据,重新写入到T_sharding表。
[0008]步骤A4, T_sharding改名为表T.按照分片表的分片规则,重新创建分片表。
[0009]步骤A5,丢弃 T_back 表。
[0010]通过上述Al至A5步骤最终完成复制表至分片表的转换,但是重建法存在以下问题:1)需要删除和重新加载数据时,效率低、时间长、而且会增加系统网络和I/o的开销;2)在表的转换期间,数据不可用、业务访问中断,而且表越大,业务中断的时间越长;这在电信级业务系统中是难以接受的;3)在数据转换过程中,节点出现异常情况而进行重启后,很难保证数据的一致性和可用性。

【发明内容】

[0011]有鉴于此,本发明实施例为解决现有技术存在的问题而提供一种将复制表转换为分片表的方法及装置,能够提升转换效率,减少业务中断时间。
[0012]本发明实施例的技术方案是这样实现的:
[0013]一种将复制表转换为分片表的方法,所述方法用于分布式关系数据库,所述数据库包括一个以上的集群节点,所述集群节点管理一个以上的数据节点;对所要加载的数据设置分片规则,所述方法包括:
[0014]所述集群节点按照所述分片规则创建复制表,并将所述复制表发送给所述集群节点所管理的数据节点,其中所述复制表包括按照所述分片规则创建的编号的一个以上分片;
[0015]在将所述复制表转换为分片表时,所述集群节点按照所述分片规则和预设的分片分发规则,确定每一所述数据节点对应的删除信息,并将所述删除信息分别对应地发送给所述集群节点所管理的数据节点,其中所述删除信息包括分片的编号;
[0016]各所述数据节点根据各自所接收的删除信息删除所述复制表中的分片。
[0017]优选地,所述方法还包括:
[0018]在将所述复制表转换为分片表时,所述集群节点将所述删除信息写入第一本地日
O
[0019]优选地,所述删除信息还包括与所述分片的编号对应的分片的存储位置;所述方法还包括:
[0020]各所述数据节点将各自的所述分片的编号及其对应的分片的存储位置写入各自对应的第二本地日志。
[0021]优选地,在各所述数据节点根据各自所接收的删除信息删除所述复制表中的分片之前,所述方法还包括:
[0022]各所述数据节点根据所述删除信息将所需删除的分片的当前状态配置为删除状态,并将所述删除状态写入各自对应的第二本地日志;并将所述复制表的元数据属性从复制表修改为分片表,然后向所述集群节点发送修改元数据请求消息。
[0023]优选地,所述方法还包括:
[0024]所述集群节点接收到所述集群节点所管理的数据节点发送的修改元数据请求消息后,将所述修改元数据请求消息写入所述第一本地日志,并修改集群的元数据信息。
[0025]一种将复制表转换为分片表的方法,该方法用于分布式关系数据库,所述数据库包括一个以上的集群节点,所述集群节点管理一个以上的数据节点;对所要加载的数据设置分片规则,该方法包括:
[0026]所述集群节点按照所述分片规则创建复制表,并将所述复制表发送给所述集群节点所管理的数据节点,其中所述复制表包括按照所述分片规则创建的编号的一个以上分片;
[0027]在将所述复制表转换为分片表时,所述集群节点按照所述分片规则和预设的分片分发规则,确定每一所述数据节点对应的删除信息,并将所述删除信息分别对应地发送给所述集群节点所管理的数据节点,其中所述删除信息包括分片的编号。
[0028]一种将复制表转换为分片表的方法,所述方法用于分布式关系数据库,所述数据库包括一个以上的集群节点,所述集群节点管理一个以上的数据节点;所述方法包括:
[0029]各所述数据节点根据所归属的集群节点发送的删除信息删除所述复制表中的分片。
[0030]一种将复制表转换为分片表的装置,所述装置包括设置单元、创建单元、确定单元、发送单元和删除单元,其中:
[0031]所述设置单元,用于对所要加载的数据设置分片规则;
[0032]所述创建单元,用于按照所述分片规则创建复制表,并将所述复制表发送给所述集群节点所管理的数据节点,其中所述复制表包括按照所述分片规则创建的编号的一个以上分片;
[0033]所述确定单元,用于在将所述复制表转换为分片表时,按照所述分片规则和预设的分片分发规则,确定每一所述数据节点对应的删除信息,所述删除信息包括分片的编号;
[0034]所述发送单元,用于将所述删除信息分别对应地发送给所述集群节点所管理的数据节点;
[0035]所述删除单元,用于各所述数据节点根据各自所接收的删除信息删除所述复制表中的分片。
[0036]一种将复制表转换为分片表的装置,所述装置包括设置单元、创建单元、确定单元和发送单元;其中:
[0037]所述设置单元,用于对所要加载的数据设置分片规则;
[0038]所述创建单元,用于按照所述分片规则创建复制表,并将所述复制表发送给所述集群节点所管理的数据节点,其中所述复制表包括按照所述分片规则创建的编号的一个以上分片;
[0039]所述确定单元,用于在将所述复制表转换为分片表时,按照所述分片规则和预设的分片分发规则,确定每一所述数据节点对应的删除信息,所述删除信息包括分片的编号;
[0040]所述发送单元,用于将所述删除信息分别对应地发送给所述集群节点所管理的数据节点。
[0041]一种将复制表转换为分片表的装置,所述装置包括删除单元;
[0042]所述删除单元,用于根据所归属的集群节点发送的删除信息删除所述复制表中的分片。
[0043]本发明实施例中,对所要加载的数据设置分片规则,所述集群节点按照所述分片规则创建复制表,并将所述复制表发送给所述集群节点所管理的数据节点,其中所述复制表包括按照所述分片规则创建的编号的一个以上分片;在将所述复制表转换为分片表时,所述集群节点按照所述分片规则和预设的分片分发规则,确定每一所述数据节点对应的删除信息,并将所述删除信息分别对应地发送给所述集群节点所管理的数据节点,其中所述删除信息包括分片的编号;各所述数据节点根据各自所接收的删除信息删除所述复制表中的分片;如此,能够提升转换效率,减少业务中断时间。
【附图说明】
[0044]图1为本发明实施例一将复制表转换为分片表的方法的实现流程示意图;
[0045]图2为本发明实施例数据节点创建复制表的结构示意图;
[0046]图3-1和图3-2为本发明实施例数据节点从复制表中删除分片的结构示意图;
[0047]图4为本发明实施例二将复制表转换为分片表的方法的实现流程示意图;
[0048]图5为本发明实施例三将复制表转换为分片表的装置的组成结构示意图。
【具体实施方式】
[0049]在本发明的各实施例中,当创建复制
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1