【技术实现步骤摘要】
一种面向更新分布的学习索引模型
[0001]本专利技术属于一维数据索引
,具体涉及一种面向更新分布的学习索引模型。
技术介绍
[0002]数据索引一直是计算机领域的核心问题之一,而处理数据插入则是数据索引领域最重要的问题之一;随着大数据时代的到来,支持频繁的数据插入与高效查询的需求与日俱增。过去几十年,一维数据一般采用B
‑
树及其变体来索引,然而随着数据量的增加以B
‑
树为基础的传统数据库索引往往需要较大的IO开销以及较高的空间代价,寻找一种IO开销与空间开销比B
‑
树更小同时可以有效处理频繁数据插入的新型索引结构是很有意义且必要的。
[0003]近年来,学习索引的概念被提出,它的主要思想是索引可以看作模型,可以使用简单的机器学习模型来代替被广泛使用的传统的一维数据索引结构B
‑
树。使用机器学习模型来索引一维数据,通过这种方式可以有效避免传统索引每次查询的多次间接搜索,大大提高了以为数据的检索速度;另外,由于机器学习模型只在节点内存储模型参 ...
【技术保护点】
【技术特征摘要】
1.一种面向更新分布的学习索引模型,其特征在于,包括如下步骤:(1)使用开销模型将键构建为RMI结构;(2)在每个内部节点利用数据的累积分布函数均匀划分数据的范围,保证每个内部节点内的数据空间间隔相同;(3)在每个叶子节点构建一个单调的带间隙的一元线性回归模型,利用该模型使用基于模型导向的方法插入键;(4)在构建索引过程中学习数据更新分布,根据数据更新分布为更新数据预留间隙等待插入;(5)在叶子节点内使用指数搜索进行键查询与插入;(6)插入一定量数据后,对模型进行扩展或分裂操作,以有效处理后续更新。2.根据权利要求1所述的学习索引模型,其特征在于:所述步骤(1)的具体实现方式为:首先将所有键按从小到大进行排序,然后根据键的分布,使用开销模型计算每层开销直至开销增长,RMI结构的内部节点进行数据范围划分,叶子节点进行数据拟合与预测,所述的键即为一维数据。3.根据权利要求1所述的学习索引模型,其特征在于:所述步骤(2)的具体实现方式为:学习数据的累积分布函数,根据数据的累积分布函数计算内部节点的模型参数,使得线性回归模型可以将数据按范围均分到其对应的孩子节点中,将键值输入该模型中,取模型输出结果的整数部分作为该键所属孩子节点的序号。4.根据权利要求1所述的学习索引模型,其特征在于:所述步骤(3)的具体实现方式为:使用一元线性拟合的方式训练每个叶子节点内的数据,将键值输入到该线性回归模型中,取模型输出结果的整数部分作为模型预测位置,当预测位置不是间隙时,通过移动少量数据完成插入,保证键真实位置与预测位置误差较小,所属的间隙即为内存数组的位置没有存储数据。5.根据权利要求1所述的学习索引模型,其特征在于:所述步骤(4)的具体实现方式为:首先在批量加载数据之前,根据更新频率得到更新数据进而计算更新数据分布,在批量加载数据时,利用提前学习到的更新分布划分内部节点范围,并根据更新分布设置叶子节点容量,为即将插入的数据预留间隙等待数据插入,若模型预测的插入位置是一个间隙同时满足数据有序排列,可以直接插入到预测位置;否则,由于为即将插入数据预留的间隙是根据步骤(3)的基于模型导向的方法计算,因此模型预测位置比较准确,使用指数搜索确定插入位置。6.根据权利要求1所述的学习索引模型,其特征在于:所述步骤(5)的具体实现方式为:根据步骤(3)中训练的线性回归模型与基于模型导向的插入方法,键真实位置与模型预测位置相近,从模型预测位置开始使用指数搜索进而实现快速查找。7.根据权利要求1所述的学习索引模型,其特征在于:所述步骤(6)的具体实现方式为:当在某一叶子节点频繁插入数据时,模型有效性随之下降,因此当某一叶子节点对应数组的数据量到达扩展阈值时,扩展叶子节点模型与数组容量;当叶子节点数据量到达分裂阈值时,将当前叶子节点内数据重新训练为内部节点,并将数据按范围分配到对应的叶子节点中。8.根据权利要求1所述的学习索引模型,其特征在于,包括如下具体步骤:
(1)使用开销模型将键构建为RMI结构,为了适应不同的数据分布,使用开销模型实现自适应构建,分析影响索引性能的因素,包括从根节点遍历到叶子节点的开销、在叶子数组内使用指数搜索的开销、插入数据导致的数据滑动的开销,根据它们不同的影响程度分别设置相应权重,计算每一层各个节点的开销总和,直至层级开销连续增加,自底向上开始节点合并,直到所有节点遍历结束,索引构建完成;(2)在每个内部节点利用数据的累积分布函数均匀划分数据的范围,保证每个内部节点内的数...
【专利技术属性】
技术研发人员:郭娜,王雅琪,姜皓南,夏秀峰,安云哲,周大海,
申请(专利权)人:沈阳航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。