[发明专利]一种面向分布式内存数据库查询引擎的数据分发方法有效
申请号: | 201710441736.6 | 申请日: | 2017-06-13 |
公开(公告)号: | CN107169138B | 公开(公告)日: | 2020-07-14 |
发明(设计)人: | 段翰聪;滕旭华;孔逸通;李博洋;陈超;闵革勇;张建 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2458;G06F16/27 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 郭受刚 |
地址: | 610000 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 分布式 内存 数据库 查询 引擎 数据 分发 方法 | ||
1.一种面向分布式内存数据库查询引擎的数据分发方法,其特征在于,所述方法包括:
数据库查询引擎中的前置算子计算完成后,数据库查询引擎对计算完成后的数据进行切分,然后将切分后的数据分发给数据库查询引擎中的后继算子;前置算子中计算完成后的数据切分后按照一个前置算子分区对应一个后继算子分区的方式分发给后继算子,或前置算子中计算完成后的数据按照多个前置算子分区对应一个后继算子分区的方式分发给后继算子。
2.根据权利要求1所述的面向分布式内存数据库查询引擎的数据分发方法,其特征在于,前置算子分区按照特定的哈希函数将切分后的数据分发给后继算子分区。
3.根据权利要求1所述的面向分布式内存数据库查询引擎的数据分发方法,其特征在于,前置算子包括:一元算子、二元算子、无前置算子。
4.根据权利要求1所述的面向分布式内存数据库查询引擎的数据分发方法,其特征在于,当前置算子为GetColumn 算子时:
指定分片数,默认分片数等于存储引擎中列数据的分片数,然后按照轮询调度的方式和存储引擎中列的数据分片对应起来,列指代一个GetColumn的目标数据列。
5.根据权利要求1所述的面向分布式内存数据库查询引擎的数据分发方法,其特征在于,当前置算子为Filter 算子时:
Filter 算子是对行号进行处理,指定 Filter 算子按照哈希散列的方式进行处理,哈希函数为FHash = rowid % filter_num,其中,rowid表示行号。
6.根据权利要求1所述的面向分布式内存数据库查询引擎的数据分发方法,其特征在于,当前置算子为Join 算子时:
分布式内存数据库系统的元数据负责收集数据库存储引擎的数据分布信息,为每张表的每个列生成数据直方图统计信息;Join 算子执行过程中需要判断前置输入来源于表格大小,表格大小根据数据直方图元数据信息界定;
如果前置算子中某个表是小表,采用将小表数据转发至存放大表数据节点的方案,然后Join算子内部采用哈希连接进行连接操作;
如果前置算子中没有小表,采用哈希散列的方案,Hash函数为FHash = value % join_num,然后内部采用排序合并连接算法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710441736.6/1.html,转载请声明来源钻瓜专利网。