数据处理设备和操作数据处理设备的方法技术

技术编号:17959830 阅读:32 留言:0更新日期:2018-05-16 05:26
本发明专利技术涉及一种数据处理设备(100),用于从数据存储库(107)中提取数据以响应数据查询。所述数据处理设备(100)包括:转换器(101),用于将所述查询转换成高级语言查询;优化器(103),用于基于所述存储库(107)的配置来优化所述高级语言查询以生成优化查询。此外,本发明专利技术涉及一种操作这种数据处理设备(100)的方法。

Data processing equipment and method for operating data processing equipment

The present invention relates to a data processing device (100) for extracting data from a data repository (107) to respond to data queries. The data processing device (100) includes: a converter (101) for converting the query into a high-level language query; the optimizer (103) is used to optimize the advanced language query based on the configuration of the repository (107) to generate the optimized query. In addition, the invention relates to a method of operating such a data processing device (100).

【技术实现步骤摘要】
【国外来华专利技术】数据处理设备和操作数据处理设备的方法
本专利技术涉及一种数据处理设备和操作数据处理设备的方法。特别地,本专利技术涉及一种数据处理设备,用于从诸如数据库等数据存储库中提取数据以响应数据查询。
技术介绍
自关系数据库的早期阶段以来,为提升数据库的性能,尝试将数据查询编译为本地代码而不是解析该查询。这些尝试的主要目的是减少解析开销,从而提高查询的执行速度。通常,使用一些基于模式的代码生成器将查询编译为本地机器代码。通常,该方法非常复杂,不可移植,并且不允许对生成的本地代码进行进一步的优化,例如通用子表达式消除、代码融合和循环展开等。几年前,已经开发了一个名为Volcano的可扩展和并行查询评估系统。它为数据库系统设计、查询优化的启发式方法、并行查询执行和资源分配提供了研究环境。Volcano系统使用两个元运算符,即选择方案元运算符,其支持动态查询评估方案,即直到运行时仍允许延迟选定的优化决策,例如,对于具有自由变量的嵌入式查询;以及交换元运算符,其支持分区数据集上的运算符内部并行以及垂直和水平运算符间并行,在进程之内的需求驱动数据流和进程之间的数据驱动数据流之间进行转换。随着智能编译器生成具有可接受性能的机器代码,许多高级编程语言开发得越来越多,这带来了几次尝试,即将查询执行方案转换为这种高级编程语言,而不是本地代码。其中一项尝试称为LegoBase,它是一种以高级编程语言Scala编写的内存查询执行引擎,并且通过生成编程来实现抽象概念。LegoBase中的数据查询用Scala语言编写,然后转换成专门的Scala或C代码。这样,查询引擎结构本身可以适应于特定的查询。例如,根据TPC-H标准对LegoBase进行了评估,其明显优于大多数商用内存数据库系统以及现有的查询编译器。此外,只需几百行高级语言代码编程改进这些性能,而无需其他查询编译器所需的复杂低级语言代码编程。尽管上述尝试已经改进了性能,但仍然需要进一步改进,特别是针对从数据库中提取数据的数据查询的执行性能方面。因此,需要一种改进的数据处理设备和操作这种数据处理设备的改进方法,特别是用于从诸如数据库等数据存储库中提取数据以响应数据查询的数据处理设备。
技术实现思路
本专利技术的目的是提供一种改进的数据处理设备和操作这种数据处理设备的改进方法,特别是用于从诸如数据库等数据存储库中提取数据以响应数据查询的数据处理设备。上述和其它目的通过独立权利要求的主题来实现。根据所述独立权利要求、描述以及附图,其他实施形式是显而易见的。第一方面,提供了一种数据处理设备,用于从存储库或存储器中提取数据以响应数据查询。所述数据处理设备包括转换器,用于将所述查询转换成高级编程语言查询;优化器,用于基于所述存储库的配置来优化所述高级编程语言查询以生成优化查询。所述存储库或所述存储器可以是数据库。或者,所述存储库或所述存储器可以是至少临时存储数据的其他任何设备,例如ROM、RAM和数据通信信道等。高级编程语言中的查询比低级编程语言中的同一查询具有更高层次的抽象定义。通过考虑存储库的具体配置,即使得查询适应于存储库的特定配置,这样有利于获得查询,相较于使用传统的方法进行优化的查询,这种查询优化得更好。这具有极大的优越性,尤其是对提供许多不同模型的组织数据(例如分库、列式存储、垂直和水平分布和复制等)的数据库。因此,提供了一种改进的数据处理设备,特别是用于从诸如数据库等数据存储库中提取数据以响应数据查询的数据处理设备。根据本专利技术第一方面,在所述数据处理设备的第一种可能的实现方式中,所述优化器用于通过执行所述高级语言查询的同构专业化并基于所述存储库的所述配置来优化所述高级语言查询。所述高级语言查询的同构专业化是针对所述存储库的所述配置通过所述存储库中用于存储数据的表的不同实现方式之中的至少一种同构来实现查询的专业化。通过执行所述高级语言查询的同构专业化,可以获得查询,相较于使用传统的方法进行优化的查询,这种查询优化得更好。根据本专利技术第一方面的第一种实现方式,在所述数据处理设备的第二种可能的实现方式中,所述数据处理设备的所述优化器用于通过执行作为所述高级语言查询的阶段评估的一部分的所述高级语言查询的同构专业化并基于所述存储库的所述配置来优化所述高级语言查询。阶段评估是一种特殊的查询评估,它采用所述查询的抽象语法树(abstractsyntaxtree,简称AST)表示,并生成所述查询的基于图形的中间表示(intermediaterepresentation,简称IR)。或者,可以将阶段评估定义为阶段代码的标准评估,其中查询Q的分段代码是查询Q',使得Q'的标准评估产生中间表示,其在语义上等同于查询Q。查询的标准评估(或解析)是将中间表示和一些数据作为输入并产生新数据作为输出的过程。阶段评估允许进一步的优化措施,这些优化措施在现有技术的方法中不可用于优化查询,特别是以SQL编写的查询。根据第一方面的第二种实现方式,在所述数据处理设备的第三种可能的实现方式中,所述优化器用于通过所述高级语言查询的基于图形的中间表示来执行作为所述高级语言查询的阶段评估的一部分的所述高级语言查询的同构专业化。根据第一方面的第三种实现方式,在所述数据处理设备的第四种可能的实现方式中,所述优化器还用于执行所述高级语言查询的基于图形的中间表示的进一步低级优化步骤,特别是通用子表达式消除、代码融合、循环展开、数据结构转换、积极内联、持续传播和/或不可达代码去除。这提供了代码的进一步优化。根据第一方面的第四种实现方式,在所述数据处理设备的第五种可能的实现方式中,所述优化器还用于在编译和代码生成框架的环境中执行所述高级语言查询的基于图形的中间表示的进一步低级优化步骤。可以进一步编译和执行输出。领域专用编译和代码生成框架可能是轻量级模块化分级(lightweightmodularstaging,简称LMS)。根据本专利技术第一方面或第一方面的第一种至第五种实现方式的任一实现方式,在所述数据处理设备的第六种可能的实现方式中,所述优化器还用于执行所述高级语言查询的进一步高级优化步骤,特别是谓词下推优化。该实现方式提供了所述高级语言查询的进一步高级优化,特别是谓词下推优化。谓词下推优化将过滤操作符移到查询执行树的根部,以减少处理的数据量。根据本专利技术第一方面或第一方面的第一种至第六种实现方式的任一实现方式,在所述数据处理设备的第七种可能的实现方式中,所述优化器用于以高级语言优化查询的形式生成所述优化查询。这种实现方式可以提供优化查询,例如在Scala或C++中,这样可以进一步编译所述高级语言优化查询。根据本专利技术第一方面或第一方面的第一种至第七种实现方式的任一实现方式,在所述数据处理设备的第八种可能的实现方式中,所述数据处理设备还包括执行器,用于通过执行所述优化查询从所述存储库中提取数据。使用优化查询来进行数据搜索,这样所述数据处理设备的性能更好。根据本专利技术第一方面或第一方面的第一种至第八种实现方式的任一实现方式,在所述数据处理设备的第九种可能的实现方式中,所述存储库的所述配置由所述存储库内的数据表的配置来定义。在一种可能的实现方式中,所述存储库中的所述数据表可以配置为“LocalRowTable”、“LocalPairTable”、“Sha本文档来自技高网
...
数据处理设备和操作数据处理设备的方法

