发明名称 一种云环境中基于分片位图索引的查询方法
摘要 本发明提出一种云环境中基于分片位图索引的查询方法,1)建立分片位图索引,1.1)对云环境中数据表上的索引属性进行值域划分,生成属性值的全局排序表,全局排序表对元组用设定的规则排序;1.2)根据值域划分结果建立每个数据节点上的指示位图,指示位图记录局部属性值存储情况;1.3)根据云环境构架在各数据节点上建立局部位图索引,完成分片位图索引的创建;2)输入查询条件,主节点根据查询条件建立条件位图,并分发至各个数据节点,条件位图覆盖查询条件所包含所有可能;各数据节点并发执行检索任务,主节点收集各个数据节点的查询结果,并向用户返回各数据节点上查询结果的并集。通过建立分片位图索引可以充分利用了云环境中的可配置的并行计算资源,能够为以比较大小为条件的数据查询请求提供快速响应。
申请公布号 CN102722531B 申请公布日期 2014.04.16
申请号 CN201210155253.7 申请日期 2012.05.17
申请人 北京大学 发明人 孟必平;王腾蛟;李红燕;高军;杨冬青;唐世渭
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 余长江
主权项 1.一种云环境中基于分片位图索引的查询方法,其步骤包括:1)建立分片位图索引,1.1)对云环境中每个元组的属性值进行值域划分,生成属性值的全局排序表,所述全局排序表对元组用设定的规则排序;用长为<img file="FDA0000441407450000011.GIF" wi="110" he="96" />ci的位串表示每个元组,其中,元组的属性i的值域被切割为c<sub>i</sub>个子域,f是参与切割的属性的个数,1≤i≤f;所述c<sub>i</sub>个子域构成集合c<sub>i</sub>,并用笛卡尔积Des<sub>1...f</sub>=C<sub>1</sub>×C<sub>2</sub>×C<sub>3</sub>×…×C<sub>f</sub>表示,所述笛卡尔积的大小为:<img file="FDA0000441407450000012.GIF" wi="248" he="79" />1.2)根据值域划分结果,在每个分布式数据节点上建立指示位图,所述指示位图记录局部属性值存储情况;1.3)根据云环境构架在各分布式数据节点上建立局部位图索引,完成分片位图索引的创建;2)输入查询条件,主节点根据查询条件建立条件位图,所述条件位图是元组属性位串笛卡尔积内符合条件的元素所对应的位串的逻辑按位与;并分发至各个数据节点,所述条件位图覆盖查询条件所包含的所有可能;各数据节点并发执行检索任务,主节点收集各个数据节点的查询结果,并向用户返回各数据节点上查询结果的并集;当查询条件为单个查询条件时,2.1)各计算节点分别将条件位图拆分为属性笛卡尔积内的元素所对应的位串,并将拆分得到的位串转换为相应的排序值建立一目标排序值集合;2.2)生成长度等于B的全0位串cb,并将属于目标排序值集合内的位置为1;2.3)检查逻辑按位与eb&amp;cb的计算结果是否为0,其中eb表示该计算节点上的指示位图;2.4)如果为0则在该计算节点上直接返回空集作为计算结果;2.5)否则,搜索该计算节点的局部B<sup>+</sup>树并找到对应的叶子节点及其上附着的元组位图,一一检查元组位图中被置为1的位所对应的元组是否满足条件。
地址 100871 北京市海淀区颐和园路5号