CN111475534A - 一种数据查询方法及相关设备 - Google Patents
一种数据查询方法及相关设备 Download PDFInfo
- Publication number
- CN111475534A CN111475534A CN202010397694.2A CN202010397694A CN111475534A CN 111475534 A CN111475534 A CN 111475534A CN 202010397694 A CN202010397694 A CN 202010397694A CN 111475534 A CN111475534 A CN 111475534A
- Authority
- CN
- China
- Prior art keywords
- information
- query
- data
- target
- determining
- 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
-
- 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/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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据查询方法及相关设备,该方法包括:在获取到用户输入的查询语言后,首先,对查询语句进行解析得到第一信息和第二信息。其中,第一信息为存储有查询目标的数据源信息;第一信息包括第三信息和第四信息;第三信息表征目标数据集的数据类型,第四信息表征目标数据集在数据源中的存储标识,目标数据集为用于对查询目标进行查询处理所需的数据集;第二信息表征查询目标的特征标识。然后,根据第一信息确定查询动作,并根据第一信息从数据池中确定目标数据集;其中,数据池包括N个数据源;数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同。最后,利用查询动作和目标数据集确定查询目标,以便提高查询效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据查询方法及相关设备。
背景技术
随着数据信息的激增,用于记录数据的数据集(如表格、文本、文档、知识图谱等数据集)的数据类型也呈现出多元化。例如,数据集的数据类型可以包括结构化数据(如表格)以及非结构化数据(如文档或知识图谱)。
目前,当技术人员需要对待查询数据进行数据查询时,首先,技术人员需要根据目标数据集(也就是,用于确定待查询数据的数据集)的数据类型,确定用于处理该目标数据集所需的查询语言(如面向对象编程语言、结构化查询语言数据库(Structured QueryLanguage,SQL)语言等语言),作为目标查询语言。然后,技术人员使用目标查询语言在目标数据集中进行查询处理,确定该待查询数据。例如,当目标数据集为结构化数据时,技术人员可以先利用SQL语言生成SQL查询语句,再利用该SQL查询语句从数据库中进行数据查询。可见,因技术人员需要针对不同数据类型的数据集输入不同的查询语言进行查询,导致数据查询过程比较复杂。
发明内容
为了解决现有技术中存在的以上技术问题,本申请提供一种数据查询方法及相关设备,无需技术人员需要针对不同数据类型的数据集输入不同的查询语言进行查询,简化了数据查询过程,提高了数据查询效率。
为了实现上述目的,本申请实施例提供的技术方案如下:
本申请实施例提供一种数据查询方法,包括:
获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
利用所述查询动作和所述目标数据集确定所述查询目标。
可选的,所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和第一映射关系,确定所述查询动作;其中,所述第一映射关系用于记录不同数据类型的数据集对应的查询动作。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和数据操作信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述数据操作信息生成查询动作。
可选的,所述根据所述第三信息和所述数据操作信息生成查询动作,具体为:
根据所述第三信息和第二映射关系,确定初始动作;其中,所述第二映射关系用于记录不同数据类型的数据集对应的查询动作;
根据所述初始动作和所述数据操作信息,生成查询动作。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和第五信息;其中,所述第五信息为所述查询目标在所述目标数据集中具有的属性描述信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述第五信息生成查询动作。
可选的,所述根据所述第一信息从数据池中确定所述目标数据集,具体为:
根据所述第三信息,从所述数据池中确定目标数据源;
根据所述第四信息,从所述目标数据源中确定目标数据集。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
识别所述查询语句所使用的编程范式类型,确定为目标编程范式类型;
根据所述目标编程范式类型,对所述查询语句进行解析,得到第一信息和第二信息。
本申请实施例还提供了一种数据查询装置,包括:
获取单元,获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
解析单元,用于对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
第一确定单元,用于根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
第二确定单元,用于利用所述查询动作和所述目标数据集确定所述查询目标。
本申请实施例还提供了一种设备,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行本申请实施例提供的数据查询方法的任一实施方式。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本申请实施例提供的数据查询方法的任一实施方式。
与现有技术相比,本申请实施例至少具有以下优点:
本申请实施例提供的数据查询方法中,在获取到用户输入的查询语言之后,首先,对查询语句进行解析得到第一信息和第二信息。其中,第一信息包括第三信息和第四信息;第三信息表征目标数据集的数据类型,第四信息表征目标数据集在数据源中的存储标识,目标数据集为对查询目标进行查询处理所需的数据集;第二信息表征查询目标的特征标识。然后,根据第一信息确定查询动作,并根据第一信息从数据池中确定目标数据集;其中,数据池包括N个数据源;数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同。最后,利用查询动作和目标数据集确定查询目标。
可见,因用户输入的查询语句中携带有对查询目标进行查询时所需的信息(例如,目标数据集的数据类型、目标数据集的存储标识、以及查询目标的特征标识信息等多种信息),使得在从该查询语句中解析获得第一信息和第二信息之后,可以利用第一信息和第二信息直接确定在对查询目标进行查询时所使用的查询动作以及目标数据集,并利用该查询动作从目标数据集中确定该查询目标,如此实现了基于用户输入的一个查询语句实现对不同数据类型的数据集进行数据查询的目的,克服了技术人员需要针对不同数据类型的数据集输入不同的查询语言进行查询的缺陷,简化了数据查询过程,提高了数据查询效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的数据查询方法的流程图;
图2为本申请实施例提供的数据池示意图;
图3为本申请实施例提供的数据查询示意图;
图4为本申请实施例提供的一种MQL语句的语法结构示意图;
图5为本申请实施例提供的一张图谱示意图;
图6为本申请实施例提供的一种用于存储RDF数据的数据集示意图;
图7为本申请实施例提供的一种用于存储文档数据的数据源示意图;
图8为本申请实施例提供的数据查询装置的结构示意图;
图9为本申请实施例提供的设备结构示意图。
具体实施方式
发明人在对传统的数据查询研究中发现,传统的数据查询存在以下缺点:①在传统的数据查询过程中,因不同数据类型的的数据集需要采用不同的查询语言进行查询,使得技术人员需要针对不同数据类型的数据集输入不同的查询语言进行查询,如此技术人员需要了解各种类型的查询语言,从而增加了技术人员的技术门槛。②在传统的数据查询过程中,一种查询语言只适于查询一种数据类型的数据集(如,SQL只适用于对类似于表格之类的结构化数据进行查询)。然而,在很多数据查询过程中可能会涉及从多种数据类型的数据集进行数据查询,此时,技术人员需要交替使用多种不同类型的查询语言进行查询,导致查询过程复杂,从而导致查询效率较低。③在一些复杂查询场景中,不同数据集的查询任务之间往往存在依赖关系,导致单一语言满足不了复杂查询场景的需求。
为了便于解决上述技术问题,本申请实施例提供了一种数据查询方法,该方法包括:在获取到用户输入的查询语言之后,首先,对查询语句进行解析得到第一信息和第二信息。其中,第一信息包括第三信息和第四信息;第三信息表征目标数据集的数据类型,第四信息表征目标数据集在数据源中的存储标识,目标数据集为对查询目标进行查询处理所需的数据集;第二信息表征查询目标的特征标识。然后,根据第一信息确定查询动作,并根据第一信息从数据池中确定目标数据集;其中,数据池包括N个数据源;数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同。最后,利用查询动作和目标数据集确定查询目标。
可见,因用户输入的查询语句中携带有对查询目标进行查询时所需的信息(例如,目标数据集的数据类型、目标数据集的存储标识、以及查询目标的特征标识信息等多种信息),使得在从该查询语句中解析获得第一信息和第二信息之后,可以利用第一信息和第二信息直接确定在对查询目标进行查询时所使用的查询动作以及目标数据集,并利用该查询动作从目标数据集中确定该查询目标,如此实现了基于用户输入的一个查询语句实现对不同数据类型的数据集进行数据查询的目的,克服了传统的数据查询所存在的缺点,简化了数据查询过程,提高了数据查询效率。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
方法实施例
参见图1,该图为本申请实施例提供的数据查询方法的流程图。
本申请实施例提供的数据查询方法,包括S1-S5:
S1:获取用户输入的查询语句。
查询语句是指由用户输入的用于进行数据查询的指令语句;而且查询语句携带有对查询目标进行查询时所需的信息。其中,查询目标是指利用该查询语句所确定的查询结果。例如,当用户利用查询语句查询“3和2的加和”时,则查询目标就是“5”(也就是3和2的和值)。
需要说明的是,本申请实施例不限定查询目标,例如,查询目标可以包括表格中存在的数据、利用表格中数据计算得到的数据、图谱中的实体和/或关系、文档中记录的字符、利用文档中记录的字符处理得到的文本信息(例如语义信息、翻译信息、主题信息等)、流数据中存在的数据、以及从流数据中挖掘得到的数据信息中的至少一种。
还需要说明的是,本申请实施例不限定查询语句的语法结构,例如,查询语句可以采用下文语法结构实施例中提供的MQL语句的语法结构。也就是,查询语句可以是MQL语句。
另外,本申请实施例不限定查询语句携带的信息。为了便于理解和解释,下面结合情况进行说明。
在第一种情况下,查询语句携带有第一信息和第二信息。其中,第一信息表征存储有查询目标的数据源的信息(也就是,确定查询目标时所需数据的存储信息);第二信息表征查询目标的特征标识(如name、country等)。需要说明的是,本申请实施例不限定查询目标的特征标识,例如,查询目标的特征标识可以是名称标识(如name、country等属性名称)。
另外,第一信息包括第三信息和第四信息,第三信息表征目标数据集的数据类型(如Table),第四信息表征目标数据集在数据源中的存储标识(如web_data.Websites),且目标数据集为对查询目标进行查询处理所需的数据集。其中,数据源包括至少一个数据集,尤其包括多个数据类型相同的数据集,而且,存储在不同数据源中的数据集的数据类型不同。另外,多个数据源构成了数据池,使得数据池包括N个数据源,且N为正整数。例如,如图2所示的数据池包括第一数据源和第二数据源。第一数据源可以包括图3所示的关系型数据库(如SQL),且该第一数据源用于存储结构化数据。第二数据源可以包括图3所示的图谱数据库和/或分布式文件系统(Hadoop Distributed File System,HDFS),而且第二数据源用于存储非结构化数据。
需要说明的是,本申请实施例不限定数据集的数据类型,例如,数据集的数据类型可以是结构化数据(如表格数据)和非结构化数据(如图谱数据、流数据、资源描述框架(Resource Description Framework,RDF)数据、文档数据)。
基于上述第一种情况可知,查询语句可以携带有目标数据集的数据类型、目标数据集在数据源中的存储标识、以及查询目标的特征标识,以便后续能够基于查询语句携带的上述信息对查询目标进行查询。
在第二种情况下,查询语句除了携带有第一信息和第二信息以外,查询语句还携带有数据操作信息。其中,数据操作信息是指在对查询目标进行查询时所需使用的部分或全部数据操作的相关信息。需要说明的是,本申请实施例不限定数据操作信息的内容,在一种可能的实施方式中,数据操作信息包括数据操作和/或数据操作的约束条件。例如,数据操作信息可以为“查询person.name=‘Tom Hanks’”。其中,“查询”为数据操作,“person.name=‘Tom Hanks’”为数据操作的约束条件。
在第三种情况下,查询语句除了携带有上述部分或全部信息以外,查询语句还携带有第五信息。其中,第五信息为查询目标在目标数据集中具有的属性描述信息。例如,当目标数据集是图谱,且查询目标为该图谱中的实体时,则第五信息为实体描述信息。
基于上述内容可知,本申请实施例中,当用户(尤其是技术人员)需要从数据池中确定查询目标时,用户可以输入携带有对查询目标进行查询时所需的信息的查询语句,以使后续能够基于该查询语句,从数据池中进行数据查询处理确定出查询目标。
S2:对查询语句进行解析,得到第一信息和第二信息。
本申请实施例不限定解析过程,该解析过程可以是任一种从查询语句中提取出该查询语句中携带的对查询目标进行查询时所需的信息。例如,查询语句的解析过程具体可以为:先通过对查询语句进行语法和词法解析生成语法树,再从该语法树中识别出前缀声明部分、关键词(SELECT、FROM和WHERE),表达式,数据源和查询目标。
在一些情况下,可以根据查询语句携带的信息来对查询语句进行解析,基于此本申请实施例还提供了S2的一些可能的实施方式,下面依次进行介绍。
在第一种可能的实施方式中,若查询语句携带有第一信息和第二信息,则S2具体为:对查询语句进行解析,得到第一信息和第二信息。也就是,在查询语句携带有第一信息和第二信息时,可以只从该查询语句中解析出第一信息和第二信息。
在第二种可能的实施方式中,若查询语句携带有第一信息、第二信息和数据操作信息,则S2具体为:对查询语句进行解析,得到第一信息、第二信息和数据操作信息。也就是,在查询语句携带有第一信息、第二信息和数据操作信息时,可以只从该查询语句中解析出第一信息、第二信息和数据操作信息。
在第三种可能的实施方式中,若查询语句携带有第一信息、第二信息和第五信息,则S2具体为:对查询语句进行解析,得到第一信息、第二信息和第五信息。也就是,在查询语句携带有第一信息、第二信息和第五信息时,可以只从该查询语句中解析出第一信息、第二信息和第五信息。
在第四种可能的实施方式中,若查询语句携带有第一信息、第二信息、数据操作信息和第五信息,则S2具体为:对查询语句进行解析,得到第一信息、第二信息、数据操作信息和第五信息。也就是,在查询语句携带有第一信息、第二信息、数据操作信息和第五信息时,可以只从该查询语句中解析出第一信息、第二信息、数据操作信息和第五信息。
基于上述S2的四种可能的实施方式可知,在本申请实施例中,可以根据查询语句携带有的有用信息(也就是,对查询目标进行查询时所需的信息)进行相应地解析,以获得对查询目标进行查询时所使用的各种信息。
另外,本申请实施例不限定查询语言的所支持的编程范式类型,如面向对象编程范式、函数式编程范式和类SQL编程范式。其中,面向对象编程范式是指把需要查询的值视为对象,对象的数据类型和行为由类来定义,类内包含对应的数据操作方法和必要属性,在应用时通过调用类中的方法来实现数据的查询和处理。函数式编程范式是指将运算或查询过程以表达式的形式写在函数当中,函数值为表达式实例化后返回的结果,可以独立表达,也可以嵌套在高阶函数中表达。类SQL编程范式是指输入类SQL查询语句,包含数据源,关键词和查询主体,在语句中可以调用现有函数实现简单运算,也可以自定义方法实现稍复杂的数据处理。类SQL编程对结构化数据的查询更为友好。
因使用不同类型的编程范式撰写的查询语句具有不同的特点,使得使用不同类型的编程范式撰写的查询语句应使用不同的解析方法,故在获取到查询语句之后,可以先确定查询语句所使用的编程范式类型,再基于该确定编程范式类型来对查询语句进行解析。基于此,本申请实施例还提供了S2的另一种实施方式,在该实施方式中,S2具体可以为:识别查询语句所使用的编程范式类型,确定为目标编程范式类型;根据目标编程范式类型,对查询语句进行解析,得到第一信息和第二信息。
本申请实施例中,在获取到用户输入的查询语句之后,先根据该查询语句所具有的语句结构特征来识别该查询语句所使用的编程范式类型,作为目标编程范式类型;再利用目标编程范式类型对查询语句进行解析,得到第一信息、第二信息、数据操作信息和第五信息中的至少两种信息。如此使得当用户可以根据个人习惯或业务需求采用至少一种编程范式撰写查询语句时,能够按照用户所使用的编程范式类型对相应的查询语句进行解析,提高查询语句的解析准确性。可见,用户(尤其是技术人员)只要懂得一种类型的编程范式即可实现结构化数据以及非结构化数据的查询过程,如此能够有效地降低技术人员的技术门槛。
基于上述S2的相关内容可知,本申请实施例中,在获取到用户输入的查询语句之后,可以对查询语句进行解析,得到对查询目标进行查询时所需的各种信息。
S3:根据第三信息确定查询动作。
查询动作是指从数据池中对查询目标进行查询时所使用的数据操作。另外,本申请实施例不限定查询动作,例如,若查询目标与表格中数据相关(如查询目标为表格中存在的数据或利用表格中数据计算得到的数据),则查询动作可以包括表格查询处理动作;若查询目标与图谱中数据相关(如图谱中的实体和/或关系),则查询动作可以包括图谱查询处理动作;若查询目标与文档中数据相关(如文档中记录的字符、或者利用文档中记录的字符处理得到的文本信息),则查询动作可以包括文档查询处理动作;若查询目标与流数据中数据相关(如流数据中存在的数据、或从流数据中挖掘得到的数据信息),则查询动作可以包括流数据查询处理动作。
本申请实施例不限定查询动作,例如,查询动作可以包括至少一个计算函数,且该至少一个计算函数可以包括常规计算函数集中的计算函数和/或预设函数数据库中的计算函数。其中,常规计算函数用于提供算术运算符和逻辑运算符以支持简单的逻辑运算和数学运算,同时支持字典、列表、集合的推导式以及迭代表达。预设函数数据库可以为标准库和/或第三方库,而且预设函数数据库用于提供数学函数支持负责复杂运算,在编程过程中可以调用标准库实现数据库接入、文本处理、图像处理、XML处理等功能,或者使用第三方库中的函数完成科学计算,如矩阵计算、线性代数、数据建模、数据可视化等功能。
查询动作可以根据目标数据集(也就是,对所述查询目标进行查询处理所需的数据集)的数据类型确定。
另外,本申请实施例不限定查询动作的确定方式,下面将结合S3的多种实施方式进行说明。
在第一种可能的实施方式中,S3具体可以为:根据第三信息和第一映射关系确定查询动作。其中,第一映射关系用于记录不同数据类型的数据集的查询动作。
基于上述第一种可能的实施方式中,若预先利用第一映射关系记录了不同数据类型的数据集的查询动作,则在从查询语句中解析出第三信息(也就是,对所述查询目标进行查询处理所需的数据集的数据类型)之后,可以从第一映射关系中确定出对应于第三信息的查询动作。
在第二种可能的实施方式中,当查询语句携带有第三信息和数据操作信息时,S3具体可以为:根据第三信息和数据操作信息生成查询动作。
本申请实施例不限定基于第三信息和数据操作信息生成查询动作的具体实施方式。在一种可能的实施方式中,S3具体可以为:先根据第三信息和第二映射关系确定初始动作;再根据初始动作和数据操作信息生成查询动作。其中,第二映射关系用于记录不同数据类型的数据集的查询动作。
基于上述S3的第二种可能的实施方式的相关内容可知,当查询语句携带有第三信息和数据操作信息时,可以基于第三信息和数据操作信息生成查询动作,使得确定出的查询动作符合查询语句中携带的目标数据集的数据类型以及数据操作信息所规定的查询需求。
在第三种可能的实施方式中,当查询语句携带有第三信息和第五信息时,S3具体可以为:根据第三信息和第五信息生成查询动作。
基于上述S3的第三种可能的实施方式的相关内容可知,当查询语句携带有第三信息和第五信息时,可以基于第三信息和第五信息生成查询动作,使得确定出的符合查询语句中携带的目标数据集的数据类型以及第五信息所规定的查询需求。
在第四种可能的实施方式中,S3具体可以为:根据第三信息确定至少一组候选动作;将至少一组候选动作中满足预设条件的一组候选动作确定为查询动作。其中,预设条件预先设定,而且本申请实施例不限定预设条件,例如预设条件可以为选择耗时最短的一组动作。
基于上述S3的第四种可能的实施方式的相关内容可知,在根据第三信息确定出多组候选动作之后,可以利用预设条件,从该多组候选动作中挑选出满足该预设条件的一组候选动作,作为查询动作,以使最后确定出的查询动作更优。
基于上述S3的相关内容可知,本申请实施例中,在从查询语句中提取出第三信息之后,可以利用第三信息来确定查询动作,以便后续能够基于该查询动作在数据池中进行查询目标的查询。
S4:根据第一信息从数据池中确定目标数据集。
本申请实施例中,在获取到第一信息之后,可以根据第一信息从数据池中确定目标数据集,其具体可以为:根据第三信息从数据池中确定目标数据源;根据第四信息从目标数据源中确定目标数据集。可见,本申请实施例中,在从查询语句中解析到第一信息之后,可以先根据第一信息中记录的目标数据集的数据类型(也就是第三信息),将数据池中对应于该数据类型的数据源确定为目标数据源;再根据第一信息中记录的目标数据集在数据源中的存储标识,将目标数据源中对应于该存储标识的数据集确定为目标数据集。
需要说明的是,本申请实施例不限定目标数据集,例如,目标数据集可以包括表格、图谱、流数据和文档中的至少一个。
需要说明的是,本申请实施例不限定S3和S4的执行顺序。例如,可以依次执行S3和S4,可以依次执行S4和S3,还可以同时执行S3和S4。
S5:利用查询动作和目标数据集确定查询目标。
本申请实施例中,在获取到查询动作以及目标数据集之后,可以利用查询动作从目标数据集中进行数据查询,确定查询目标。
基于上述S1至S5的相关内容可知,在本申请实施例提供的数据查询方法中,在获取到用户输入的查询语言之后,首先,对查询语句进行解析得到第一信息和第二信息。其中,第一信息为存储有查询目标的数据源信息;第一信息包括第三信息和第四信息;第三信息表征目标数据集的数据类型,第四信息表征目标数据集在数据源中的存储标识,目标数据集为用于对查询目标进行查询处理所需的数据集;第二信息表征查询目标的特征标识。然后,根据第一信息确定查询动作,并根据第一信息从数据池中确定目标数据集;其中,数据池包括N个数据源;数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同。最后,利用查询动作和目标数据集确定查询目标。
可见,因用户输入的查询语句中携带有对查询目标进行查询时所需的信息(例如,目标数据集的数据类型、目标数据集的存储标识、以及查询目标的特征标识信息等多种信息),使得在从该查询语句中解析获得第一信息和第二信息之后,可以利用第一信息和第二信息直接确定在对查询目标进行查询时所使用的查询动作以及目标数据集,并利用该查询动作从目标数据集中确定该查询目标,如此实现了基于用户输入的一个查询语句实现对不同数据类型的数据集进行数据查询(如图3所示)的目的,克服了传统的数据查询所存在的缺点,简化了数据查询过程,提高了数据查询效率。
另外,本申请实施例还提供了一种能够应用于上述数据查询方法的多模式查询语言(Multimodal Query Language,MQL)语句(也就是上文中的查询语句),下面结合语法结 构实施例对MQL语句进行说明。
语法结构实施例
基于上述内容可知,本申请实施例提供的MQL语句可以支持多种类型的编程范式,故本申请实施例不限定MQL语句所支持的编程范式类型。为了便于解释MQL的语法结构,下面将以使用类似于SQL语法结构的MQL语句为例进行说明。
参见图4,该图为本申请实施例提供的一种MQL语句的语法结构示意图。
在一种可能的实施方式,如图4所示,本申请实施例提供的MQL语句可以是多模式融合型查询语句,而且MQL语句的语法结构和SQL语句的语法结构类似,对大小写不敏感,可以支持用户的更新、查询和命令操作,既包含丰富的函数包和MLlib,也包含用户自定义参数、文件和函数。
另外,如图4所示,MQL语句包括前缀声明部分、查询目标信息部分、数据集存储信息部分以及数据操作信息部分。为了便于理解MQL语句下面结合表1对上述部分分别进行介绍。
前缀声明部分包括类型声明和属性声明;其中,类型声明用于声明MQL语句携带的目标数据集的数据类型。属性声明用于声明MQL语句携带的查询目标在目标数据集中具有的属性描述信息(如,属性声明可以为图谱中的实体和/或关系)。基于此可知,当用户输入的查询语句为MQL语句时,则可以从该查询语句的前缀声明部分解析出上文的第三信息和上文的第五信息。
查询目标信息部分用于点明MQL语句携带的查询目标的特征标识信息(如表格中的属性标识、图谱中的实体标识、图谱中的关系标识等)。基于此可知,当用户输入的查询语句为MQL语句时,则可以从该查询语句的查询目标信息部分解析出上文的第二信息。
数据集存储信息部分用于点明MQL语句携带的目标数据集在数据源中的存储标识信息。基于此可知,当用户输入的查询语句为MQL语句时,则可以从该查询语句的数据集存储信息部分解析出上文的第四信息。
数据操作信息部分用于点明MQL语句携带的数据操作相关信息,且数据操作信息部分包括数据操作标识信息和数据操作约束信息。其中,数据操作标识信息用于唯一标识数据操作。数据操作约束信息是指数据操作应该遵守的约束条件信息。基于此可知,当用户输入的查询语句为MQL语句时,则可以从该查询语句的数据操作信息部分解析出上文的数据操作信息。
需要说明的是,前缀声明部分中的属性声明是一个可选的参数,也就是,在一些MQL语句中可以没有属性声明,在另一些MQL语句中可以具有属性声明。同理,数据操作信息部分是一个可选的部分,也就是,在一些MQL语句中可以没有数据操作信息部分,在另一些MQL语句中可以具有数据操作信息部分。
表1
另外,为了便于理解图4所示的MQL语句的语法结构,下面结合不同数据类型的数据集的查询语法为例进行说明。
(1)针对结构化数据(如表数据)的MQL语句介绍。
结构化数据的数据特点为:用于存储结构化数据的数据库(也就是上文的关系型数据库)可以包含多个表,而且每张表是二维形式的数据结构,以行为单位,一行数据表示一个实体信息。
针对结构化数据的MQL语句的查询范式的结构为:在查询语句中预定义数据类型table;查询语句中database代表数据库名,tablename代表表名,select_list为查询目标,expressions为可能的限制条件(也就是,数据操作信息)。也就是,针对结构化数据的MQL语句的语法结构具体如下:
#数据类型声明
PREFIX table
#查询语句
SELECT<select_list>FROM<database.tablename>WHERE<expressions>。
下面结合具体示例解释上述针对结构化数据的MQL语句的语法结构。
例如,当从web_data数据库(也就是,数据池中的一个数据源)的Websites表中选取name和country列,并查询结果存储至一个结果表中时,则用户可以输入以下查询语句:
PREFIX table
SELECT name,country FROM web_data.Websites。
(2)针对非结构化数据(如图谱数据、流数据、RDF数据、文档数据或混合型数据)的MQL语句介绍。
①图谱数据查询
图谱数据的数据特点为:用于存储图谱数据的数据库(也就是上文的图谱数据库)中只有一张图,每张图由节点和边组成。其中,节点包含实体的变量、属性和标签,边表示关系类型和关系属性和方向。
针对图谱数据的MQL语句的查询范式的结构为:在查询语句中预定义数据类型graph,再定义实体和关系属性的限制声明作为数据的补充定义,用于FROM语句中。也就是,针对图谱数据的MQL语句的语法结构具体如下:
#数据类型声明
PREFIX graph
#属性声明
[PREFIX entity:<expression>
PREFIX relation:<expression>]
#查询语句
SELECT<select_list>[FROM entity|relation]WHERE<expressions>。
下面结合具体示例解释上述针对图谱数据的MQL语句的语法结构。
例如,当数据池中存在包括图5所示图谱的数据源时,则可以在该数据池中查询图5中的实体(也就是图谱中的节点)以及实体间关系(也就是图谱中的边),其查询内容具体如下:
作为图谱中节点查询的示例,当从图5所示的图谱中查找和movie标签有关系,且id为1的节点时,则用户可以在查询语句中声明数据类型,声明节点满足的关系,以及在where子句中调用ID函数来实现,故用户可以输入以下查询语句:
PREFIX graph
PREFIX relation:{(n)—(movie)}
SELECT n FROM relation WHERE id(n)=1。
作为图谱中关系查询的示例,当从图5所示的图谱中找到Tom Hanks和电影之间的关系时,则用户可以输入以下查询语句:
PREFIX graph
PREFIX relation:{(person)—[r]->(movie)}
SELECT r,type(r)FROM relation WHERE person.name=’Tom Hanks’andmovie.name=’Forrest Gump’。
②流数据查询
流数据的数据特点类似于关系型数据,而且流数据是指滚动时间窗口内的实时数据,能够返回数据流在某一时刻的计算结果。另外,流数据的数据源可以是流数据或其他类型数据。
针对流数据的MQL语句的查询范式的结构为:在查询语句中预定义数据类型stream,再定义配置属性。另外,在流数据中进行数据查询时,SELECT语句不能单独使用,只能和Insert语句一起使用。也就是,针对流数据的MQL语句的语法结构具体如下:
#数据类型声明
PREFIX stream
#属性声明
PREFIX properties:<expression>
#查询语句
INSERT INTO STREAM streamname(select_list definition)properties
SELECT<select_list>FROM stream|datasource WHERE<expressions>。
下面结合具体示例解释上述针对流数据的MQL语句的语法结构。
例如,当把关系型数据表context_tb中数据导入到未定义流中时,则用户可以输入以下查询语句:
PREFIX stream
PREFIXproperties:(topic=’mqlout’,zookeepers=’127.0.0.1:2181’,brokers=’127.0.0.1:9092’)
INSERT INTO STREAM s1(context String,user_id String)propertites
SELECT context,user_id FROM context_tb。
③RDF数据查询
RDF数据的数据特点为:RDF辅助于动态网页的查询,以图数据形式存放,数据包含主谓宾三元组,主语结点、谓语结点和宾语结点依次相连,查询过程中将查询对象在多个rdf之间关联。
针对RDF数据的MQL语句的查询范式的结构为:在查询语句中预定义数据类型rdf,以及与查询相关的RDF数据。另外,如有必要,还可以定义需要查询的三元组。也就是,针对RDF数据的MQL语句的语法结构具体如下:
#数据类型声明
PREFIX rdf
#属性声明
PREFIX url_name:<url>
[PREFIX tri:<expression>]
#查询语句
SELECT<select_list>FROM url_name WHERE<expression>。
下面结合具体示例解释上述针对RDF数据的MQL语句的语法结构。
例如,假设在数据池中用于存储RDF数据的数据源中存在图6所示的数据集,而且图6所示的数据集用于描述公寓及其位置的RDF数据。基于该假设可知,当需要在图6所示的数据集中查找房间数小于4的公寓时,用户可以输入以下查询语句:
PREFIX rdf
PREFIX swp:<http://www.semanticwebprimer.org/ontology/apartments.ttl#>
PREFIX dbpedia:<http://www.dbpedia.org/resource/>
PREFIX dbpedia-owl:<http://dbpedia.org/ontology/>
PREFIX tri:{(appartment)-[swp:hasNumberOfBedrooms]-(num)}
SELECT apartment FROM tri
WHERE num<4。
④文档数据查询
文档数据的数据特点为:文档数据以json形式保存,多个文档数据组成集合存放于数据库(也就是上文的HDFS)中。可见,作为文档集合的数据库类似于关系型数据库中的一张表,每篇文档类似于关系型数据库中的一行数据。
针对文档数据的MQL语句的查询范式的结构为:在查询语句中预定义数据类型doc;docset为文档集合(也就是用于存储文档数据的数据源)的存储标识,且docset相当于关系型数据中的表名,其余查询过程与关系型数据类似。也就是,针对文档数据的MQL语句的语法结构具体如下:
#数据类型声明
PREFIX doc
#查询语句
SELECT<select_list>FROM database.docset WHERE<expression>。
下面结合具体示例解释上述针对文档数据的MQL语句的语法结构。
例如,假设数据池中存在图7所示的用于存储文档数据的数据源,且图7所示的用于存储文档数据的数据源在数据池中的存储标识为doc_set,且在图7所示的用于存储文档数据的数据源中存储有两篇文档。基于该假设可知,当需要在图7所示的用于存储文档数据的数据源中查询score小于的5.0情况,则用户可以输入以下查询语句:
PREFIX doc
SELECT score FROM doc_set
WHERE score<5.0。
⑤混合型数据查询
混合型数据的数据特点为:查询目标为不同数据源的多个字段,最终以类关系型数据的格式存储。
针对混合型数据的MQL语句的查询范式的结构为:在查询语句中声明定义对查询目标进行查询过程中所需数据集所属的所有数据类型,以及必要的属性声明;而且查询语句中每个字段定义为数据类型.[数据库].[表]的格式。也就是,针对混合型数据的MQL语句的语法结构具体如下:
PREFIX datatypeA
PREFIX datatypeB
[PREFIX……]
SELECT datatypeA.fieldA,datatypeB.fieldB FROM
datatypeA.database.table,datatypeB.database.table
WHERE<expression>。
下面结合具体示例解释上述针对混合型数据的MQL语句的语法结构。
例如,假设数据池中包括一个图谱数据库和一个文档数据库(也就是上文的HDFS),其中,该图谱数据库包括一张用于记录电影和人物的关系的图谱,而且该文档数据库存储有多个记录有电影评分的文档数据。基于该假设可知,当需要查询Tom Hanks出演的电影的评分时,用户可以输入以下查询语句:
PREFIX doc
PREFIX graph
PREFIX relation:{(person)—[r]->(movie)}
SELECT doc.doc_set.score,graph.relation.r FROM doc.doc_set,graph.relation
WHERE doc.doc_set.name=graph.relation.movie and graph.person.name=’Tom Hanks’。
基于上述MQL语句的相关内容可知,本申请实施例提供的MQL语句打通语言壁垒,实现了使用一种查询语言对各种数据类型的数据集进行数据查询的功能,以使用户能够使用MQL语句高效准确地查询到数据池中的各种数据。
基于上述方法实施例提供的数据查询方法,本申请实施例还提供了一种数据查询装置,下面结合附图进行解释和说明。
装置实施例
装置实施例提供的数据查询装置的技术详情,请参照上述方法实施例。
参见图8,该图为本申请实施例提供的数据查询装置的结构示意图。
本申请实施例提供的数据查询装置800,包括:
获取单元801,获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
解析单元802,用于对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
第一确定单元803,用于根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
第二确定单元804,用于利用所述查询动作和所述目标数据集确定所述查询目标。
在一种可能的实施方式中,第一确定单元803,包括:
第一确定子单元,用于根据所述第三信息和第一映射关系,确定所述查询动作;其中,所述第一映射关系用于记录不同数据类型的数据集的查询动作。
在一种可能的实施方式中,所述解析单元802,具体用于对所述查询语句进行解析,得到第一信息、第二信息和数据操作信息;
所述第一确定子单元,具体用于根据所述第三信息和所述数据操作信息生成查询动作。
在一种可能的实施方式中,所述第一确定子单元,具体用于:根据所述第三信息和第二映射关系,确定初始动作;其中,所述第二映射关系用于记录不同数据类型的数据集的查询动作;根据所述初始动作和所述数据操作信息,生成查询动作。
在一种可能的实施方式中,所述解析单元802,具体用于对所述查询语句进行解析,得到第一信息、第二信息和第五信息;其中,所述第五信息为所述查询目标在所述目标数据集中具有的属性描述信息;
所述第一确定子单元,具体用于根据所述第三信息和所述第五信息生成查询动作。
在一种可能的实施方式中,第一确定单元803,包括:
第二确定子单元,用于根据所述第三信息,从所述数据池中确定目标数据源;根据所述第四信息,从所述目标数据源中确定目标数据集。
在一种可能的实施方式中,所述解析单元802,具体用于识别所述查询语句所使用的编程范式类型,确定为目标编程范式类型;根据所述目标编程范式类型,对所述查询语句进行解析,得到第一信息和第二信息。
基于上述提供的数据查询装置800的相关内容可知,在本申请实施例中,在获取到用户输入的查询语言之后,首先,对查询语句进行解析得到第一信息和第二信息。其中,第一信息为存储有查询目标的数据源信息;第一信息包括第三信息和第四信息;第三信息表征目标数据集的数据类型,第四信息表征目标数据集在数据源中的存储标识,目标数据集为用于对查询目标进行查询处理所需的数据集;第二信息表征查询目标的特征标识。然后,根据第一信息确定查询动作,并根据第一信息从数据池中确定目标数据集;其中,数据池包括N个数据源;数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同。最后,利用查询动作和目标数据集确定查询目标。
可见,因用户输入的查询语句中携带有对查询目标进行查询时所需的信息(例如,目标数据集的数据类型、目标数据集的存储标识、以及查询目标的特征标识信息等多种信息),使得在从该查询语句中解析获得第一信息和第二信息之后,可以利用第一信息和第二信息直接确定在对查询目标进行查询时所使用的查询动作以及目标数据集,并利用该查询动作从目标数据集中确定该查询目标,如此实现了基于用户输入的一个查询语句实现对不同数据类型的数据集进行数据查询的目的,克服了技术人员需要针对不同数据类型的数据集输入不同的查询语言进行查询的缺陷,简化了数据查询过程,提高了数据查询效率。
基于上述方法实施例提供的数据查询方法,本申请实施例还提供了一种设备,下面结合附图进行解释和说明。
设备实施例
设备实施例提供的设备技术详情,请参照上述方法实施例。
参见图9,该图为本申请实施例提供的设备结构示意图。
本申请实施例提供的设备900,包括:处理器901以及存储器902;
所述存储器902用于存储计算机程序;
所述处理器901用于根据所述计算机程序执行上述方法实施例提供的数据查询方法的任一实施方式。也就是说,处理器901用于执行以下步骤:
获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
利用所述查询动作和所述目标数据集确定所述查询目标。
可选的,所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和第一映射关系,确定所述查询动作;其中,所述第一映射关系用于记录不同数据类型的数据集的查询动作。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和数据操作信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述数据操作信息生成查询动作。
可选的,所述根据所述第三信息和所述数据操作信息生成查询动作,具体为:
根据所述第三信息和第二映射关系,确定初始动作;其中,所述第二映射关系用于记录不同数据类型的数据集的查询动作;
根据所述初始动作和所述数据操作信息,生成查询动作。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和第五信息;其中,所述第五信息为所述查询目标在所述目标数据集中具有的属性描述信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述第五信息生成查询动作。
可选的,所述根据所述第一信息从数据池中确定所述目标数据集,具体为:
根据所述第三信息,从所述数据池中确定目标数据源;
根据所述第四信息,从所述目标数据源中确定目标数据集。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
识别所述查询语句所使用的编程范式类型,确定为目标编程范式类型;
根据所述目标编程范式类型,对所述查询语句进行解析,得到第一信息和第二信息。
以上为本申请实施例提供的设备900的相关内容。
基于上述方法实施例提供的数据查询方法,本申请实施例还提供了一种计算机可读存储介质。
介质实施例
介质实施例提供的计算机可读存储介质的技术详情,请参照方法实施例。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方法实施例提供的数据查询方法的任一实施方式。也就是说,该计算机程序用于执行以下步骤:
获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
利用所述查询动作和所述目标数据集确定所述查询目标。
可选的,所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和第一映射关系,确定所述查询动作;其中,所述第一映射关系用于记录不同数据类型的数据集的查询动作。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和数据操作信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述数据操作信息生成查询动作。
可选的,所述根据所述第三信息和所述数据操作信息生成查询动作,具体为:
根据所述第三信息和第二映射关系,确定初始动作;其中,所述第二映射关系用于记录不同数据类型的数据集的查询动作;
根据所述初始动作和所述数据操作信息,生成查询动作。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和第五信息;其中,所述第五信息为所述查询目标在所述目标数据集中具有的属性描述信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述第五信息生成查询动作。
可选的,所述根据所述第一信息从数据池中确定所述目标数据集,具体为:
根据所述第三信息,从所述数据池中确定目标数据源;
根据所述第四信息,从所述目标数据源中确定目标数据集。
可选的,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
识别所述查询语句所使用的编程范式类型,确定为目标编程范式类型;
根据所述目标编程范式类型,对所述查询语句进行解析,得到第一信息和第二信息。
以上为本申请实施例提供的计算机可读存储介质的相关内容。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
利用所述查询动作和所述目标数据集确定所述查询目标。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和第一映射关系,确定所述查询动作;其中,所述第一映射关系用于记录不同数据类型的数据集对应的查询动作。
3.根据权利要求1所述的方法,其特征在于,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和数据操作信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述数据操作信息生成查询动作。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第三信息和所述数据操作信息生成查询动作,具体为:
根据所述第三信息和第二映射关系,确定初始动作;其中,所述第二映射关系用于记录不同数据类型的数据集对应的查询动作;
根据所述初始动作和所述数据操作信息,生成查询动作。
5.根据权利要求1所述的方法,其特征在于,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
对所述查询语句进行解析,得到第一信息、第二信息和第五信息;其中,所述第五信息为所述查询目标在所述目标数据集中具有的属性描述信息;
所述根据所述第三信息确定查询动作,具体为:
根据所述第三信息和所述第五信息生成查询动作。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一信息从数据池中确定所述目标数据集,具体为:
根据所述第三信息,从所述数据池中确定目标数据源;
根据所述第四信息,从所述目标数据源中确定目标数据集。
7.根据权利要求1所述的方法,其特征在于,所述对所述查询语句进行解析,得到第一信息和第二信息,具体为:
识别所述查询语句所使用的编程范式类型,确定为目标编程范式类型;
根据所述目标编程范式类型,对所述查询语句进行解析,得到第一信息和第二信息。
8.一种数据查询装置,其特征在于,包括:
获取单元,获取用户输入的查询语句;其中,所述查询语句携带有对查询目标进行查询时所需的信息;
解析单元,用于对所述查询语句进行解析,得到第一信息和第二信息;其中,所述第一信息包括第三信息和第四信息;所述第三信息表征目标数据集的数据类型,所述第四信息表征所述目标数据集在数据源中的存储标识,所述目标数据集为对所述查询目标进行查询处理所需的数据集;所述第二信息表征所述查询目标的特征标识;
第一确定单元,用于根据所述第三信息确定查询动作,并根据所述第一信息从数据池中确定所述目标数据集;其中,所述数据池包括N个数据源,N为正整数;所述数据源包括至少一个数据集,且存储在不同数据源中的数据集的数据类型不同;
第二确定单元,用于利用所述查询动作和所述目标数据集确定所述查询目标。
9.一种设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010397694.2A CN111475534B (zh) | 2020-05-12 | 2020-05-12 | 一种数据查询方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010397694.2A CN111475534B (zh) | 2020-05-12 | 2020-05-12 | 一种数据查询方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475534A true CN111475534A (zh) | 2020-07-31 |
CN111475534B CN111475534B (zh) | 2023-04-14 |
Family
ID=71764513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010397694.2A Active CN111475534B (zh) | 2020-05-12 | 2020-05-12 | 一种数据查询方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475534B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220710A (zh) * | 2021-05-11 | 2021-08-06 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及存储介质 |
CN114238286A (zh) * | 2022-02-28 | 2022-03-25 | 连连(杭州)信息技术有限公司 | 一种数据仓库数据处理方法、装置、电子设备及存储介质 |
CN113220710B (zh) * | 2021-05-11 | 2024-06-04 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030224A (zh) * | 2006-03-03 | 2007-09-05 | 国际商业机器公司 | 用于构建跨越异构环境的统一查询的系统和方法 |
CN102591896A (zh) * | 2011-01-05 | 2012-07-18 | 北京大用科技有限责任公司 | 非结构化数据四面体数据模型的系统、实现、应用和查询语言 |
CN102968307A (zh) * | 2012-11-29 | 2013-03-13 | 中国传媒大学 | 一种基于java的web开发中间件 |
CN103823815A (zh) * | 2012-11-19 | 2014-05-28 | 中国联合网络通信集团有限公司 | 服务器及数据库访问方法 |
CN105338026A (zh) * | 2014-07-24 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 数据资源的获取方法、装置和系统 |
US9348815B1 (en) * | 2013-06-28 | 2016-05-24 | Digital Reasoning Systems, Inc. | Systems and methods for construction, maintenance, and improvement of knowledge representations |
US20160275201A1 (en) * | 2015-03-18 | 2016-09-22 | Adp, Llc | Database structure for distributed key-value pair, document and graph models |
CN107515887A (zh) * | 2017-06-29 | 2017-12-26 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的交互式查询方法 |
CN107615277A (zh) * | 2015-03-26 | 2018-01-19 | 卡斯维尔公司 | 用于查询数据源的系统和方法 |
CN108090154A (zh) * | 2017-12-08 | 2018-05-29 | 广州市申迪计算机系统有限公司 | 一种异构多源数据融合查询方法及装置 |
CN108363746A (zh) * | 2018-01-26 | 2018-08-03 | 福建星瑞格软件有限公司 | 一种支持多源异构数据的统一sql查询系统 |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、系统和设备 |
CN110431545A (zh) * | 2017-03-31 | 2019-11-08 | 亚马逊科技公司 | 针对结构化数据和非结构化数据执行查询 |
-
2020
- 2020-05-12 CN CN202010397694.2A patent/CN111475534B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030224A (zh) * | 2006-03-03 | 2007-09-05 | 国际商业机器公司 | 用于构建跨越异构环境的统一查询的系统和方法 |
CN102591896A (zh) * | 2011-01-05 | 2012-07-18 | 北京大用科技有限责任公司 | 非结构化数据四面体数据模型的系统、实现、应用和查询语言 |
CN103823815A (zh) * | 2012-11-19 | 2014-05-28 | 中国联合网络通信集团有限公司 | 服务器及数据库访问方法 |
CN102968307A (zh) * | 2012-11-29 | 2013-03-13 | 中国传媒大学 | 一种基于java的web开发中间件 |
US9348815B1 (en) * | 2013-06-28 | 2016-05-24 | Digital Reasoning Systems, Inc. | Systems and methods for construction, maintenance, and improvement of knowledge representations |
CN105338026A (zh) * | 2014-07-24 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 数据资源的获取方法、装置和系统 |
US20160275201A1 (en) * | 2015-03-18 | 2016-09-22 | Adp, Llc | Database structure for distributed key-value pair, document and graph models |
CN107615277A (zh) * | 2015-03-26 | 2018-01-19 | 卡斯维尔公司 | 用于查询数据源的系统和方法 |
CN110431545A (zh) * | 2017-03-31 | 2019-11-08 | 亚马逊科技公司 | 针对结构化数据和非结构化数据执行查询 |
CN107515887A (zh) * | 2017-06-29 | 2017-12-26 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的交互式查询方法 |
CN108090154A (zh) * | 2017-12-08 | 2018-05-29 | 广州市申迪计算机系统有限公司 | 一种异构多源数据融合查询方法及装置 |
CN108363746A (zh) * | 2018-01-26 | 2018-08-03 | 福建星瑞格软件有限公司 | 一种支持多源异构数据的统一sql查询系统 |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、系统和设备 |
Non-Patent Citations (4)
Title |
---|
周汉民;徐汀荣;: "基于XML与Oracle9i的邮件数据库的实现" * |
曹忠升;吴宗大;王元珍;: "多媒体查询语言及其评价准则" * |
毛佳飞;叶霞;李俊山;: "异构数据集成查询处理研究" * |
陈涛;张永娟;陈恒;: "Web数据到RDF数据的框架实现" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220710A (zh) * | 2021-05-11 | 2021-08-06 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及存储介质 |
CN113220710B (zh) * | 2021-05-11 | 2024-06-04 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及存储介质 |
CN114238286A (zh) * | 2022-02-28 | 2022-03-25 | 连连(杭州)信息技术有限公司 | 一种数据仓库数据处理方法、装置、电子设备及存储介质 |
CN114238286B (zh) * | 2022-02-28 | 2022-08-05 | 连连(杭州)信息技术有限公司 | 一种数据仓库数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111475534B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169337B2 (en) | Converting data into natural language form | |
US11080295B2 (en) | Collecting, organizing, and searching knowledge about a dataset | |
CN107451153B (zh) | 输出结构化查询语句的方法和装置 | |
JP6014725B2 (ja) | 単文/複文構造の自然言語クエリに対する検索および情報提供方法並びにシステム | |
US11941034B2 (en) | Conversational database analysis | |
US11775859B2 (en) | Generating feature vectors from RDF graphs | |
US9411803B2 (en) | Responding to natural language queries | |
Prudhomme et al. | Interpretation and automatic integration of geospatial data into the Semantic Web: Towards a process of automatic geospatial data interpretation, classification and integration using semantic technologies | |
US20120183935A1 (en) | Learning device, determination device, learning method, determination method, and computer program product | |
US11698918B2 (en) | System and method for content-based data visualization using a universal knowledge graph | |
US20230205996A1 (en) | Automatic Synonyms Using Word Embedding and Word Similarity Models | |
US20140379753A1 (en) | Ambiguous queries in configuration management databases | |
US10489024B2 (en) | UI rendering based on adaptive label text infrastructure | |
Wagenpfeil et al. | Graph codes-2d projections of multimedia feature graphs for fast and effective retrieval | |
CN111475534B (zh) | 一种数据查询方法及相关设备 | |
US10460044B2 (en) | Methods and systems for translating natural language requirements to a semantic modeling language statement | |
Kilias et al. | INDREX: In-database relation extraction | |
CN110147358B (zh) | 自动问答知识库的建设方法及建设系统 | |
JP2001236352A (ja) | 半構造化文書検索方法及び装置及び半構造化文書検索プログラムを格納した記憶媒体 | |
Sorrentino et al. | Semantic annotation and publication of linked open data | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 | |
Unbehauen et al. | SPARQL Update queries over R2RML mapped data sources | |
Zheng et al. | A novel conditional knowledge graph representation and construction | |
Panicheva et al. | Evaluating Distributional Semantic Models with Russian Noun-Adjective Compositions | |
Wagenpfeil et al. | Query Construction and Result Presentation based on Graph Codes. |
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 |