[发明专利]基于数据量的查询连接方法有效
申请号: | 201410124531.1 | 申请日: | 2014-03-28 |
公开(公告)号: | CN103927346B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 陈岭;周强 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州天勤知识产权代理有限公司33224 | 代理人: | 胡红娟 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 数据量 查询 连接 方法 | ||
技术领域
本发明涉及大数据实时查询优化技术领域,尤其涉及一种基于数据量的查询连接方法。
背景技术
大数据实时查询是重要的大数据技术,现有的大数据查询系统有Google Dremel、Cloudera Impala、Berkeley Shark、Apache Drill等。大数据实时查询一般采用分布式计算架构,由于弱化了对事务等功能的支持,所以相对于关系型数据库集群具有更高的可扩展性。同时由于大数据实时查询能很好的满足实时查询的用户需求,因此其在互联网、智慧城市等领域有广阔的应用空间。
多连接顺序查询优化是数据库管理系统的重要组成部分,在大数据实时查询技术领域中同样具备不可替代的重要性。其通过采用一定的优化方法,不断遍历执行计划的搜索空间,找出最佳的连接顺序,以生成最佳的执行计划,从而提升大数据查询系统的性能,满足用户查询的实时性需求。
由于代价估计是多连接顺序查询优化过程中非常重要的部分,能否给出一种有效的查询代价估计方法是查询优化有效实现的关键。传统的代价估计方法是一种基于表基数的方法,通过该方法能够有效的解决传统代价估算问题,从而保证找到符合代价模型的最佳执行计划。但在分布式数据库系统或数据仓库中,存在以列式文件格式存储的数据表,该格式文件是为了优化底层数据进行读取时的I/O性能及减少数据传输数据量,以RCFile文件为例,该文件是一种先按行横向切分然后按列纵向切分的文件格式,其将仅读取和传输所需的数据列。在对有列式文件格式存储的数据表参与连接时,采用传统基于表基数的代价估计方法进行估算时,其结果可能会产生严重的偏差,进而导致连接顺序优化算法找出符合代价模型的执行计划并非为最佳,即找到的连接顺序并非为最优,以致使得整个查询延迟更高。
发明内容
本发明要解决的技术问题是如何确保大数据实时查询系统进行多连接顺序优化时提升其代价估计的准确性,从而提升查询整体的效率。为了解决上述传统基于表基数进行代价估算存在的问题,本发明提出了基于数据量的多连接查询代价估计方法,考虑了用户提交的查询中参与连接的部分关系可能以列式文件存储,通过深入考虑列式文件读取等特性,增加更细粒度的统计信息,利用每个字段的平均长度以估算查询的连接中间结果大小,从而有效的确保代价估算的准确性。
一种基于数据量的查询连接方法,包括:
步骤1,向元数据服务器提交查询请求,获取参与连接的各表所对应的统计信息;
步骤2,根据获取到的统计信息估算得到当前执行计划中所有表的数据量;
步骤3,重复步骤1及步骤2,直至遍历执行计划的搜索空间,找出具有合适数据量使得查询代价最小的执行计划,按该执行计划中的连接顺序进行表的连接。
其中执行计划的搜索空间是指所有执行计划所得到的表连接顺序的集合。
本发明以数据量作为查询代价来确定多连接查询中连接的顺序,从而确保大数据实时查询系统进行多连接顺序优化时提升其代价估计的准确性,从而提升查询整体的效率。
其中,元数据服务器构建方式为,选取关系型数据库并设计列级别的表模式,根据设计好的表模式在相应的关系型数据库中创建元数据库及表关系,得到元数据服务器。
为了能够为查询系统提供表级别、分区级别和列级别等三种粒度的统计信息,设计相应的表模式需要符合适当的范式,同时在能够完成代价估计的前提下,尽量减少不必要的存储开销。
元数据服务器中的统计信息为每张表所对应的统计信息,所述统计信息根据设计的表模式对表进行统计得到。
统计信息的细粒度根据表模式的细粒度得到由于表模式为列级别模式,因此统计信息包括列级别的统计信息。
所述关系型数据库为:MYSQL数据库,Derby数据库或Oracle数据库。
根据企业用户及系统的实际需求,选取合适的关系型数据库作为大数据实时查询系统的元数据服务器。
统计信息包括:列名、列中数据值的下界、列中数据值的上界、表中列数据为空的数量、表中列数据不同值的数量、列中字段数据的平均长度以及列中字段数据的最大长度、表或视图的总行数。
元数据服务器以及统计信息在元数据服务器中的存储均在离线状态下完成。
由于元数据服务器的构建及统计信息的收集都是离线完成,使得实际进行查询时进行统计信息的返回不需要耗费多少运行时开销,极大地降低了代价估计的时间延迟。
在步骤2中,每个表的数据量根据该表所对应的选择度、字段平均数据量和表的总行数计算得到。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410124531.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:交互式搜索及推荐方法和装置
- 下一篇:一种数据集成方法