System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据库查询,更具体地,涉及一种基于二叉决策树的数据库范围过滤器设计方法和装置。
技术介绍
1、传统关系型数据库面对当前的数据量急剧增长、数据生成越发快速、数据不断非结构化趋势,却越发力不从心。对于二维表结构的关系型数据库而言,非结构化数据的存储会带来大量的额外开销。key-value store作为一种nosql存储技术,在近年来受到了学界和工业界的高度关注。键值对存储系统将键与值一一对应,然后存储以供将来查询。这类系统提供的接口也很简单,一般包括插入、删除、单点查询和范围查询。
2、lsm树的结构是一种写优化数据结构,其主要写优化方式为延迟以及合并写入操作,将大量微小随机写操作转化为少量较大的顺序写操作,从而最大化磁盘的写入性能。lsm树结构的键值对存储会将磁盘上的数据分为若干层,每一层都由同样大小的容器组成。所谓过滤器,是一种数据结构,用于检索一个元素是否在一个集合中,其优点是空间效率和查询性能都远远超过一般的算法,缺点是有一定的误识别率。
3、当前的主流键值对存储系统基于写优化的考虑,大多采用lsm树结构进行存储。这种存储结构有很多的优点,最基本的特征是将数据以数据块的形式存储到磁盘上。这一存储结构大大提升了写入性能,但是对于读操作而言会造成大量的无效磁盘读取。因此有研究者提出了数据过滤器的概念,来优化数据的查询性能。对于范围查询,需要设计范围过滤器来进行范围过滤。现有的范围过滤器能够较好的处理均匀分布的数据,但在数据偏度较大的情况下会导致出现较高的假阳率而且还会占用较大的空间,范围过
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于二叉决策树的数据库范围过滤器设计方法和装置,其目的在于,考虑到在多数应用场景下数据库中需要处理的数据集并不是均匀的,根据数据集自身的分布特点离线构建一棵初始二叉决策树,再利用所述初始二叉决策树进行模拟在线查询,根据各个叶子结点的访问频次进行剪枝;最后进行压缩编码得到数据库范围过滤器,其表现为一棵不平衡的二叉树;由此解决现有的数据库范围过滤器在数据不均匀情况数据处理性能较差的技术问题。
2、为实现上述目的,按照本专利技术的一个方面,提供了一种基于二叉决策树的数据库范围过滤器设计方法,包括:
3、s1:对待存储数据进行排序预处理得到初始数据;
4、s2:利用所述初始数据离线构建初始二叉决策树;在构建所述二叉决策树过程中,若当前结点在所述初始数据进入后的数据密度和数据偏度符合决策规则,则二分出两个新的结点;
5、s3:利用所述初始二叉决策树进行模拟在线查询,根据各个叶子结点的访问频次进行剪枝;
6、s4:对完成剪枝后的二叉决策树进行压缩和编码,并将压缩得到的编码以及根节点的区间范围进行存储,完成数据库范围过滤器的构建。
7、在其中一个实施例中,所述s2包括:
8、利用所述初始数据离线构建初始二叉决策树,所述初始二叉决策树的每个结点表征一个范围,所述根结点代表所述初始数据中键的范围区间;
9、在构建所述二叉决策树过程中,针对每个结点,若所述当前新结点的数据密度d小于第一阈值或所述当前新结点的数据偏度s大于第二阈值,则二分出两个新的结点,并将所述当前结点的数据集合范围二分给所述两个新的结点;反之则停止生长。
10、在其中一个实施例中,利用公式计算所述当前新结点的数据密度d,n表示区间内键的数量,l表示区间长度。
11、在其中一个实施例中,利用皮尔逊偏度公式计算所述当前结点的数据偏度s,mean为区间内数据的平均值,median为区间内数据的中位数,s为区间内数据的标准差。
12、在其中一个实施例中,所述s3包括:
13、s31:利用所述初始二叉决策树进行模拟在线查询并记录各个叶子结点的访问频次;
14、s32:将所有的叶子结点放入剪枝判定队列中;判断所述剪枝判定队列中每个叶子结点的兄弟结点是否为叶子结点;若是则将该叶子结点与其兄弟结点合并为新的叶子结点,从而实现剪枝。
15、在其中一个实施例中,所述s32包括:
16、将所有的叶子结点按照所述访问频次从低到高顺序放入剪枝判定队列中;判断所述剪枝判定队列中最低访问频次的叶子结点的兄弟结点是否为叶子结点;
17、若是则将该叶子结点与其兄弟结点合并为新的叶子结点,将所述新的叶子结点放入所述剪枝判定队列中,并将二者访问频次之和作为所述新的叶子结点的访问频次,且将二者从所述剪枝判定队列中移除,并对更新后的剪枝判定队列中最低访问频次叶子结点的兄弟结点进行判断,若是则再次合并为新的叶子结点,重复迭代直至达到空间开销阈值。
18、在其中一个实施例中,所述s4包括:
19、对所述完成剪枝后的二叉决策树进行从浅到深的遍历进行压缩得到其压缩编码;
20、将所述完成剪枝后的二叉决策树的根结点的区间范围以及压缩编码存储起来作为最终的二叉决策树范围过滤器。
21、按照本专利技术的另一方面,提供了一种基于二叉决策树的数据库范围过滤器设计装置,包括:
22、预处理模块,用于对待存储数据进行排序预处理得到初始数据;
23、生长模块,用于利用所述初始数据离线构建初始二叉决策树,在构建所述二叉决策树过程中,若当前结点在所述初始数据进入后的数据密度和数据偏度符合决策规则,则二分出两个新的结点;
24、剪枝模块,用于利用所述初始二叉决策树进行模拟在线查询,根据各个叶子结点的访问频次进行剪枝;
25、存储模块,用于对完成剪枝后的二叉决策树进行压缩和编码,并将压缩得到的编码以及根节点区间范围进行存储,完成数据库范围过滤器的构建。
26、按照本专利技术的另一方面,提供了一种数据库系统,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
27、按照本专利技术的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
28、总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
29、(1)本专利技术提供了一种基于二叉决策树的数据库范围过滤器设计方法,考虑到在多数应用场景下数据库中需要处理的数据集并不是均匀的,根据数据集自身的分布特点构建一个初始二叉决策树,该初始二叉决策树的每一个结点都是一个范围,其根结点代表着整个数据集中键的范围区间;利用初始二叉决策树进行模拟在线查询,根据各个叶子结点的访问频次进行剪枝;最后进行压缩编码得到数据库范围过滤器;构建二叉决策树过程中根据数据密度以及偏斜程度生长二叉树,可以解决在数据分布不均匀的情况下假阳率较高的问题;根据访问频率对二叉树进行剪枝操作可以减少空间占用;最终得到数据库范围过滤器在数据不均匀情况下能够高性能地进行数据处理。
...【技术保护点】
1.一种基于二叉决策树的数据库范围过滤器设计方法,其特征在于,包括:
2.如权利要求1所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,所述S2包括:
3.如权利要求2所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,利用公式计算所述当前结点的数据密度D,N表示区间内键的数量,L表示区间长度。
4.如权利要求2所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,
5.如权利要求1所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,所述S3包括:
6.如权利要求5所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,所述S32包括:
7.如权利要求1所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,所述S4包括:
8.一种基于二叉决策树的数据库范围过滤器设计装置,其特征在于,包括:
9.一种数据库系统,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。<
...【技术特征摘要】
1.一种基于二叉决策树的数据库范围过滤器设计方法,其特征在于,包括:
2.如权利要求1所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,所述s2包括:
3.如权利要求2所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,利用公式计算所述当前结点的数据密度d,n表示区间内键的数量,l表示区间长度。
4.如权利要求2所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,
5.如权利要求1所述的基于二叉决策树的数据库范围过滤器设计方法,其特征在于,所述s3包括:
6.如权利要求5所述的基于...
【专利技术属性】
技术研发人员:詹哲俊,陈飞宇,朱挺,尉时进,杨开,刘嘉贞,王桦,周可,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。