CN114610747A - 数据查询方法、装置、设备及存储介质 - Google Patents
数据查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114610747A CN114610747A CN202210255610.0A CN202210255610A CN114610747A CN 114610747 A CN114610747 A CN 114610747A CN 202210255610 A CN202210255610 A CN 202210255610A CN 114610747 A CN114610747 A CN 114610747A
- Authority
- CN
- China
- Prior art keywords
- data
- data query
- query
- syntax tree
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Abstract
本发明涉及大数据领域,揭露了一种数据查询方法,包括:获取至少两个数据源的信息,根据数据源的信息构建元数据库;在接收到数据查询语句时,对数据查询语句进行解析,得到语法树;对所述语法树进行语法校验,并转换为数据查询语句对应的逻辑关系语法树;获取预定义的查询优化规则,基于预定义的查询优化规则对逻辑关系语法树进行优化,得到最优逻辑关系语法树;将所述最优逻辑关系语法树转换为可执行的物理执行语句,利用所述物理执行语句在元数据库中进行数据查询,得到数据查询结果。本发明还提出一种数据查询装置、电子设备以及存储介质。本发明可以提高跨数据源数据查询的效率。
Description
技术领域
本发明涉及大数据领域,尤其涉及一种数据查询方法、装置、电子设备及计算机可读存储介质。
背景技术
随着业务复杂程度的提高以及数据规模的增长,越来越多的企业需要对企业本身的在线业务数据库进行垂直或水平拆分,又或者是选择不同的数据库也满足不同的业务需求,但需要跨多个数据库实例才能完成不同数据库的查询,导致业务数据不能进行汇总关联而形成数据孤岛。
现有的数据关联方法主要是用户提前将所需的数据汇集到同一处,然后再进行离线数据查询分析或采用spark或者presto等多个计算引擎来实现多数据源混合查询,需要进行数据迁移以及计算引擎的多次计算分析后再进行数据的汇总关联,导致跨数据源数据查询时效率低下。
发明内容
本发明提供一种数据查询方法、装置及计算机可读存储介质,其主要目的在于解决跨数据源数据查询时效率较低的问题。
为实现上述目的,本发明提供的一种数据查询方法,包括:
获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
可选地,所述获取至少两个数据源的信息,根据所述数据源的信息构建元数据库,包括:
获取至少两个数据源接入业务数据的接入方式,并对所述接入方式进行封装,得到每个所述数据源的数据接入接口;
通过每个所述数据源的数据接入接口获取每个所述数据源的信息,并将每个所述数据源的数据接入接口进行封装,得到元数据库的数据接入接口;
根据所述元数据库的数据接入接口及每个所述数据源的信息构建元数据库。
可选地,所述对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树,包括:
提取所述数据查询语句中的查询指令及函数,根据所述查询指令及函数将所述数据查询语句划分为语法节点,得到所述数据查询语句的节点串;
利用预设的解析器对所述数据查询语句的节点串进行语法解析,得到所述数据查询语句的语法树。
可选地,所述利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,包括:
获取所述语法树中的每个语法节点中的查询指令或函数;
将所述查询指令或所述函数与所述预设的语法规则相匹配;
将所述匹配成功的查询指令或所述函数保留以及将所述匹配不成功的查询指令或函数删除,得到规范语法树。
可选地,所述获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树,包括:
提取所述逻辑关系语法树中的每个逻辑执行语法节点,并逐个选取一个所述逻辑执行语法节点作为目标节点;
校验所述目标节点是否符合所述预定义的查询优化规则;
在所述目标节点不符合所述预定义的查询优化规则时,删除所述目标节点;
在所述目标节点符合所述预定义的查询优化规则时,利用预设的规则优化器对所述目标节点进行优化,得到最优逻辑关系语法树。
可选地,所述根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句,包括:
识别所述最优逻辑关系语法树的逻辑框架代码,其中,所述逻辑框架代码为所述最优逻辑关系语法树中的所有节点的代码;
利用SparkSQL对所述逻辑框架代码进行基于规则的优化,得到优化后的逻辑框架代码;
利用Spark转换器将所述优化后的逻辑框架代码转换为所述数据查询语句对应可执行的物理执行语句。
可选地,所述利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果,包括:
根据所述元数据库中至少两个数据源的数据接入接口信息将所述物理执行语句进行拆分,得到所述数据源对应的数据查询算子及其它数据算子;
利用所述数据查询算子在对应的数据源进行数据查询,得到所述数据源数据查询结果,及利用所述其它数据算子在所述元数据库进行数据查询,得到其它数据查询结果;
汇总所述数据源数据查询结果及所述其它数据查询结果,得到所述元数据库的数据查询结果。
为了解决上述问题,本发明还提供一种数据查询装置,所述装置包括:
构建元数据库模块,用于获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
语法解析模块,用于在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
语法校验模块,用于利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
语法优化模块,用于获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
执行语句转换模块,用于根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
数据查询模块,用于利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的数据查询方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的数据查询方法。
本发明实施例通过构建元数据库,将数据源信息整合,以实现跨数据源数据查询效率的提高;接收到数据查询语句时,将数据查询语句解析得到语法树并利用预设的语法规则对语法树进行校验,转化得到查询语句的逻辑关系语法树;获取预定义的查询优化规则,基于查询优化规则利对逻辑关系语法树进行优化,得到最优逻辑关系语法树,通过查询优化规则实现后续快速准确地数据查询;将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;利用所述可执行的物理执行语句在所述元数据库中进行数据查询,实现不同的数据源进行即时数据查询,得到数据查询结果,以提高数据查询的效率。因此本发明提出的数据查询方法、装置、电子设备及计算机可读存储介质,可以解决进行跨数据源数据查询时效率较低的问题。
附图说明
图1为本发明一实施例提供的数据查询方法的流程示意图;
图2为本发明一实施例提供的构建元数据库的流程示意图;
图3为本发明一实施例提供的语法优化的流程示意图;
图4为本发明一实施例提供的执行语句转换的流程示意图;
图5为本发明一实施例提供的数据查询装置的功能模块图;
图6为本发明一实施例提供的实现所述数据查询方法的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种数据查询方法。所述数据查询方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述数据查询方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
参照图1所示,为本发明一实施例提供的数据查询方法的流程示意图。
在本实施例中,所述数据查询方法包括:
S1、获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
本发明实施例中,所述数据源为不同的数据库,例如,MySQL数据库、SQLserver数据库等,所述数据源的信息包括但不限于所述不同数据源的数据源地址、数据源名称、登录数据库所需的用户名、密码、数据源类型,数据源计算函数、数据源存储的数据等信息。
详细地,参阅图2所示,所述获取至少两个数据源的信息,根据所述数据源的信息构建元数据库,包括:
S11、获取至少两个数据源接入业务数据的接入方式,并对所述接入方式进行封装,得到每个所述数据源的数据接入接口;
S12、通过每个所述数据源的数据接入接口获取每个所述数据源的信息,并将每个所述数据源的数据接入接口进行封装,得到元数据库的数据接入接口;
S13、根据所述元数据库的数据接入接口及每个所述数据源的信息构建元数据库。
本发明实施例中,通过构建元数据库将不同数据源进行集成,同时保证所述至少两个数据源的数据完整性,保留所述数据源的数据查询特点,例如过滤、聚合、开窗函数等,有利于提高数据查询的准确性及效率。
S2、在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
本发明实施例中,所述数据查询语句为SQL语句,其中,所述SQL语句包括但不限于insert语句、delete语句、update语句以及select语句等,所述查询语句的语法树为抽象语法树(AST)。
详细地,所述对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树,包括:
提取所述数据查询语句中的查询指令及函数,根据所述查询指令及函数将所述数据查询语句划分为语法节点,得到所述数据查询语句的节点串;
利用预设的解析器对所述查询语句的节点串进行语法解析,得到所述数据查询语句的语法树。
具体地,所述语法节点为SQLnode,,所述语法树由多个语法节点(SQLnode)组成,所述预设的解析器可以是parser解析器,通过所述解析器能够将所述查询语句的程序文本转换成编译器内部的“抽象语法树”(AST)的数据结构。
本发明实施例中,通过将所述数据查询语句进行语法解析,能够准确地获取所述数据查询语句的内部语法逻辑,为后续语法校验提供基础,避免查询语句由于语法不规范而导致的数据查询失败。
S3、利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
本发明实施例中,所述预设的语法规则是查询元数据库的语法规则,例如:所述查询语句中的查询指令中的表名称、字段名、函数名、查询的数据类型等的语法校验。
详细地,所述利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,包括:
获取所述语法树中的每个语法节点中的查询指令或函数;
将所述查询指令或所述函数与所述预设的语法规则相匹配;
将所述匹配成功的查询指令或所述函数保留以及将所述匹配不成功的查询指令或函数删除,得到规范语法树。
进一步地,所述将所述规范语法树转换为所述数据查询语句的逻辑关系语法树,包括:
获取所述规范语法树的根节点,以所述根节点为起点遍历所述规范语法树的语法节点,得到每个所述语法节点的语法路径;
利用预设的语法转换器将每个所述语法节点的语法路径转换为对应的逻辑执行语法节点;
根据每个所述语法节点的逻辑执行语法节点构建逻辑关系语法树,得到所述逻辑关系语法树。
具体地,本发明实施例中,所述预设的语法转换器为sql语句转换器中的org.apache.calcite.sql2rel.SqlToRelConverter等语法转换器,将所述语法节点(SQLnode)转换为逻辑执行语法节点(relnode),得到所述数据查询语句的逻辑关系语法树。
本发明实施例中,所述逻辑关系语法树是将所述词法树上的词组结构利用预设的语法转换器转换成所述查询语句的对应的逻辑执行语法,通过所述对应的逻辑执行语法将所述查询语句拆分为多个逻辑语句,以提高后续数据查询的效率。
S4、获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
本发明实施例中,所述预定义的查询优化规则是针对所述元数据库中不同的数据源的查询规则,例如,针对JDBC接口的数据源(如MySQL、postgresql等)的开发时的转换规则,以及可以将所述数据查询语句下推值具体数据源进行查询的相关算子的计算规则(如filter、project、aggregate、sort、join、limit、offset、udf、window function等)。
详细地,参阅图3所示,所述获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树,包括:
S41、提取所述逻辑关系语法树中的每个逻辑执行语法节点,并逐个选取一个所述逻辑执行语法节点作为目标节点;
S42、校验所述目标节点是否符合所述预定义的查询优化规则;
S43、在所述目标节点不符合所述预定义的查询优化规则时,删除所述目标节点;
S44、在所述目标节点符合所述预定义的查询优化规则时,利用预设的规则优化器对所述目标节点进行优化,得到最优逻辑关系语法树。
本发明实施例中,所述预设规则优化器HepPlanner规则优化器,所述HepPlanner规则优化器中预先定义了所述查询优化规则所对应的优化内容,在所述逻辑执行语法节点符合所述预设的查询优化规则,则对所述逻辑执行语法节点进行优化,使得所述逻辑执行语法节点具有优化规则对应的优化内容,进一步地提高后续数据查询的效率。
S5、根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
本发明实施例中,所述最优逻辑关系语法树的树节点是由上述语法转换器将转换得到的逻辑执行语法节点,所述逻辑节点不具有物理属性同时无法运行,则需要将所述逻辑关系语法树转换为可执行的物理执行语句,通过所述可执行的物理执行语句进行数据查询。
详细地,参阅图4所示,所述根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句,包括:
S51、识别所述最优逻辑关系语法树的逻辑框架代码,其中,所述逻辑框架代码为所述最优逻辑关系语法树中的所有节点的代码;
S52、利用SparkSQL对所述逻辑框架代码进行基于规则的优化,得到优化后的逻辑框架代码;
S53、利用Spark转换器将所述优化后的逻辑框架代码转换为所述数据查询语句对应可执行的物理执行语句。
具体地,本发明实施例中,所述最优逻辑关系语法树的逻辑框架是所述最优逻辑关系语法树的语法组成类型,例如,若所述最优逻辑关系语法树的逻辑框架为Flink,则会根据所述Flink框架将所述最优逻辑关系语法树转换基于Operator(算子)的物理执行计划。
本发明实施例中,所述SparkSQL对所述逻辑框架代码进行基于规则的优化即RBO(Rule-based optimization),每个优化以规则(Rule)的形式存在,每个规则(Rule)都是对逻辑框架代码进行的等价替换,从逻辑上保证了数据过滤规则下推至元数据库时,由于参与的数据量变少而提高了性能,另一方面,在物理执行语句层面,数据过滤规则下推后,对于支持数据过滤规则下推的逻辑框架,并不需要将数据源的全量数据扫描出来再过滤,而是直接只扫描符合数据过滤条件的数据,从而在物理层面极大减少了扫描数据源的开销,提高了数据查询的执行速度。
本发明实施例中,所述Spark转换器为SparkPlanner,利用SparkPlanner将所述所述逻辑框架代码转换为SparkPlan即物理执行语句,所述物理执行语句具有了物理属性,可以执行相关数据查询。
S6、利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
本发明实施例中,所述物理执行语句在进行数据查询时包括针对不同数据源的数据查询,将所述物理执行语句下推至具体的数据源进行同步的数据查询,得到数据查询结果。
详细地,所述利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果,包括:
根据所述元数据库中至少两个数据源的数据接入接口信息将所述物理执行语句进行拆分,得到所述数据源对应的数据查询算子及其它数据算子;
利用所述数据查询算子在对应的数据源进行数据查询,得到所述数据源数据查询结果,及利用所述其它数据算子在所述元数据库进行数据查询,得到其它数据查询结果;
汇总所述数据源数据查询结果及所述其它数据查询结果,得到所述元数据库的数据查询结果。
本发明实施例中,所述数据源对应的数据查询算子可以利用对应数据源的特点进行查询,如过滤、聚合、开窗函数等,使得数据查询更加全面且准确,其它数据查询算子因为无法下推至数据源进行直接的数据查询,得到的查询结果数据单一且不够全面,因此将数据查询下推至对应的数据源,使得数据查询结果更加准确,同时实现不同数据源的即时数据查询,以提高数据查询的效率。
本发明实施例通过构建元数据库,将数据源信息整合,已实现跨数据源数据查询效率的提高;接收到数据查询语句时,将数据查询语句解析得到语法树并利用预设的语法规则对语法树进行校验,转化得到查询语句的逻辑关系语法树;获取预定义的查询优化规则,基于查询优化规则利对逻辑关系语法树进行优化,得到最优逻辑关系语法树,通过查询优化规则实现后续快速准确地数据查询;将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;利用所述可执行的物理执行语句在所述元数据库中进行数据查询,实现不同的数据源进行即时数据查询,得到数据查询结果,以提高数据查询的效率。因此本发明提出的数据查询方法,可以解决进行跨数据源数据查询时效率较低的问题。
如图5所示,是本发明一实施例提供的数据查询装置的功能模块图。
本发明所述数据查询装置100可以安装于电子设备中。根据实现的功能,所述数据查询装置100可以包括构建元数据库模块101语法解析模块102、语法校验模块103、语法优化模块104、执行语句转换模块105及数据查询模块106。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述构建元数据库模块101,用于获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
所述语法解析模块102,用于在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
所述语法校验模块103,用于利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
所述语法优化模块104,用于获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
所述执行语句转换模块105,用于根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
所述数据查询模块106,用于利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
详细地,本发明实施例中所述数据查询装置100中所述的各模块在使用时采用与上述图1至图4中所述的数据查询方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
如图6所示,是本发明一实施例提供的实现数据查询方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如数据查询程序。
其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行数据查询程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如数据查询程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述通信总线12可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
图中仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图中示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的数据查询程序是多个指令的组合,在所述处理器10中运行时,可以实现:
获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树,;
获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种数据查询方法,其特征在于,所述方法包括:
获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
2.如权利要求1所述的数据查询方法,其特征在于,所述获取至少两个数据源的信息,根据所述数据源的信息构建元数据库,包括:
获取至少两个数据源接入业务数据的接入方式,并对所述接入方式进行封装,得到每个所述数据源的数据接入接口;
通过每个所述数据源的数据接入接口获取每个所述数据源的信息,并将每个所述数据源的数据接入接口进行封装,得到元数据库的数据接入接口;
根据所述元数据库的数据接入接口及每个所述数据源的信息构建元数据库。
3.如权利要求1所述的数据查询方法,其特征在于,所述对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树,包括:
提取所述数据查询语句中的查询指令及函数,根据所述查询指令及函数将所述数据查询语句划分为语法节点,得到所述查询语句的节点串;
利用预设的解析器对所述数据查询语句的节点串进行语法解析,得到所述数据查询语句的语法树。
4.如权利要求1所述的数据查询方法,其特征在于,所述利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,包括:
获取所述语法树中的每个语法节点中的查询指令或函数;
将所述查询指令或所述函数与所述预设的语法规则相匹配;
将所述匹配成功的查询指令或所述函数保留以及将所述匹配不成功的查询指令或函数删除,得到规范语法树。
5.如权利要求1所述的数据查询方法,其特征在于,所述获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树,包括:
提取所述逻辑关系语法树中的每个逻辑执行语法节点,并逐个选取一个所述逻辑执行语法节点作为目标节点;
校验所述目标节点是否符合所述预定义的查询优化规则;
在所述目标节点不符合所述预定义的查询优化规则时,删除所述目标节点;
在所述目标节点符合所述预定义的查询优化规则时,利用预设的规则优化器对所述目标节点进行优化,得到最优逻辑关系语法树。
6.如权利要求1所述的数据查询方法,其特征在于,所述根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句,包括:
识别所述最优逻辑关系语法树的逻辑框架代码,其中,所述逻辑框架代码为所述最优逻辑关系语法树中的所有节点的代码;
利用SparkSQL对所述逻辑框架代码进行基于规则的优化,得到优化后的逻辑框架代码;
利用Spark转换器将所述优化后的逻辑框架代码转换为所述数据查询语句对应可执行的物理执行语句。
7.如权利要求1所述的数据查询方法,其特征在于,所述利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果,包括:
根据所述元数据库中至少两个数据源的数据接入接口信息将所述物理执行语句进行拆分,得到所述数据源对应的数据查询算子及其它数据算子;
利用所述数据查询算子在对应的数据源进行数据查询,得到所述数据源数据查询结果,及利用所述其它数据算子在所述元数据库进行数据查询,得到其它数据查询结果;
汇总所述数据源数据查询结果及所述其它数据查询结果,得到所述元数据库的数据查询结果。
8.一种数据查询装置,其特征在于,所述装置包括:
构建元数据库模块,用于获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
语法解析模块,用于在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
语法校验模块,用于利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
语法优化模块,用于获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
执行语句转换模块,用于根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
数据查询模块,用于利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的数据查询方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255610.0A CN114610747A (zh) | 2022-03-15 | 2022-03-15 | 数据查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255610.0A CN114610747A (zh) | 2022-03-15 | 2022-03-15 | 数据查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610747A true CN114610747A (zh) | 2022-06-10 |
Family
ID=81862568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210255610.0A Pending CN114610747A (zh) | 2022-03-15 | 2022-03-15 | 数据查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610747A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089476A (zh) * | 2023-04-07 | 2023-05-09 | 北京宝兰德软件股份有限公司 | 数据查询方法、装置及电子设备 |
CN116595232A (zh) * | 2023-05-24 | 2023-08-15 | 杭州金智塔科技有限公司 | 跨数据源的数据处理系统、方法及装置 |
CN116702181A (zh) * | 2023-08-09 | 2023-09-05 | 北方健康医疗大数据科技有限公司 | 基于Apache Calcite的数据脱敏方法、系统、设备及介质 |
-
2022
- 2022-03-15 CN CN202210255610.0A patent/CN114610747A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089476A (zh) * | 2023-04-07 | 2023-05-09 | 北京宝兰德软件股份有限公司 | 数据查询方法、装置及电子设备 |
CN116595232A (zh) * | 2023-05-24 | 2023-08-15 | 杭州金智塔科技有限公司 | 跨数据源的数据处理系统、方法及装置 |
CN116702181A (zh) * | 2023-08-09 | 2023-09-05 | 北方健康医疗大数据科技有限公司 | 基于Apache Calcite的数据脱敏方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813963B (zh) | 知识图谱构建方法、装置、电子设备及存储介质 | |
CN114610747A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN112541338A (zh) | 相似文本匹配方法、装置、电子设备及计算机存储介质 | |
CN112115152B (zh) | 数据增量更新及查询方法、装置、电子设备及存储介质 | |
CN112948427B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN112364107A (zh) | 系统分析可视化方法、装置、电子设备及计算机可读存储介质 | |
CN111428458A (zh) | 通用报表生成方法、装置及计算机可读存储介质 | |
CN113672781A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN112883042A (zh) | 数据更新及展示方法、装置、电子设备及存储介质 | |
CN114979120B (zh) | 数据上传方法、装置、设备及存储介质 | |
CN112115143A (zh) | 数据自动更新及同步方法、装置、电子设备及存储介质 | |
CN111897856A (zh) | 监管报文生成方法、装置、电子设备及可读存储介质 | |
CN112506486A (zh) | 搜索系统建立方法、装置、电子设备及可读存储介质 | |
CN113961584A (zh) | 字段血缘分析方法、装置、电子设备及存储介质 | |
CN113434542B (zh) | 数据关系识别方法、装置、电子设备及存储介质 | |
CN112347126A (zh) | 大数据处理方法、装置、设备及介质 | |
CN113468175A (zh) | 数据压缩方法、装置、电子设备及存储介质 | |
CN113282854A (zh) | 数据请求响应方法、装置、电子设备及存储介质 | |
CN112486957A (zh) | 数据库迁移检测方法、装置、设备及存储介质 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN114896164A (zh) | 接口优化方法、装置、电子设备及存储介质 | |
CN114116673A (zh) | 基于人工智能的数据迁移方法及相关设备 | |
CN112506931A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114528593A (zh) | 数据权限控制方法、装置、设备及存储介质 | |
CN113806492A (zh) | 基于语义识别的记录生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |