CN115952203A - 数据查询方法、设备、系统及存储介质 - Google Patents
数据查询方法、设备、系统及存储介质 Download PDFInfo
- Publication number
- CN115952203A CN115952203A CN202310239766.4A CN202310239766A CN115952203A CN 115952203 A CN115952203 A CN 115952203A CN 202310239766 A CN202310239766 A CN 202310239766A CN 115952203 A CN115952203 A CN 115952203A
- Authority
- CN
- China
- Prior art keywords
- data
- queried
- column
- query
- mode
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据查询方法、设备、系统及存储介质。在本申请实施例中,可通过查询请求构建待查询数据的数据模式;并按照构建出的数据模式组装待查询数据,这样即可根据查询请求和数据模式,对以构建出的数据模式存储的待查询数据进行计算操作,得到查询结果,实现了读时建模。这种数据查询方式无需数据按照固定的数据模式写入,可提高数据灵活性;且读时建模可满足计算分析需求,提高数据库的数据计算能力,从而在保证数据库的数据灵活性的同时,提高了数据库的计算能力。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据查询方法、设备、系统及存储介质。
背景技术
随着信息化技术的发展,数据爆发式增长,数据库不断被开发和利用。数据库作为信息
技术的核心和基础,承载着众多关键数据。现代数据库以及各种存储分析系统,一般使用结构化查询语言(Structured Query Language,SQL)来对数据进行各种聚合以及联合分析等,使用SQL要求待分析的数据本身遵从规范的关系数据模型的模式(Schema)。
在一些方案中,需要预先定义数据的模式(Schema),之后按照定义好的模式将数据写入数据库。因此,数据库存储的数据均遵从预先定义的模式,数据灵活性较低。在另一些方案中,数据库系统在数据写入时对数据格式未严格要求,但这类系统不具备SQL分析能力。因此,如何在保证数据灵活性的同时,提高数据库的数据计算的能力,成为本领域亟待解决的技术问题。
发明内容
本申请的多个方面提供一种数据查询方法、设备、系统及存储介质,用以在保证数据灵活性的同时,提高系统的数据计算能力。
本申请实施例提供一种数据查询方法,包括:
获取查询请求;所述查询请求对应的待查询数据源的数据是非固定模式存储的;
根据所述查询请求,构建所述待查询请求对应的待查询数据的数据模式;
从所述待查询数据源中,读取待查询数据;
按照所述数据模式,组装所述待查询数据,以得到按照所述数据模式存储的数据;
根据所述数据模式和所述查询请求,对所述按照所述数据模式存储的数据进行计算操作,以得到查询结果。
本申请实施例还提供一种数据库系统,包括:查询引擎和数据源;所述数据源包括:查询请求对应的待查询数据源;所述待查询数据源的数据为非固定模式存储的;
所述查询引擎用于执行上述数据查询方法中的步骤。
本申请实施例还提供一种计算设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述数据查询方法中的步骤。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述数据查询方法中的步骤。
在本申请实施例中,可通过查询请求构建待查询数据的数据模式;并按照构建出的数据模式组装待查询数据,这样即可根据查询请求和数据模式,对以构建出的数据模式存储的待查询数据进行计算操作,得到查询结果,实现了读时建模。这种数据查询方式无需数据按照固定的数据模式写入,可提高数据灵活性;且读时建模可满足计算分析需求,提高数据库的数据计算能力,从而在保证数据库的数据灵活性的同时,提高了数据库的计算能力。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1和图2为本申请实施例提供的数据库系统的结构示意图;
图3和图4为本申请实施例提供的数据查询方法的流程示意图;
图5为本申请实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一些实施例中,可通过查询请求构建待查询数据的数据模式;并按照构建出的数据模式组装待查询数据,这样即可根据查询请求和数据模式,对以构建出的数据模式存储的待查询数据进行计算操作,得到查询结果,实现了读时建模。这种数据查询方式无需数据按照固定的数据模式写入,可提高数据灵活性;且读时建模可满足计算分析需求,提高数据库的数据计算能力,从而在保证数据库的数据灵活性的同时,提高了数据库的计算能力。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1和图2为本申请实施例提供的数据库系统的结构示意图。如图1和图2所示,该数据库系统S10包括:查询引擎10和数据源20。
查询引擎10是指提供基于数据源的查询功能的软件模块、应用程序、服务或实体设备。本申请实施例提供的查询引擎10可以实现为联机分析处理(Online AnalyticalProcessing,OLAP)系统。
如图2所示,查询引擎10可包括:解析器101、优化器102和执行器103。其中,解析器101、优化器102和执行器103可位于同一物理机,也可部署于不同的物理机。
数据源20是指数据库应用程序所使用的数据库或者数据库服务器。数据源20是用来存储数据的工具,它可以是数据库,也可以是存储文件,如具有行和列的数据表等。数据源20的数量可以为1个或多个。多个是指2个或2个以上。不同数据源可以部署在同一存储设备上,同一数据源也可分布在不同存储设备上。
在本实施例中,为了提高数据源20存储的数据灵活性,数据库系统对写入数据源20的数据的数据模式不做要求。相应地,查询引擎10可不预先定义数据模式(Schema),无需按照预先定义的数据模式将数据写入数据源20,数据可灵活写入数据源20。
在本实施例中,数据模式(Schema)用于描述在特定的数据模型下,数据源中数据的存储方式。对于关系数据模型的数据源,数据模式用于描述数据源中的表结构。例如,表的列数、列的属性及列的数据类型等。数据类型是数据的一个属性,它告诉编译器如何使用数据。数据类型可包括:整数类型、浮点数类型、定点数类型浮点型、字符串类型及二进制类型等。其中,整数类型包括 tinyint、smallint、mediumint、int及bigint等类型。浮点数类型包括float和double等类型,定点数类型可包括decimal等。字符串类型可包括:char、varchar、binary、varbinary、blob、text、enum及set等。二进制类型可包括:bit、binary及varbinary 等。
在实际应用中,用户对数据源中数据进行查询时,经常需要对数据进行计算操作,例如,对数据进行聚合操作操作或者对数据进行联合分析等。参与计算操作的数据需要遵从统一的数据模式,才可对数据进行联合计算操作。对于数据源20中非固定模式(Schema)存储的数据,无法直接进行复杂的计算。其中,非固定模式存储的数据是指未按照预先定义数据模式(Schema),存储的数据,或者是未预先定义数据模式,而直接写入到数据源20的数据。在本实施例中,非固定模式存储的数据可为键值对(Key-Value,KV)数据。非固定模式存储的数据也可以数据表进行存储,不同数据表的元数据可以相同,也可不同。数据表的元数据包括:数据表的列数、列名(也可称为列的属性)及列的数据类型等。
在本实施例中,为了在保证数据存储灵活性的同时,实现对非固定模式存储的数据的计算,提出一种自动读时建模进行数据查询的方式。其中,读时建模是指在读取非固定模式存储的数据时,构建待查询数据的数据模式。下面对本申请实施例提供的数据查询方式进行示例性说明。
在本实施例中,数据库系统S10可向用户提供数据库查询服务。其中,数据库系统S10可提供简单查询服务、联合查询服务和关联查询服务等各种查询服务,但不限于此。当用户需要进行数据查询时,可通过用户端30向数据库系统S10发出查询请求。例如,数据库系统S10可以面向用户提供查询入口,供用户端30发出查询请求。可选地,数据库系统S10向用户提供的查询入口可以是一个网页、应用页面或命令窗口等。
进一步,查询请求到达数据库系统S10时,查询引擎10可接收用户端30发出的查询请求。查询请求可为用于各种运算的连接查询请求,包括但不局限于:选择查询、投影查询联合查询及聚合查询等。该查询请求可包括:待查询的数据源的标识、待查询数据的标识及对待查询数据的计算类型等。待查询数据的计算类型可为聚合操作和/或关联分析等。在本申请实施例中,不限定查询请求的编程语言。例如,查询请求可为结构化查询语言(Structured Query Language,SQL)、缓存查询语言(Linkcache query language,LQL)、或领域专用语言(Domain Specified Language,DSL)等编写的查询请求。
由于对数据进行计算分析,需要数据遵从一定的数据模式,而数据源中的原始数据是非固定模式存储的,因此,查询引擎10无法直接对数据源中读取的原始数据进行计算。为了解决该问题,在本实施例中,查询引擎10可根据查询请求,构建查询请求对应的待查询数据的数据模式。待查询数据为查询请求所请求查询的数据。
在一些实施例中,如图2所示,查询引擎10可对查询请求进行解析,以得到抽象语法树(Abstracted Syntax Tree,AST)。
具体地,查询引擎中的解析器101可对查询请求进行词法分析和语法解析,得到抽象语法树,并在该过程中对查询请求的语句进行错误检测,确保输入的请求语句没有语法和词法错误。例如,检测是否存在关键词拼写错误、是否有多余的标点符号、整个语句是否合法等等。
进一步,解析器101可根据抽象语法树,构建待查询数据的数据模式。具体地,解析器101可根据抽象语法树,确定待查询数据源及待查询列的属性。其中,待查询列存储的数据包括待查询数据。在一些实施例中,待查询列存储的数据即为待查询数据。具体地,解析器101可从抽象语法树中,获取表扫描节点(Table Scan Node),并从表扫描节点中读取待查询数据源及待查询列的属性。其中,待查询列的属性为待查询列的列名,可理解为待查询列存储的数据的属性,用于反映数据具体是什么信息,也可理解为键值对(Key-Value,KV)中的键。其中,待查询列存储的数据对应的数据对象不同,待查询列的属性不同。例如,在一些实施例中,待查询列存储的数据为某商品信息,则待查询列的属性可为商品名称、型号、数量及价格等。又例如,待查询列存储的数据为日志数据,则待查询列的属性可为时间戳及日志数据所属对象的属性等。
进一步,解析器101还可确定待查询列的数据类型。在一些实施例中,解析器101可根据待查询列的属性,确定待查询列的数据类型。例如,查询引擎10预先存储属性与数据类型之间的对应关系。相应地,解析器101可利用待查询列的属性,在属性与数据类型之间的对应关系中进行匹配,以得到待查询列的属性对应的数据类型,作为待查询列的数据类型。其中,属性与数据类型之间的对应关系可通过对其它按照数据模式存储的数据表进行分析得到,也可根据经验灵活设置等。例如,对于时间戳属性,可设置为bigint类型,其它属性设置为varchar类型等。
在另一些实施例中,解析器101可对查询请求进行语义分析,以得到查询请求包含的子句;并可根据查询请求包含的子句,确定对待查询列进行运算的函数和/或运算表达式。子句中对待查询列进行运算的为函数,还是运算表达式,亦或是函数和运算表达式都有,具体由用户的查询需求进行决定。其中,运算表达式可包括操作数和操作符。操作数是操作符作用于的实体。
函数对入参的数据类型(简称入参类型)具有要求。函数不同,适配的入参类型不同。例如,函数为求和函数“sum”,则求和函数“sum”适配的入参类型为数字类型,如整数类型或浮点类型等。又例如,函数为三角函数(如余弦函数“cos”),三角函数适配的入参类型为浮点类型。
对于运算表达式,对适配的操作数的数据类型也是有要求的。例如,对于“不等于”、“小于”或“大于”等比较操作的运算表达式,待查询列的数据类型由该比较操作的运算表达式中另一操作数的数据类型决定。例如,比较操作的表达式中另一操作数为字符串类型,则待查询列为字符串类型;若比较操作的表达式中另一操作数为数字类型,则待查询列为数字类型。
又例如,对于算术运算操作对应的运算表达式,该运算表达式中待查询列的数据类型可由操作符决定。例如,除法操作符“/”及取余操作符“%”,其操作数适配的数据类型为整数类型,等等。
基于此,在本实施例中,还可根据查询请求的子句中包含的对待查询列进行运算的函数和/或运算表达式,确定待查询列的数据类型。
具体地,查询请求的子句可包括:对待查询列进行运算的函数和/或运算表达式。其中,子句包含的函数的数量,和/或子句包含的操作符的数量均由用户的查询需求决定。相应地,查询引擎10可确定对待查询列进行运算的函数适配的入参类型;以及,根据该函数适配的入参类型,确定待查询列的数据类型。和/或,查询引擎10可根据对待查询列进行运算的运算表达式,确定待查询列的数据类型。
其中,一个函数适配的入参类型可为1个或多个。当然,一个运算表达式适配的数据类型也可为1个或多个。多个是指2个或2个以上。在本实施例中,具体地,查询引擎10预先存储函数名与入参类型之间的对应关系,以及,操作符与操作数的数据类型之间的对应关系。相应地,解析器101在确定对待查询列进行运算的函数适配的入参类型时,可将该函数的函数名在上述函数名与入参类型之间的对应关系中进行匹配,以确定对待查询列进行运算的函数适配的入参类型。
当然,解析器101在根据对待查询列进行运算的运算表达式,确定待查询列的数据类型时,可将该操作符在上述操作符与操作数的数据类型之间的对应关系中进行匹配,以得到对待查询列进行运算的操作符适配的数据类型。或者,可根据对待查询列进行运算的运算表达式中另一操作数的数据类型,确定待查询列的数据类型。
在上述实施例和下述实施例中,若查询请求仅包括对待查询列进行运算的函数,只执行上述确定对待查询列进行运算的函数适配的入参类型的步骤。相应地,在确定待查询列的数据类型时,可根据对待查询列进行运算的函数适配的入参类型,确定待查询列的数据类型。
其中,对同一待查询列进行运算的函数可能为1个或多个。在对同一待查询列进行运算的函数为多个时,多个函数适配的数据类型可能部分相同,则可根据对同一待查询列进行运算的多个函数分别对应的入参类型,确定多个函数适配的入参类型的交集类型;并根据多个函数适配的入参类型的交集类型,确定待查询列的数据类型。
具体地,若多个函数适配的入参类型的交集类型为1个,则确定该交集类型为待查询列的数据类型。若多个函数适配的入参类型的交集类型为多个,可根据预先设置的数据类型使用顺序,从多个交集类型中选择使用顺序最靠前的交集类型,作为待查询列的数据类型。
若查询请求仅包含对待查询列进行运算的运算表达式,则只执行上述根据对待查询列进行运算的运算表达式,确定待查询列的数据类型的步骤。相应地,在确定待查询列的数据类型时,可根据对待查询列进行运算的运算表达式,确定待查询列的数据类型。
其中,对同一待查询列进行运算的运算表达式也可能为1个或多个。在同一待查询列进行运算的运算表达式为多个时,多个运算表达式确定出数据类型可能部分相同,则可根据对同一待查询列进行运算的多个运算表达式分别确定出的数据类型,确定多个运算表达式确定出的数据类型的交集类型;并根据多个运算表达式分别出的数据类型的交集类型,确定待查询列的数据类型。
具体地,若多个运算表达式确定出的数据类型的交集类型为1个,则确定该交集类型为待查询列的数据类型。若多个运算表达式确定出的数据类型的交集类型为多个,可根据预先设置的数据类型使用顺序,从多个交集类型中选择使用顺序最靠前的交集类型,作为待查询列的数据类型。
若查询请求包含对待查询列进行运算的函数和运算表达式,则执行上述确定对待查询列进行运算的函数的入参类型的步骤,以及上述根据对待查询列进行运算的运算表达式,确定待查询列的数据类型的步骤。相应地,在确定待查询列的数据类型时,可根据函数的入参类型和上述根据运算表达式确定出的待查询列的数据类型,确定待查询列的数据类型。
其中,对同一待查询列进行运算的函数和运算表达式均可能为1个或多个。相应地,可确定对同一待查询列进行运算的函数适配的入参类型和上述根据运算表达式确定出的该待查询列的数据类型之间的交集类型;并根据交集类型,确定该待查询列的数据类型。
在确定出待查询列的数据类型之后,解析器101可根据待查询数据源的存储分布信息、待查询列的属性及待查询列的数据类型,构建待查询数据的数据模式。其中,数据模式可为数据表形式。该数据模式包括:待查询数据源的存储分布信息、待查询列的属性及待查询列的数据类型。待查询数据源的存储分布信息用于指示待查询数据源的存储位置,可预先存储至查询引擎10中。
在本申请实施例中,查询引擎10还可从待查询数据源中,读取待查询数据。具体地,如图2所示,查询引擎10可从查询请求对应的抽象语法树中,获取表扫描节点;并从表扫描节点读取待查询列的属性。进一步,查询引擎10可根据待查询列的属性,按照行扫描方式,扫描待查询数据源的数据;并从扫描到的数据行中,读取属性与待查询列的属性匹配的数据,作为待查询数据。该过程可由查询引擎10的解析器101执行。
具体地,查询引擎10可将待查询列的属性与扫描到的数据行包含的属性进行匹配,若扫描到的数据行包含的属性与待查询列的属性匹配,则从扫描到的数据行读取该属性及该属性对应的属性值,直至待查询数据源遍历完成。待查询数据源遍历完成时所有读取的属性及属性值即为待查询数据。
由于对待查询数据进行计算,需要待查询数据遵从一定的数据模式,因此,查询引擎10可按照上述构建出的数据模式,组装待查询数据,使得待查询数据按照上述构建出的数据模式存储,即得到按照上述构建出的数据模式存储的数据。组装完成的待查询数据的数据模式与上述构建出的数据模式相同。
进一步,查询引擎10可根据上述构建出的数据模式和查询请求,对按照构建出的数据模式存储的数据(即上述组装完成的待查询数据)进行计算操作,得到查询结果。计算操作的类型由查询请求决定。若查询请求为聚合查询,则计算操作为聚合操作,如求平均值、最大值或最小值等。若查询请求为关联查询,则计算操作可为连接操作等。
在本实施例中,可通过查询请求构建待查询数据的数据模式;并按照构建出的数据模式组装待查询数据,这样即可根据查询请求和数据模式,对以构建出的数据模式存储的待查询数据进行计算操作,得到查询结果,实现了读时建模。这种数据查询方式无需数据按照固定的数据模式写入,可提高数据灵活性;且读时建模可满足计算分析需求,提高数据库的数据计算能力,从而在保证数据库的数据灵活性的同时,提高了数据库的计算能力。
在本申请一些实施例中,在根据根据上述构建出的数据模式和查询请求,对按照构建出的数据模式存储的数据(即上述组装完成的待查询数据)进行计算操作时,查询引擎10可根据构建出的数据模式和查询请求对应的抽象语法树,生成执行计划;并根据执行计划,按照上述构建出的数据模式存储的数据(即上述按照构建出的数据模式组装完成的待查询数据)进行计算操作,得到查询结果。
具体地,执行计划可包括:逻辑执行计划和物理执行计划。查询引擎10中的解析器101可根据构建出的数据模式,将抽象语法树的节点与数据模式描述的表的元数据进行绑定,对以得到逻辑执行计划。表的元数据可包括:待查询列的属性(即列名)和待查询列的数据类型等。具体地,解析器101可对上述抽象语法树的节点依次进行检查,并把构建出的数据模式中描述表的元数据绑定到抽象语法树的节点上,得到逻辑执行计划。
在一些实施例中,优化器102可对逻辑执行计划进行优化。优化器102可为基于规则的优化器(Rule-based Optimizer,RBO)或基于代价的优化器(Cost-based Optimizer,CBO)的优化器。
进一步,查询引擎10中的规划器(Planner)104可根据待查询数据源的存储分布信息和逻辑执行计划,生成物理执行计划。进一步,查询引擎10中的执行器103可根据物理执行计划,对按照上述构建出的数据模式存储的数据(即上述按照构建出的数据模式组装完成的待查询数据)进行对应的计算操作,得到查询结果。上述从待查询数据源中读取待查询数据的步骤可由执行器103执行。
其中,执行器103的数量可为1个或多个。多个是指2个或2个以上。多个执行器可部署于同一计算节点,也可部署于不同的计算节点上。规划器104可根据待查询数据源的存储分布信息,从多个执行器中选择目标执行器;并把物理执行计划下发到目标执行器所在的计算节点。相应地,计算节点中的目标执行器可根据物理执行计划,对按照上述构建出的数据模式存储的数据(即上述按照构建出的数据模式组装完成的待查询数据)进行对应的计算操作,得到查询结果。
可选地,规划器104可根据负载均衡策略,从多个执行器中选择目标执行器。或者,在一些存储与计算耦合的实施例中,计算节点存储有数据源。基于此,规划器104可根据待查询数据源的存储分布信息,确定待查询数据源所在的计算节点;并将物理执行计划下发到待查询数据源所在的计算节点中的执行器。待查询数据源所在的计算节点中的执行器即为目标执行器。
目标执行器可根据抽象语法树,从待查询数据源读取待查询数据;并按照上述实施例构建出的数据模式,组装待查询数据,得到按照构建出的数据模式存储的数据。进一步,目标执行器可根据物理执行计划,对按照上述构建出的数据模式存储的数据(即上述按照构建出的数据模式组装完成的待查询数据)进行物理执行计划对应的计算操作,得到查询结果。
在得到查询结果之后,查询引擎10可将查询结果返回给用户端30。用户端30可输出查询结果。
在本申请一些实施例中,为了降低查询引擎所在节点的内存消耗,可将构建出的数据模式的生命周期与当前查询请求进行绑定,并在得到查询请求对应的查询结果之后,销毁构建出的数据模式,在有新的查询请求到达时按照上述数据访问方式构建新的数据模式,实现自动读时建模。
除了上述系统实施例之外,本申请实施例还提供数据查询方法。下面对本申请实施例提供的数据查询方法进行示例性说明。
图3为本申请实施例提供的数据查询方法的流程示意图。如图3所示,数据查询方法主要包括以下步骤:
301、获取查询请求;查询请求对应的待查询数据源的数据是非固定模式存储的。
302、根据查询请求,构建该查询请求对应的待查询数据的数据模式。
303、从待查询数据源中,读取待查询数据。
304、按照上述构建出的数据模式,组装待查询数据,以得到按照上述构建出的数据模式存储的数据。
305、根据上述构建出的数据模式和查询请求,对按照上述构建出的数据模式存储的数据进行计算操作,以得到查询结果。
在本实施例中,为了提高数据源存储的数据灵活性,数据库系统对写入数据源的数据的数据模式不做要求。相应地,可不预先定义数据模式(Schema),无需按照预先定义的数据模式将数据写入数据源,数据可灵活写入数据源。关于数据模式的描述可参见上述系统实施例的相关内容,在此不再赘述。
在实际应用中,用户对数据源中数据进行查询时,经常需要对数据进行计算操作,例如,对数据进行聚合操作操作或者对数据进行联合分析等。参与计算操作的数据需要遵从统一的数据模式,才可对数据进行联合计算操作。对于数据源中非固定模式(Schema)存储的数据,无法直接进行复杂的计算。
在本实施例中,为了在保证数据存储灵活性的同时,实现对非固定模式存储的数据的计算,提出一种自动读时建模进行数据查询的方式。其中,读时建模是指在读取非固定模式存储的数据时,构建待查询数据的数据模式。下面对本申请实施例提供的数据查询方式进行示例性说明。
由于对数据进行计算分析等,需要数据遵从一定的数据模式,而数据源中的原始数据是非固定模式存储的,因此,对于步骤301获取的查询请求,在步骤302中,可根据查询请求,构建待查询数据的数据模式。待查询数据为查询请求所请求查询的数据。
在一些实施例中,步骤302可实现为图4中步骤401-步骤404。如步骤401所示,可对查询请求进行解析,以得到抽象语法树。
具体地,可对查询请求进行词法分析和语法解析,得到抽象语法树,并在该过程中对查询请求的语句进行错误检测,确保输入的请求语句没有语法和词法错误。例如,检测是否存在关键词拼写错误、是否有多余的标点符号、整个语句是否合法等等。
进一步,可根据抽象语法树,构建待查询数据的数据模式。具体地,如步骤402所示,可根据抽象语法树,确定待查询数据源及待查询列的属性。其中,待查询列存储的数据即为待查询数据。例如,可从抽象语法树中,获取表扫描节点,并从表扫描节点中读取待查询数据源及待查询列的属性。
进一步,在步骤403中,可确定待查询列的数据类型。在一些实施例中,可根据待查询列的属性,确定待查询列的数据类型。例如,可预先存储属性与数据类型之间的对应关系。相应地,可利用待查询列的属性,在属性与数据类型之间的对应关系中进行匹配,以得到待查询列的属性对应的数据类型,作为待查询列的数据类型。其中,属性与数据类型之间的对应关系可通过对其它按照数据模式存储的数据表进行分析得到,也可根据经验灵活设置等。
在另一些实施例中,可对查询请求进行语义分析,以得到查询请求包含的子句;并可根据查询请求包含的子句,确定对待查询列进行运算的函数和/或运算表达式。子句中对待查询列进行运算的为函数,还是操作符,亦或是函数和运算表达式都有,具体由用户的查询需求进行决定。
函数对入参的数据类型(简称入参类型)具有要求。函数不同,适配的入参类型不同。对于操作符,操作符对操作数的数据类型也是有要求的。基于此,在本实施例中,还可根据查询请求的子句中包含的对待查询列进行运算的函数和/或运算表达式,确定待查询列的数据类型。
具体地,查询请求的子句可包括:对待查询列进行运算的函数和/或运算表达式。其中,子句包含的函数的数量,和/或子句包含的运算表达式的数量均由用户的查询需求决定。相应地,可确定对待查询列进行运算的函数适配的入参类型,并根据函数适配的入参类型,确定待查询列的数据类型;和/或,根据对待查询列进行运算的运算表达式,确定对待查询列进行运算的操作符的操作数适配的数据类型。关于该步骤的具体实施方式,可参见上述实施例的相关内容,在此不再赘述。
在确定出待查询列的数据类型之后,在步骤404中,可根据待查询数据源的存储分布信息、待查询列的属性及待查询列的数据类型,构建待查询数据的数据模式。其中,数据模式可为数据表形式。该数据模式包括:待查询数据源的存储分布信息、待查询列的属性及待查询列的数据类型。待查询数据源的存储分布信息用于指示待查询数据源的存储位置,可预先存储至查询引擎中。
在本申请实施例中,在步骤303中,还可从待查询数据源中,读取待查询数据。其中,步骤303的具体实施方式可为图4中步骤407-步骤411。具体地,如图4所示,在步骤407中,可从查询请求对应的抽象语法树中,获取表扫描节点;并在步骤408中,从表扫描节点读取待查询列的属性。进一步,在步骤409中,可根据待查询列的属性,按照行扫描方式,扫描待查询数据源的数据;并从扫描到的数据行中,读取属性与待查询列的属性匹配的数据,作为待查询数据。
具体地,如图4步骤410所示,可将待查询列的属性与扫描到的数据行包含的属性进行匹配,若扫描到的数据行包含的属性与待查询列的属性匹配,则从扫描到的数据行读取该属性及该属性对应的属性值(参见步骤411。相应地,针对待查询数据源的数据行中不存在相匹配的属性的待查询列,可将该待查询列的值写为空值(参见步骤412)。按照上述方式对待查询数据源逐行遍历,直至待查询数据源遍历完成。待查询数据源遍历完成时所有读取的属性及属性值即为待查询数据。
由于对待查询数据进行计算,需要待查询数据遵从一定的数据模式,因此,在图3步骤304和图4步骤413中,可按照上述构建出的数据模式,组装待查询数据,使得待查询数据按照上述数据模式存储,即得到按照上述构建出的数据模式存储的数据。组装完成的待查询数据的数据模式与上述构建出的数据模式相同。
进一步,在步骤305中,可根据上述构建出的数据模式和查询请求,对按照数据模式存储的数据(即上述组装完成的待查询数据)进行计算操作,得到查询结果。计算操作的类型由查询请求决定。若查询请求为聚合查询,则计算操作为聚合操作,如求平均值、最大值或最小值等。若查询请求为关联查询,则计算操作可为连接操作等。
在本实施例中,可通过查询请求构建待查询数据的数据模式;并按照构建出的数据模式组装待查询数据,这样即可根据查询请求和数据模式,对以构建出的数据模式存储的待查询数据进行计算操作,得到查询结果,实现了读时建模。这种数据查询方式无需数据按照固定的数据模式写入,可提高数据灵活性;且读时建模可满足计算分析需求,提高数据库的数据计算能力,从而在保证数据库的数据灵活性的同时,提高了数据库的计算能力。
在本申请一些实施例中,在根据根据上述构建出的数据模式和查询请求,对按照数据模式存储的数据(即上述组装完成的待查询数据)进行计算操作时,可根据构建出的数据模式和查询请求对应的抽象语法树,生成执行计划;并根据执行计划,按照数据模式存储的数据(即上述按照构建出的数据模式组装完成的待查询数据)进行计算操作,得到查询结果。
具体地,执行计划可包括:逻辑执行计划和物理执行计划。相应地,上述根据构建出的数据模式和查询请求对应的抽象语法树,生成执行计划可实现为:图4中步骤405和步骤406。具体地,如步骤405所示,可根据构建出的数据模式,将抽象语法树的节点与数据模式描述的表的元数据进行绑定,以得到逻辑执行计划。表的元数据可包括:待查询列的属性(即列名)和待查询列的数据类型等。具体地,可对上述抽象语法树的节点依次进行检查,并把构建出的数据模式中描述表的元数据绑定到抽象语法树的节点上,得到逻辑执行计划。在一些实施例中,还可对逻辑执行计划进行优化。
进一步,在步骤406中,可根据待查询数据源的存储分布信息和逻辑执行计划,生成物理执行计划;并在步骤414中,根据物理执行计划,对按照数据模式存储的数据(即上述按照构建出的数据模式组装完成的待查询数据)进行对应的计算操作,得到查询结果。
值得说明的是,上述步骤303和步骤304及其具体实施方式,可由步骤414中执行物理执行计划的节点(如查询引擎中的执行器)实施。
在得到查询结果之后,可将查询结果返回给发出查询请求的用户端。用户端可输出查询结果。
在本申请一些实施例中,为了降低查询引擎所在节点的内存消耗,可将构建出的数据模式的生命周期与当前查询请求进行绑定,并在得到查询请求对应的查询结果之后,销毁构建出的数据模式(参见图4步骤415),在有新的查询请求到达时按照上述数据访问方式构建新的数据模式,实现自动读时建模。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤304和305的执行主体可以为设备A;又比如,步骤304的执行主体可以为设备A,步骤305的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如304、305等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
还需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述数据查询方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括:计算机程序。其中,计算机程序被处理器执行可实现上述数据查询方法中的步骤。在本申请实施例中,不限定计算机程序产品的具体实现形式。在一些实施例中,计算机程序产品可实现为查询引擎或针对数据库的数据处理系统等。
图5为本申请实施例提供的计算设备的结构示意图。如图5所示,该计算设备包括:存储器50a和处理器50b。其中,存储器50a,用于存储计算机程序。
处理器50b耦合至存储器50a,用于执行计算机程序以用于:获取查询请求;查询请求对应的待查询数据源的数据是非固定模式存储的;根据查询请求,构建该查询请求对应的待查询数据的数据模式;从待查询数据源中,读取待查询数据;按照上述构建出的数据模式,组装待查询数据,以得到按照数据模式存储的数据;以及,根据数据模式和查询请求,对按照数据模式存储的数据进行计算操作,以得到查询结果。
在一些实施例中,处理器50b在根据查询请求,构建该查询请求对应的待查询数据的数据模式时,具体用于:对查询请求进行解析,以得到抽象语法树;根据抽象语法树,构建数据模式。
进一步,处理器50b在根据抽象语法树,构建数据模式时,具体用于:根据抽象语法树,确定待查询数据源及待查询列的属性;待查询列存储的数据包括待查询数据;确定待查询列的数据类型;根据待查询数据源的存储分布信息、待查询列的属性及待查询列的数据类型,构建数据模式。
可选地,处理器50b在确定待查询列的数据类型时,具体用于:根据待查询列的属性,确定待查询列的数据类型;和/或,对查询请求进行语义分析,以得到查询请求包含的子句;根据查询请求包含的子句,确定对待查询列进行运算的函数和/或运算表达式;根据所述对待查询列进行运算的函数和/或运算表达式,确定待查询列的数据类型。
进一步,处理器50b在根据对待查询列进行运算的函数和/或运算表达式,确定待查询列的数据类型时,具体用于:确定对待查询列进行运算的函数适配的入参类型;根据该函数适配的入参类型,确定待查询列的数据类型;和/或,根据对待查询列进行运算的逻辑表达式,确定待查询列的数据类型。
在另一些实施例中,处理器50b在从待查询数据源中,读取待查询数据时,具体用于:根据待查询列的属性,按照行扫描方式,扫描待查询数据源的数据;从扫描到的数据行中,读取属性与待查询列的属性匹配的数据,作为待查询数据。
在又一些实施例中,处理器50b在根据数据模式和查询请求,对按照数据模式存储的数据进行计算时,具体用于:根据数据模式和查询请求对应的抽象语法树,生成执行计划;并根据执行计划,对按照数据模式存储的数据进行计算,以得到查询结果。
可选地,执行计划包括:逻辑执行计划和物理执行计划。相应地,处理器50b在根据数据模式和查询请求对应的抽象语法树,生成执行计划时,具体用于:根据数据模式,将抽象语法树的节点与数据模式描述的表的元数据进行绑定,以得到逻辑执行计划;并根据待查询数据源的存储分布信息和逻辑执行计划,生成物理执行计划。
响应地,处理器50b在根据执行计划,对按照数据模式存储的数据进行计算操作时,具体用于:根据物理执行计划,对按照数据模式存储的数据进行物理执行计划对应的计算操作,以得到查询结果。
在一些实施例中,处理器50b还用于:在得到查询结果之后,销毁上述构建出的数据模式。
在一些可选实施方式中,如图5所示,该计算设备还可以包括:通信组件50c和电源组件50d等组件。在一些实施例中,计算设备可实现为电脑、手机等终端设备。相应地,计算设备还可包括:显示组件50e及音频组件50f等组件。图5中仅示意性给出部分组件,并不意味着计算设备必须包含图5所示全部组件,也不意味着计算设备只能包括图5所示组件。
本申请实施例提供的计算设备,可通过查询请求构建待查询数据的数据模式;并按照构建出的数据模式组装待查询数据,这样即可根据查询请求和数据模式,对以构建出的数据模式存储的待查询数据进行计算操作,得到查询结果,实现了读时建模。这种数据查询方式无需数据按照固定的数据模式写入,可提高数据灵活性;且读时建模可满足计算分析需求,提高数据库的数据计算能力,从而在保证数据库的数据灵活性的同时,提高了数据库的计算能力。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM),可擦除可编程只读存储器(Electrical Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable Read Only Memory,PROM),只读存储器(Read Only Memory,ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为专用集成电路(Application Specific Integrated Circuit,ASIC)芯片;或者为先进精简指令集(Reduced Instruction Set Compute,RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SoC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如无线保真(Wireless Fidelity,WiFi),2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(Near Field Communication,NFC)技术、射频识别(Radio Frequency Identification,RFID)技术、红外数据协会(Infrared DataAssociation,IrDA)技术、超宽带(Ultra Wide Band,UWB)技术、蓝牙(Bluetooth,BT)技术或其他技术来实现。
在本申请实施例中,显示组件可以包括液晶显示器(Liquid Crystal Display,LCD)和触摸面板(TouchPanel,TP)。如果显示组件包括触摸面板,显示组件可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(Microphone,MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(或系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(如CPU等)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(Random-Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash RAM)。内存是计算机可读介质的示例。
计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM))、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备查询的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上内容仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种数据查询方法,包括:
获取查询请求;所述查询请求对应的待查询数据源的数据是非固定模式存储的;
根据所述查询请求,构建所述查询请求对应的待查询数据的数据模式;
从所述待查询数据源中,读取待查询数据;
按照所述数据模式,组装所述待查询数据,以得到按照所述数据模式存储的数据;
根据所述数据模式和所述查询请求,对所述按照所述数据模式存储的数据进行计算操作,以得到查询结果。
2.根据权利要求1所述的方法,所述根据所述查询请求,构建所述查询请求对应的待查询数据的数据模式,包括:
对所述查询请求进行解析,以得到抽象语法树;
根据所述抽象语法树,构建所述数据模式。
3.根据权利要求2所述的方法,所述根据所述抽象语法树,构建所述数据模式,包括:
根据所述抽象语法树,确定所述待查询数据源及待查询列的属性;所述待查询列存储的数据包括所述待查询数据;
确定所述待查询列的数据类型;
根据所述待查询数据源的存储分布信息、所述待查询列的属性及所述待查询列的数据类型,构建所述数据模式。
4.根据权利要求3所述的方法,所述确定所述待查询列的数据类型,包括:
根据所述待查询列的属性,确定所述待查询列的数据类型;
和/或,
对所述查询请求进行语义分析,以得到所述查询请求包含的子句;根据所述查询请求包含的子句,确定对所述待查询列进行运算的函数和/或运算表达式;根据所述对所述待查询列进行运算的函数和/或运算表达式,确定所述待查询列的数据类型。
5.根据权利要求3所述的方法,所述从所述待查询数据源中,读取待查询数据,包括:
根据所述待查询列的属性,按照行扫描方式,扫描所述待查询数据源的数据;
从扫描到的数据行中,读取属性与所述待查询列的属性匹配的数据,作为所述待查询数据。
6.根据权利要求2所述的方法,所述根据所述数据模式和所述查询请求,对所述按照所述数据模式存储的数据进行计算,包括:
根据所述数据模式和所述查询请求对应的抽象语法树,生成执行计划;
根据所述执行计划,对所述按照所述数据模式存储的数据进行计算,以得到查询结果。
7.根据权利要求6所述的方法,所述执行计划包括:逻辑执行计划和物理执行计划;所述根据所述数据模式和所述查询请求对应的抽象语法树,生成执行计划,包括:
根据所述数据模式,将所述抽象语法树的节点与所述数据模式描述的表的元数据进行绑定,以得到逻辑执行计划;
根据所述待查询数据源的存储分布信息和所述逻辑执行计划,生成物理执行计划。
8.根据权利要求7所述的方法,所述根据所述执行计划,对所述按照所述数据模式存储的数据进行计算操作,包括:
根据所述物理执行计划,对所述按照所述数据模式存储的数据进行所述物理执行计划对应的计算操作,以得到所述查询结果。
9.根据权利要求1-8任一项所述的方法,还包括:
在得到所述查询结果之后,销毁所述数据模式。
10.一种数据库系统,包括:查询引擎和数据源;所述数据源包括:查询请求对应的待查询数据源;所述待查询数据源的数据为非固定模式存储的;
所述查询引擎用于执行权利要求1-9任一项所述的方法中的步骤。
11.一种计算设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行权利要求1-9任一项所述方法中的步骤。
12.一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-9任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310239766.4A CN115952203B (zh) | 2023-03-08 | 2023-03-08 | 数据查询方法、设备、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310239766.4A CN115952203B (zh) | 2023-03-08 | 2023-03-08 | 数据查询方法、设备、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115952203A true CN115952203A (zh) | 2023-04-11 |
CN115952203B CN115952203B (zh) | 2023-08-04 |
Family
ID=87287942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310239766.4A Active CN115952203B (zh) | 2023-03-08 | 2023-03-08 | 数据查询方法、设备、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952203B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982075A (zh) * | 2012-10-30 | 2013-03-20 | 北京京东世纪贸易有限公司 | 支持访问异构数据源的系统和方法 |
US20160292229A1 (en) * | 2015-03-30 | 2016-10-06 | Samsung Electronics Co., Ltd. | Storage system and method of operating the same |
US20170220606A1 (en) * | 2016-01-29 | 2017-08-03 | Ca, Inc. | Unified data model for integration between relational and non-relational databases |
CN110032591A (zh) * | 2018-12-28 | 2019-07-19 | 国网浙江省电力有限公司信息通信分公司 | 一种资产大数据智能分析方法 |
US10552443B1 (en) * | 2016-08-11 | 2020-02-04 | MuleSoft, Inc. | Schemaless to relational representation conversion |
WO2020121026A2 (en) * | 2018-12-12 | 2020-06-18 | Pratik Sharma | Querying schema-less datastore using structured query language |
CN112579610A (zh) * | 2020-12-23 | 2021-03-30 | 安徽航天信息有限公司 | 多数据源结构分析方法、系统、终端设备及存储介质 |
-
2023
- 2023-03-08 CN CN202310239766.4A patent/CN115952203B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982075A (zh) * | 2012-10-30 | 2013-03-20 | 北京京东世纪贸易有限公司 | 支持访问异构数据源的系统和方法 |
US20160292229A1 (en) * | 2015-03-30 | 2016-10-06 | Samsung Electronics Co., Ltd. | Storage system and method of operating the same |
US20170220606A1 (en) * | 2016-01-29 | 2017-08-03 | Ca, Inc. | Unified data model for integration between relational and non-relational databases |
US10552443B1 (en) * | 2016-08-11 | 2020-02-04 | MuleSoft, Inc. | Schemaless to relational representation conversion |
WO2020121026A2 (en) * | 2018-12-12 | 2020-06-18 | Pratik Sharma | Querying schema-less datastore using structured query language |
CN110032591A (zh) * | 2018-12-28 | 2019-07-19 | 国网浙江省电力有限公司信息通信分公司 | 一种资产大数据智能分析方法 |
CN112579610A (zh) * | 2020-12-23 | 2021-03-30 | 安徽航天信息有限公司 | 多数据源结构分析方法、系统、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115952203B (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959433B (zh) | 一种从软件项目数据中提取知识图谱并问答的方法与系统 | |
AU2018272840B2 (en) | Automated dependency analyzer for heterogeneously programmed data processing system | |
US8874600B2 (en) | System and method for building a cloud aware massive data analytics solution background | |
US8537160B2 (en) | Generating distributed dataflow graphs | |
CN111971666A (zh) | 优化sql查询计划的维度上下文传播技术 | |
Wylot et al. | Tripleprov: Efficient processing of lineage queries in a native rdf store | |
US9229971B2 (en) | Matching data based on numeric difference | |
US10789295B2 (en) | Pattern-based searching of log-based representations of graph databases | |
JP5791149B2 (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
CN110543356A (zh) | 异常任务检测方法、装置、设备及计算机存储介质 | |
CN104679646A (zh) | 一种用于检测sql代码缺陷的方法和装置 | |
Chaves-Fraga et al. | Enhancing virtual ontology based access over tabular data with Morph-CSV | |
CN109710220A (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
CN113468204A (zh) | 一种数据查询方法、装置、设备、介质 | |
CN114781342A (zh) | 用于石化行业的报表生成方法、装置、设备和存储介质 | |
CN115952203B (zh) | 数据查询方法、设备、系统及存储介质 | |
CN113448942B (zh) | 数据库访问方法、装置、设备及存储介质 | |
CN115687050A (zh) | 一种sql语句的性能分析方法及装置 | |
CN114116773A (zh) | 一种结构化查询语言sql文本审核方法及装置 | |
CN113448969A (zh) | 数据处理方法、设备、程序产品及存储介质 | |
CN112783758A (zh) | 测试案例库与特征库生成方法、设备及存储介质 | |
Flores et al. | Incremental schema integration for data wrangling via knowledge graphs | |
CN116756184B (zh) | 数据库实例处理方法、装置、设备、存储介质及程序产品 | |
US11250010B2 (en) | Data access generation providing enhanced search models | |
CN113157726A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |