【技术实现步骤摘要】
本专利技术实施例涉及计算机
,尤其涉及一种批量数据查询方法和装置。
技术介绍
目前代表性的大数据查询系统(如:Hive,Shark,Impala)均以单条查询语句作为解析和优化的基本单位。大数据查询系统的一个关键性能是查询效率。然而,在数据仓库(Data Warehouse)的批量查询场景下,传统的以单条查询语句为解析和优化基本单位的处理模式存在优化机会不足的问题。与查询内优化机会不足构成强烈对比的是数据仓库批量查询应用场景中所呈现出的丰富的查询间优化机会,查询间优化机会即多条查询语句之间存在的优化机会。在批量查询应用场景下,现有技术中,通过在查询语句执行过程中对数据记录的更新情况进行实时监控与反馈,以及通过预先执行查询语句中的一部分功能等方式,动态地获取各个查询具体需要访问的数据记录,以此确定多个查询所操作的数据记录之间是否存在冲突或交集,并基于上述分析执行一些动态优化。但通过监控数据记录或执行部分查询功能只能收集到与某一组输入相关的动态数据依赖关系,基于这些动态数据依赖所执行的优化只能适应于某一组特定的输入,一旦输入发生变化,就需要重新执行分析和优化。
技术实现思路
本专利技术实施例提供一种批量数据查询方法和装置,提高了查询间优化的效率,并且降低了查询间优化的系统开销。本专利技术第一方面提供一种批量数据查询方法,包括:接收待执行的N条查询语句,其中,所述N为不小于2的正整数;根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操
作数的符号标识,其中,所述操作符用于指示要执行的操作,所述操作数用于指示所述N条查询语句中的操作 ...
【技术保护点】
一种批量数据查询方法,其特征在于,包括:接收待执行的N条查询语句,其中,所述N为不小于2的正整数;根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操作数的符号标识,其中,所述操作符用于指示要执行的操作,所述操作数用于指示所述N条查询语句中的操作符待操作的数据的存储位置,所述符号标识包括操作数的版本号,并且,指代相同数据的操作数具有相同的版本号,指代不同数据的操作数具有不同的版本号,所述操作符至少包括:创建操作符、销毁操作符、扫描操作符和文件定值操作符;根据确定的所述N条查询语句的操作数的版本号确定所述N条查询语句之间的依赖关系;根据所述N条查询语句之间的依赖关系以及预设的优化规则对所述N条查询语句进行查询间优化;执行优化后的查询语句以得到所述N条查询语句的查询结果。
【技术特征摘要】
1.一种批量数据查询方法,其特征在于,包括:接收待执行的N条查询语句,其中,所述N为不小于2的正整数;根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操作数的符号标识,其中,所述操作符用于指示要执行的操作,所述操作数用于指示所述N条查询语句中的操作符待操作的数据的存储位置,所述符号标识包括操作数的版本号,并且,指代相同数据的操作数具有相同的版本号,指代不同数据的操作数具有不同的版本号,所述操作符至少包括:创建操作符、销毁操作符、扫描操作符和文件定值操作符;根据确定的所述N条查询语句的操作数的版本号确定所述N条查询语句之间的依赖关系;根据所述N条查询语句之间的依赖关系以及预设的优化规则对所述N条查询语句进行查询间优化;执行优化后的查询语句以得到所述N条查询语句的查询结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操作数的符号标识包括:获取所述N条查询语句对应的N棵逻辑查询计划树,其中,一条查询语句对应一棵逻辑查询计划树;为所述N棵逻辑查询计划树中的第一类操作符的操作数添加符号标识,其中,所述第一类操作符包括:创建操作符、销毁操作符、扫描操作符和文件定值操作符;对于所述N棵逻辑查询计划树中的每一棵查询计划树分别执行如下操作:根据第一逻辑查询计划树的拓扑顺序、所述第一逻辑查询计划树中的第一类操作符的操作数的符号标识以及预设的添加规则为所述第一逻辑查询计划树中的第二类操作符的操作数添加符号标识,其中,所述第一逻辑查询计划树为所述N棵逻辑查询计划树中的任意一棵逻辑查询计划树,所述第二类操作符为除所述第一类操作符之外的其他操作符。3.根据权利要求2所述的方法,其特征在于:所述第一逻辑查询计划树的根节点包括文件定值操作符,所述第一逻辑查询计划树的叶子节点包括文
\t件扫描操作符,所述第一逻辑查询计划树的内部节点包括第二类操作符、创建操作符和销毁操作符,其中,所述内部节点为除叶子节点和根节点之外的其他节点;所述添加规则包括:对于所述第一逻辑查询计划树中的每一个第二类操作符,执行如下操作:若第一操作符的操作数与所述第一操作符的左孩子节点的操作数相同,则为所述第一操作符的操作数添加与所述第一操作符的左孩子节点的操作数的符号标识相同的符号标识,所述第一操作符为所述第二类操作符中的任意一个操作符;若所述第一操作符的操作数与所述第一操作符的右孩子节点的操作数相同,则为所述第一操作符的操作数添加与所述第一操作符的右孩子节点的操作数的符号标识相同的符号标识。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述优化规则包括下述规则中的至少一个规则:删除与第一查询语句具有相同操作数版本号和相同操作符的查询语句,其中,所述第一查询语句为所述N条查询语句中的任意一条查询语句;保持具有流依赖关系的查询语句之间的查询顺序,并将具有流依赖关系的多个查询语句优化为一个新的查询语句,其中,所述流依赖关系是指在前执行的一条查询语句的文件定值操作符的操作数的版本号与在后执行的另一条查询语句的的操作数的版本号相同;和合并具有相同操作符且操作数有重叠的查询语句。5.根据权利要求2所述的方法,其特征在于,所述N条查询语句中的操作数的符号标识还包括:热数据标识;所述根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操作数的符号标识还包括:统计所述N棵逻辑查询计划树中的每个扫描操作符的操作数被引用的次数;判断所述N棵逻辑查询计划树中的每个扫描操作符的操作数被引用的次数是否大于热数据阈值;为所述N棵逻辑查询计划树中扫描操作符的操作数被引用的次数大于所
\t述热数据阈值的操作数添加热数据标识,所述热数据标识用于表示具有热数据标识的操作数所指向的数据为热数据;所述方法还包括:在执行所述优化后的查询语句过程中,并发执行包含所述热数据标识且不存在流依赖关系和输出依赖关系的优化后的查询语句。6.根据权利要求2或5所述的方法,其特征在于:所述N条查询语句中的操作数的符号标识还包括:起始活跃位置和终止活跃位置;所述根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操作数的符号标识还包括:针对第一操作数,根据第一次引用所述第一操作数的扫描操作符的标识和所述扫描操作符所在的逻辑查询计划树的序号确定所述第一操作数的起始活跃位置,其中,所述第一操作数为所述N条查询语句中的操作数中的任意一个操作数;根据用于销毁所述第一操作数的销毁操作符的标识和所述销毁操作符所在的逻辑查询计划树的序号确定所述第一操作数的终止活跃位置;所述方法还包括:在执行所述优化后的查询语句过程中,根据所述第一操作数的终止活跃位置释放所述第一操作数指示的数据的存储空间。7.根据权利要求6所述的方法,其特征在于,所述根据所述N条查询语句中的操作符和操作数确定所述N条查询语句的操作数的符号标识还包括:针对第二操作数,根据第一次引用所述第二操作数的第一文件定值操作符的标识和所述第一文件定值操作符所在的逻辑查询计划树的序号确定所述第二操作数的起始活跃位置,其中,所述第一文件定值操作符用于向所述第二操作数指代的存储位置写数据,所述第二操作数为所述N条查询语句中的操作数中的任意一个操作数;根据引用所述第二操作数的第二文件定值操作符的标识和所述第二文件定值操作符所在的逻辑查询计划树的序号确定所述第二操作数的终止活跃位置,其中,所述第二文件定值操作符用于改写所述第一文件定值操作符操作的所述第二操作数指向的数据;所述方法还包括:在执行所述优化后的查询语句过程中,根据所述第二...
【专利技术属性】
技术研发人员:李丰,张赟,王蕾,冯晓兵,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。