【技术保护点】
一种数据处理设备(100),用于从存储库(107)中提取数据以响应查询,其特征在于,包括:转换器(101),用于将所述查询转换成高级语言查询;优化器(103),用于基于所述存储库(107)的配置来优化所述高级语言查询以生成优化查询。

【技术特征摘要】
【国外来华专利技术】1.一种数据处理设备(100),用于从存储库(107)中提取数据以响应查询,其特征在于,包括:转换器(101),用于将所述查询转换成高级语言查询;优化器(103),用于基于所述存储库(107)的配置来优化所述高级语言查询以生成优化查询。2.根据权利要求1所述的数据处理设备(100),其特征在于,所述优化器(103)用于通过执行所述高级语言查询的同构专业化并基于所述存储库(107)的所述配置来优化所述高级语言查询。3.根据权利要求2所述的数据处理设备(100),其特征在于,所述优化器(103)用于通过执行作为所述高级语言查询的阶段评估的一部分的所述高级语言查询的同构专业化并基于所述存储库(107)的所述配置来优化所述高级语言查询。4.根据权利要求3所述的数据处理设备(100),其特征在于,所述优化器(103)用于通过所述高级语言查询的基于图形的中间表示来执行作为所述高级语言查询的阶段评估的一部分的所述高级语言查询的同构专业化。5.根据权利要求4所述的数据处理设备(100),其特征在于,所述优化器(103)还用于执行所述高级语言查询的基于图形的中间表示的进一步低级优化步骤,特别是通用子表达式消除、代码融合、循环展开、数据结构转换、积极内联、持续传播和/或不可达代码去除。6.根据权利要求5所述的数据处理设备(100),其特征在于,所述优化器(103)还用于在编译和代码生成框架的环境中执行所述高级语言查询的基于图形的中间表示的进一步低级优化步骤。7.根据前述权利要求中任一项所述的数据处理设备(100),其特征在于,所述优...

【专利技术属性】
技术研发人员:亚历山大·弗拉基米罗维奇·斯莱萨连科康斯坦丁·亚历山德罗维奇·克尼日尼克
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1