[发明专利]实现自适应垂直划分的关系型数据库的方法及系统有效
申请号: | 201110069355.2 | 申请日: | 2011-03-22 |
公开(公告)号: | CN102156714A | 公开(公告)日: | 2011-08-17 |
发明(设计)人: | 曾春;邢春晓;张勇;李超;白立宏;李毅 | 申请(专利权)人: | 清华大学;广东环天电子技术发展有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 自适应 垂直 划分 关系 数据库 方法 系统 | ||
1.一种实现自适应垂直划分的关系型数据库的方法,其特征在于,包括以下步骤:
S1、对于一个表,先基于列存储结构不断收集并统计用户查询所涉及的相关列出现的次数,并基于预设时间窗口中的历史数据计算相关列出现次数的阈值,然后导出大于所述阈值的相关列进行垂直划分,并得到垂直划分的相关列集合;
S2、基于垂直划分的相关列集合建立连接数据;
S3、基于所述垂直划分的相关列集合,采用预设策略将表的不同相关列分配到不同的分区上,从而实现查询的并行执行。
2.如权利要求1所述的方法,其特征在于,步骤S1中,基于预设时间窗口中的历史数据计算相关列出现次数的阈值具体为利用下式计算所述阈值:
阈值=(1-w)×Countmax+w×Countmin
其中,w为计划导出的相关列的比例,Countmax表示相关列出现的最大次数,Countmin表示相关列出现的最小次数。
3.如权利要求1所述的方法,其特征在于,步骤S1中,在计算阈值之后还包括判断初始的垂直划分的相关列集合是否为空的步骤,如果初始的垂直划分的相关列集合为空,则直接导出大于阈值的相关列进行垂直划分;否则先合并现有垂直划分的相关列集合中的相关列,并折算在合并时相关列出现的次数,在得到在合并时相关列出现的次数后,再导出大于阈值的相关列进行垂直划分。
4.如权利要求3所述的方法,其特征在于,利用下式计算在合并时相关列出现的次数:
相关列出现的次数=Countold×d+Countnew
其中,Countold为相关列出现的现有次数,Countnew为新出现的次数,d为折算系数。
5.如权利要求1所述的方法,其特征在于,步骤S1中,在得到垂直划分的相关列集合的过程中,定时清除出现次数少于一定值的相关列。
6.如权利要求1所述的方法,其特征在于,在步骤S1之前还包括建立所述列存储结构的步骤,在建立所述列存储结构时,将所记录的列分开存储,若列值的属性一致则将列值排序存储,且将表的记录存储在分区中,每个分区中存储有多个表段,每个表段中存放的记录的数量有一个上限。
7.如权利要求1~6任一项所述的方法,其特征在于,步骤S2中,在建立连接数据时不仅存储值数据块序列号,还存储列值在所述值数据块中排序的位置。
8.一种基于权利要求1~6任一项所述的方法建立的关系型数据库管理系统,其特征在于,包括:
列存储管理器,用于实现记录的列存储机制;
信息采集器,用于采集用户查询所涉及的相关列出现的次数和时间;
垂直划分管理器,用于控制整个关系型数据库的垂直划分,根据采集的信息计算相关列出现次数的阈值并导出大于所述阈值的相关列为垂直划分,并发起相关列读优化连接的创建;所述采集的信息包括计划导出的相关列的比例,相关列出现的最大次数,相关列出现的最小次数;
分区管理器,用于根据节点的负载信息调整并均衡表中数据的分布;
并行查询处理引擎,用于实现基于列存储机制的分布式查询处理。
9.如权利要求8所述的系统,其特征在于,所述列存储机制为:在建立所述列存储结构时,将所记录的列分开存储,若列值的属性一致则将列值排序存储,且将表的记录存储在分区中,每个分区中存储有多个表段,每个表段中存放的记录的数量有一个上限。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学;广东环天电子技术发展有限公司,未经清华大学;广东环天电子技术发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110069355.2/1.html,转载请声明来源钻瓜专利网。