[发明专利]数据库系统的数据处理方法以及数据库系统有效
申请号: | 201210530823.6 | 申请日: | 2012-12-10 |
公开(公告)号: | CN102968503A | 公开(公告)日: | 2013-03-13 |
发明(设计)人: | 宋怀明;李晋钢;杨浩;苗艳超;刘新春;邵宗有 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;孙征 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 系统 数据处理 方法 以及 | ||
技术领域
本发明涉及数据库技术领域,更具体地,涉及一种数据库系统的数据处理方法以及数据库系统。
背景技术
在采用无共享结构的数据库集群系统(如IBM公司的产品DB2UDB,产品MySQL Cluster,以及EMC公司的产品Green Plum)中,由于数据量巨大,必须采用一种划分策略将数据分布到多个数据库节点上,Hash划分则是其中最常见的一种数据划分方法。Hash划分通过对关系表中的某一列进行Hash计算,可以快速地定位相关记录所在的数据库节点,Hash划分对数据加载和查询处理具有较好的性能提升。特别地,Hash分区对于大表统计和大表关联查询的性能提升非常明显。
在集群数据库系统中,Hash划分主要是为了解决数据的分布和计算的划分,实现了数据记录到数据库节点的映射关系,其计算方式如下:
Hash(column_value)=nodeid
其中,column_value表示的数据表的划分列的值,nodeid表示数据划分后的分布节点,通过该Hash算法,可以轻易的计算出某个数据列属于哪个数据库节点。nodeid的取值必须和数据库系统中的节点数相对应,随着数据量的增加,系统不可避免的需要面临升级扩容的需求。此时nodeid的取值范围就发生了变化,原设定的Hash划分函数难以适应数据库节点数的动态扩容,必须进行重新计算。而在大规模数据库系统中,数据的重新划分计算会带来巨大的计算开销和迁移开销。
发明内容
为解决现有技术存在的问题,本发明提供了一种采用新的数据划分和分布对数据库系统进行数据处理的方法和一种新的数据库系统,
根据本发明的一方面,提供了一种数据库系统的数据处理方法,包括:
步骤A,将数据表中的每一数据记录根据数据记录与数据虚分区的映射关系映射到相应的数据虚分区;
步骤B,基于数据虚分区与数据库节点的映射关系将每一数据虚分区映射到相应的数据库节点;
步骤C,将数据表中的各数据记录存储到相应的数据库节点的相应的数据虚分区中。
在可选实施例中,所述数据处理方法还包括:在步骤A之前建立所述数据表的数据虚分区信息记录,所述数据虚分区信息记录包括以下字段:数据表名、数据表的列名、数据虚分区规则,数据虚分区的总数和数据库节点的总数,其中,所述数据虚分区规则包括轮询分区规则、哈希Hash分区规则、范围Range分区规则或者列表List分区规则。
在可选实施例中,所述数据处理方法执行B步骤包括:建立将每一数据虚分区映射到对应的数据库节点的数据虚分区映射表,所述数据虚分区映射表包括以下字段:数据虚分区号和数据库节点号。
在可选实施例中,步骤A可以包括:根据所述数据虚分区规则确定对所述数据表采用的数据记录与数据虚分区的映射关系;以及,
根据所述数据表的列值、数据虚分区的总数以及所采用的数据记录与数据虚分区的映射关系将所述数据表中的数据记录映射到相应的数据虚分区。
在可选实施例中,所述数据处理方法还包括:在数据库系统扩容时,将每个原数据库节点中的部分数据虚分区根据负载均衡策略迁移到新增的数据库节点,其中每个原数据库节点包括多个数据虚分区。
在可选实施例中,所述数据处理方法还包括:在数据库系统减容时,将要被减的数据库节点中的多个数据虚分区根据负载均衡策略迁移到其他数据库节点。
在可选实施例中,将每个原数据库节点中的部分数据虚分区根据负载均衡策略迁移到新增的数据库节点,包括:
获取扩容前每个数据库节点中配置的数据虚分区数,为第一数据虚分区值;
将数据虚分区的总数除以扩容后数据库节点的总数,得到每个数据库节点中应配置的数据虚分区数,为第二数据虚分区值;
将每个数据库节点的所述第一数据虚分区值减去所述第二数据虚分区值得到多余的数据虚分区;以及,
将每个数据库节点中的多余的数据虚分区迁移到新增的数据库节点。
在可选实施例中,所述数据处理方法在步骤C之后,还包括:
当进行数据查询时,根据数据表中的要查询的数据记录所在的列的取值信息以及数据记录与数据虚分区的映射关系确定所述要查询的数据记录所在的数据虚分区;
根据所确定的数据虚分区以及所述数据虚分区与数据库节点的映射关系确定对应的数据库节点;以及,
从所确定的数据库节点中的所确定的数据虚分区获取要查询的数据记录。
根据本发明的另一方面,还提供可一种数据库系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210530823.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:带有局部簇重构的非均匀分簇路由算法
- 下一篇:一种散货集装箱