[发明专利]时间旅行和时态聚合查询处理方法有效
申请号: | 201810493842.3 | 申请日: | 2018-05-22 |
公开(公告)号: | CN108664662B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 过敏意;姚斌;张伟;沈耀;李超;郑文立 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458 |
代理公司: | 上海市汇业律师事务所 31325 | 代理人: | 唐嘉伟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 时间 旅行 时态 聚合 查询 处理 方法 | ||
1.一种时间旅行和时态聚合查询处理方法,其特征在于,该方法采用基于时间旅行和时态聚合查询的分布式处理框架系统,该系统包括分区单元、局部索引单元和全局索引单元;所述分区单元负责将所有数据分区到分布式节点;所述局部索引单元用于管理每个分区中的时态数据;所述全局索引单元用于管理分区间隔;
所述时间旅行和时态聚合查询处理方法,包括以下两个阶段:(i)全局修剪阶段和(ii)局部查找阶段;
所述全局修剪阶段利用全局索引和查询输入来修剪不相关的分区;
所述局部查找阶段主要根据本地索引和部分查询输入,在每个候选分区中检索符合条件的记录;在所述局部查找阶段使用不同的索引以支持时间旅行查询和时态聚合查询;所述时间旅行查询包括时间旅行精确匹配查询和时间旅行范围查询;
所述全局修剪阶段采用全局分区剪枝方法,具体包括如下步骤:
1)初始化查询结果R为空集;
2)输入要查询的时间版本v,全局索引根节点root;
3)判断root是否为NULL,否则到步骤a),是则结束流程;
a)判断是否v∈root.Ip,是则到步骤i,否则到步骤b);root.Ip指根结点root的分区间隔;
i.将root.id加入集合R中;root.id指根结点root相应的分区;
b)递归调用该全局分区剪枝方法,输入为v,root左孩子;
c)递归调用该全局分区剪枝方法,输入为v,root右孩子;
4)返回R。
2.如权利要求1所述的方法,其特征在于,所述时间旅行精确匹配查询,具体包括如下步骤:
1)初始化查询结果R为空集;
2)输入查询关键字key,查询时间版本v;
3)对查询时间版本v进行全局分区剪枝,剪枝结果赋值给P;所述全局分区剪枝采用如权利要求1所述的全局分区剪枝方法;
4)对P中的每个分区p:判断P中的每个分区p是否遍历完成?如否则进入步骤a),如是则结束;
a)局部索引根节点rl赋值给root;
b)判断root是否为叶子节点,如否则进入步骤i,如是则进入步骤c);
i.将root的孩子中指向key和v的结点赋值给root;
c)判断root中是否包含关键字为key的记录,如否则回到进入步骤4),如是则进入步骤j;
j.将记录增加至集合R;
5)返回R。
3.如权利要求1所述的方法,其特征在于,所述时间旅行范围查询,具体包括如下步骤:
1)初始化查询结果R为空集;
2)对查询版本v进行全局分区剪枝,剪枝结果赋值给P;所述全局分区剪枝采用如权利要求1所述的全局分区剪枝方法;
3)输入查询范围[start_key,end_key],查询时间版本v,局部索引根节点root;start_key为查询范围的起始值,end_key为查询范围的终止值;
4)对P中的每个分区p:判断P中的每个分区p是否遍历完成?如否则进入步骤a),如是则结束;
a)判断root是否为叶子节点,如否则进入步骤i,如是则进入步骤b);
i.将root的孩子中指向start_key和v的节点赋值给start_c;
ii.将root的孩子中指向end_key和v的节点赋值给end_c;
iii.children为从start_c到end_c的所有孩子节点;
iv.对children中的每个节点递归调用该流程;
b)判断关键字key是否在root节点中存在,如是则进入步骤j,如否则回到步骤4);
j.将包含关键字key的记录加入集合R中;
5)返回R。
4.如权利要求3所述的方法,其特征在于,步骤iv中,递归调用时间旅行范围查询,参数为start_key,end_key,v,node,其中,node为孩子节点中的一个,循环处理children中的每个节点。
5.如权利要求1所述的方法,其特征在于,所述时态聚合查询包括如下步骤:
1)输入聚集函数g,查询时间版本v,局部索引根节点root;
2)对查询版本v进行全局分区剪枝,剪枝结果赋值给P;所述全局分区剪枝采用如权利要求1所述的全局分区剪枝方法;
3)对P中的每个分区p:判断P中的每个分区p是否遍历完成?如否则进入步骤a),如是则结束;
a)将root的孩子中满足v∈child.interval的节点赋值给child;child.interval即为记录的[start,end)值,即时态记录时间间隔的起始值、终止值;
b)判断child是否为叶子节点,如是则进入步骤i,如否则进入步骤j;
i.返回child.value,child.value为聚合值,回到步骤3);
j.递归调用该流程,输入为g,v,child,返回递归调用的返回值和child.value在g上的聚集值;返回步骤3)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810493842.3/1.html,转载请声明来源钻瓜专利网。