[发明专利]一种海量数据的分库分表存储方法与装置在审
申请号: | 202011118667.3 | 申请日: | 2020-10-19 |
公开(公告)号: | CN112015741A | 公开(公告)日: | 2020-12-01 |
发明(设计)人: | 张宁;王义;聂磊 | 申请(专利权)人: | 武汉物易云通网络科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/2458;G06F16/28 |
代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 崔肖肖;向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 海量 数据 分库分表 存储 方法 装置 | ||
1.一种海量数据的分库分表存储方法,其特征在于,包括:
确定对应于所有数据库下的数据表的总个数N以及数据库的总个数M;其中,N≥M,每个数据库容纳N / M个数据表;
根据库索引对各数据库命名,使得M个数据库的库名按库索引顺序递增;根据表索引对各数据表命名,使得N个数据表的表名按表索引顺序递增;
从数据表中选取拆分键字段,对每个数据均基于拆分键字段的值确定对应的库索引和表索引,进而将数据存储至对应的数据库和数据表中;具体为:
确定该数据中拆分键字段的值X,并采用哈希算法对拆分键字段的值X进行散列计算,得到对应的哈希数值H;基于哈希数值H和数据库的总个数M,通过求余数法计算库索引;基于哈希数值H和数据表的总个数N,通过求余数法计算表索引;根据计算的库索引和表索引确定该数据所在的数据库和数据表,进而将该数据存储至对应数据库的对应数据表中;
其中,所述M个数据库的库索引从0开始逐一递增,所述N个数据表的表索引从0开始逐一递增;
则所述基于哈希数值H和数据库的总个数M,通过求余数法计算库索引,具体为:库索引= (H / P) % M;其中,P = N / M,% 表示求余数;
所述基于哈希数值H和数据表的总个数N,通过求余数法计算表索引,具体为:表索引=(H % N)。
2.根据权利要求1所述的海量数据的分库分表存储方法,其特征在于,所述哈希算法采用murmur3算法或murmur2算法。
3.根据权利要求1所述的海量数据的分库分表存储方法,其特征在于,当需要进行数据批量查询时,所述方法还包括:
对查询语句中关键字的值进行聚类处理,以便将具有相同数据库和数据表坐标的值归纳到一起,最终得到z个分组;
根据聚类结果将查询语句拆分为z个分段查询语句,每个分段查询语句对应一个数据库中的一个数据表;
将所述z个分段查询语句分别下发到对应数据库中的数据表下执行。
4.根据权利要求3所述的海量数据的分库分表存储方法,其特征在于,所述查询语句中关键字的值具体采用哈希数值H,则所述对查询语句中关键字的值进行聚类处理具体为:
确定查询语句中每个哈希数值对应的库索引和表索引,并将库索引和表索引均相同的哈希数值归纳到一起作为一组。
5.根据权利要求1-4任一所述的海量数据的分库分表存储方法,其特征在于,M值为2的m次方,N值为2的n次方,且n≥m。
6.根据权利要求1-4任一所述的海量数据的分库分表存储方法,其特征在于,数据表的总个数N以及数据库的总个数M根据企业业务的并发量、数据量、吞吐量进行配置。
7.根据权利要求1-4任一所述的海量数据的分库分表存储方法,其特征在于,数据库的命名方法具体为:所述M个数据库均以“库名称”+“_”+“库索引”的方式命名;其中,库索引从0开始逐一递增;
数据表的命名方法具体为:所述N个数据表均以“表名称”+“_”+“表索引”的方式命名;其中,表索引从0开始逐一递增。
8.一种海量数据的分库分表存储装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-7任一所述的海量数据的分库分表存储方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉物易云通网络科技有限公司,未经武汉物易云通网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011118667.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种继电保护与控制逻辑故障定位方法及装置
- 下一篇:界面生成方法和装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置