CN108804473A - 数据查询的方法、装置和数据库系统 - Google Patents
数据查询的方法、装置和数据库系统 Download PDFInfo
- Publication number
- CN108804473A CN108804473A CN201710308623.9A CN201710308623A CN108804473A CN 108804473 A CN108804473 A CN 108804473A CN 201710308623 A CN201710308623 A CN 201710308623A CN 108804473 A CN108804473 A CN 108804473A
- Authority
- CN
- China
- Prior art keywords
- predicate
- combination
- training pattern
- predicates
- confidence level
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据查询的方法、装置和数据库系统,该方法包括:根据预配置的训练模型的类型,在多个谓词组合中确定出所述预配置的训练模型支持的多个候选谓词组合,所述多个候选谓词组合中的每个候选谓词组合包括至少两个谓词;在所述多个候选谓词组合中确定第一谓词组合,所述第一谓词组合包括的谓词互不相同;使用所述第一谓词组合对应的训练模型确定第一执行计划,并使用所述第一执行计划进行数据查询。本申请实施例的数据查询的方法、装置和数据库系统,能够提高谓词选择率的准准确性,从而提升了查询性能。进一步地,在至少两个第二谓词组合具有重复谓词时,能够提高谓词选择率的准确性。
Description
技术领域
本申请涉及数据库领域,并且更具体地,涉及一种数据查询的方法、装置和数据库系统。
背景技术
数据库系统在处理来自客户端的查询(Query)查询,例如,以结构化查询语言(Structured Query Language,SQL)表示的查询时,需要对该查询进行语法分析、预编译、优化等步骤,继而生成执行计划。其中,优化器是数据库系统中影响SQL语句的执行效率最重要的组件,其输出估算代价最小的执行计划(或称作最优执行计划)。优化器选择最优执行计划的过程中,谓词的选择率估算是很重要的环节。谓词选择率估算的准确性会直接影响到优化器后续对于执行计划中各算子代价估算的准确性,从而影响整体最优执行计划的输出。
传统的谓词选择性估算方法包括基于直方图、基于常见值和基于常见值频率的估计。对于多列复合谓词的选择率估算,有一些基于单一选择性的复合选择性估计算法和基于多列统计信息技术,比如,几个列结合直方图。然而,这些都是针对单个或多个谓词进行谓词选择率的计算,计算的准确性有待提高,尤其是当某个谓词同时落入多个选择率计算模型时,谓词选择率的计算准确度较低准确,从而影响最优执行计划的输出。
发明内容
本申请提供了一种数据查询的方法、装置和数据库系统,以提高谓词选择率的准确性,进而提升查询性能。
第一方面,提供了一种数据查询的方法,包括:
数据库服务器通过接收来自客户端的查询语句,对所述查询语句进行解析,以得到多个谓词;继而对所述多个谓词进行谓词组合,以得到多个谓词组合;然后根据预配置的训练模型的类型,在所述多个谓词组合中确定出所述预配置的训练模型支持的多个候选谓词组合,所述多个候选谓词组合中的每个候选谓词组合包括至少两个谓词;接着,在所述多个候选谓词组合中确定第一谓词组合,所述第一谓词组合包括的谓词互不相同;最后使用所述第一谓词组合对应的训练模型确定第一执行计划,并使用所述第一执行计划进行数据查询。
上述技术方案中,对于一个谓词组合,可以基于谓词的相关性获取谓词组合的训练模型,从而计算谓词选择率。而不需要分别计算一个谓词组合中各个谓词的谓词选择率,并将各个谓词的谓词选择率相乘。也就是说,采用训练模型计算谓词选择率的方法考虑了谓词的相关性,得到的谓词选择率会更准确,从而提高了查询性能。
在一种可能的实现方式中,若至少两个谓词组合具有相同或重复的谓词,数据库服务器可以基于训练模型的置信度选取合适的谓词组合。
在一种可能的实现方式中,所述方法还包括:
数据库服务器在所述多个候选谓词组合中确定至少两个第二谓词组合,所述至少两个第二谓词组合具有至少一个相同的谓词;根据所述指示两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度,在所述至少两个谓词组合中确定目标谓词组合,所述置信度用于指示训练模型的准确度;使用所述目标谓词组合对应的训练模型确定第二执行计划,并使用所述第二执行计划进行数据查询。
在上述技术方案中,数据库服务器通过确定具有至少一个相同的谓词的至少两个第二谓词组合,并根据每个第二谓词组合对应的训练模型的置信度,在所述至少两个第二谓词组合中确定目标谓词组合,最后使用所述目标谓词组合对应的训练模型确定第二执行计划,继而使用所述第二执行计划进行数据查询,从而在计算具有重叠谓词的谓词组合的选择率时,能够提高谓词选择率的准确性。
在一种可能的实现方式中,数据库服务器可以在多个候选谓词组合中确定至少两个第二谓词组合,其中,一个第二谓词组合中可以包括至少两个谓词,所述至少两个第二谓词组合具有至少一个相同或重复的谓词。
在一种可能的实现方式中,数据库服务器可以根据第二谓词组合对应的训练模型的置信度,选择合适的或最优的谓词组合,比如目标谓词组合。
在一种可能的实现方式中,,数据库服务器也可以按照其他筛选条件选择所述目标谓词组合。比如,数据库服务器可以设置阈值筛选条件,在所述至少两个第二谓词组合中选择满足阈值筛选条件的第二谓词组合,即目标谓词组合,以淘汰不满足阈值筛选条件的其它第二谓词组合。
在一种可能的实现方式中,所述方法还包括:
获取所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度。
可选地,数据库服务器可以从数据库的系统表中获取每个谓词组合对应的训练模型的置信度。
可选地,数据库系统中的系统表中包括每个谓词组合的训练模型的训练结果(比如权值、偏移量等模型参数)以及模型的置信度。其中,模型的置信度用于表示训练模型的准确度。
在一些可能的实现方式中,所述目标谓词组合对应的训练模型的置信度大于所述至少两个第二谓词组合中其它第二谓词组合的训练模型的置信度。
在一些可能的实现方式中,在所述多个候选谓词组合中确定的所述至少两个第二谓词组合中,每个第二谓词组合对应的训练模型的置信度均满足预设条件。
可选地,“预设条件”可以是一个具体的阈值,或者,也可以是某一个具体的筛选条件
在一些可能的实现方式中,所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度均大于第一阈值。
在一些可能的实现方式中,使用所述目标谓词组合对应的训练模型确定第二执行计划,包括:
数据库服务器获取所述目标谓词组合对应的训练模型的模型参数,所述训练模型参数包括权值、偏移量中的至少一种;使用所述模型参数生成所述第二执行计划。
第二方面,提供了一种数据查询的装置。用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块或单元。
第三方面,提供了一种数据查询的装置。该装置包括处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该指令在被处理器执行时,使处理器执行第一方面的方法。
第四方面,提供了一种数据库系统。该数据库系统包括第二方面或第三方面的数据查询的装置和数据库。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得数据查询的装置执行上述第一方面,及其各种实现方式中的任一种数据查询的方法。
附图说明
图1是应用本申请实施例的一个数据库系统示意性架构图。
图2是应用本申请实施例的单机数据库系统的示意图。
图3是应用本申请实施例的采用共享磁盘架构的集群数据库系统的示意图。
图4是应用本申请实施例的采用无共享磁盘架构的集群数据库系统的示意图。
图5是应用本申请实施例的数据库服务器的示意图。
图6是根据本申请实施例的数据查询的方法的示意性流程图。
图7是根据本申请另一实施例的数据查询的方法的示意性流程图。
图8是根据本申请实施例的多个候选谓词组合的一个例子的示意图。
图9是根据本申请实施例的一个例子的流程图。
图10是根据本申请实施例的一个具体例子的流程图。
图11是应用本申请实施例的一个例子的示意图。
图12是根据本申请实施例的数据查询的装置的示意性框图。
图13是根据本申请另一实施例的数据查询的装置的示意性框图。
图14是根据本申请实施例的数据库系统的示意性框图。
图15是本申请一个实施例提供的数据查询的装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。。
本申请实施例的技术方案可以用于数据库系统(Database System)或数据库管理系统(Database Management System,DBMS)中,比如关系型数据库管理系统。
本申请实施例所应用的数据库系统的架构如图1所示,该数据库系统包括数据库和数据库管理系统DBMS。其中,数据库是指存储在数据存储器中的有组织的数据集合,即按照一定的数据模型组织、存储和使用的相关联的数据集合,比如,数据库可以包括一个或者多个表数据。
DBMS用于建立、使用和维护数据库,以及对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户可以通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。DBMS提供多种功能,可使多个应用程序和用户设备使用不同的方法,在同一时刻或不同时刻去建立,修改和询问数据库,应用程序和用户设备可以统称为客户端。DBMS所提供的功能可以包括以下几项:(1)数据定义功能,DBMS提供数据定义语言(Data Definition Language,DDL)来定义数据库结构,DDL用于刻画数据库框架,并可以被保存在数据字典中;(2)数据存取功能,DBMS提供数据操纵语言(Data ManipulationLanguage,DML),实现对数据库数据的基本存取操作,比如检索、插入、修改和删除;(3)数据库运行管理功能,DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效;(4)数据库的建立和维护功能,包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能;(5)数据库的传输,DBMS提供处理数据的传输,实现客户端与DBMS之间的通信,通常与操作系统协调完成。
具体地,图2为单机数据库系统示意图,包括一个数据库管理系统和数据存储器,该数据库管理系统用于提供数据库的查询和修改等服务,该数据库管理系统将数据存储到数据存储器中。在单机数据库系统中,数据库管理系统和数据存储器通常位于单一服务器上,比如一台对称多处理器(Symmetric Multi-Processor,SMP)服务器。该SMP服务器包括多个处理器,所有的处理器共享资源,如总线,内存和I/O系统等。数据库管理系统的功能可由一个或多个处理器执行内存中的程序来实现。
图3为采用共享磁盘(Shared-storage)架构的集群数据库系统示意图,包括多个节点(如图3中的节点1-N),每个节点部署有数据库管理系统,分别为用户提供数据库的查询和修改等服务,多个数据库管理系统存储有共享的数据在共享数据存储器中,并且通过交换机对数据存储器中的数据执行读写操作。共享数据存储器可以为共享磁盘阵列。集群数据库系统中的节点可以为物理机,比如数据库服务器,也可以为运行在抽象硬件资源上的虚拟机。若节点为物理机,则交换机为存储区网络(Storage Area Network,SAN)交换机、以太网交换机,光纤交换机或其它物理交换设备。若节点为虚拟机,则交换机为虚拟交换机。
图4为采用无共享(Shared-nothing)架构的集群数据库系统示意图,每个节点具有各自独享的硬件资源(如数据存储器)、操作系统和数据库,节点之间通过网络来通信。该体系下,数据将根据数据库模型和应用特点被分布到各个节点上,查询任务将被分割成若干部分,在所有节点上并行执行,彼此协同计算,作为整体提供数据库服务,所有通信功能都在一个高宽带网络互联体系上实现。如同图3所描述的共享磁盘架构的集群数据库系统一样,这里的节点既可以是物理机,也可以是虚拟机。
在本申请所有实施例中,数据库系统的数据存储器包括但不限于固态硬盘(SSD)、磁盘阵列或其他类型的非瞬态计算机可读介质。图2至图4中虽未示出数据库,应理解,数据库存储在数据存储器中。所属领域的技术人员可以理解一个数据库系统可能包括比图2至图4中所示的部件更少或更多的组件,或者包括与图2至图4中所示组件不同的组件,图2至图4仅仅示出了与本申请实施例所公开的实现方式更加相关的组件。例如,虽然图3和至图4中已经描述了4个节点,但所属领域的技术人员可理解成一个集群数据库系统可包含任何数量的节点。各节点的数据库管理系统功能可分别由运行在各节点上的软件、硬件和/或固件的适当组合来实现。
本领域技术人员根据本申请实施例的教导可以很清楚地理解,本申请实施例的方法可典型地应用于数据库管理系统,该数据库管理系统安装或者部署在单机数据库系统、Shared-nothing架构的集群数据库系统、Shared-storage架构的集群数据库系统,或其它类型的数据库系统中。
为了便于理解和描述,作为示例而非限定,下面以数据库服务器为例说明本申请实施例的方案。该数据库服务器具体可以为图2所述的单机数据库系统中的SMP服务器,或者图3或图4中所述的一个节点。具体的,如图5所示,数据库服务器100,包括:至少一个处理器104、存储可执行代码的非瞬态计算机可读介质(non-transitory computer-readablemedium)106和数据库管理系统108。所述可执行代码在被至少一个处理器104执行时被配置为实现数据库管理系统108的组件和功能。非瞬态计算机可读介质106可以包括一个或多个非易失性存储器,作为示例,非易失性存储器包括半导体存储器设备,例如可擦可编程只读存储器(Erasable Programmable Read Only Memory,EPROM),电可擦只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)和闪存(flashmemory);磁盘,例如内部硬盘(internal hard disk)或可移动磁盘(removable disk),磁光盘(magneto optical disk),以及CD ROM和DVD-ROM。此外,非瞬态计算机可读介质106还可以包括被配置为主存储器(main memory)的任何设备。至少一个处理器104可以包括任何类型的通用计算电路或专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。至少一个处理器104也可以是耦合到一个或多个半导体基板的一个或多个处理器,例如CPU。
数据库管理系统108可以是关系型数据库管理系统(Relational DatabaseManagement System,RDBMS)。数据库管理系统108支持结构化查询语言(Structured QueryLanguage,SQL)。通常,SQL是指专门用于管理关系型数据库中保存的数据的专用编程语言。SQL可以指代各种类型的数据相关语言,包括例如数据定义语言和数据操纵语言,其中SQL的范围可以包括数据插入,查询,更新和删除,模式创建和修改以及数据访问控制。此外,在一些示例中,SQL可以包括与各种语言元素相关的描述,包括子句(clause),表达式(expression),谓词(predicate),查询(query)和语句(statement)。其中,表达式可以被配置为产生包括数据列和/或行的标量值(scalar value)和/或表。谓词(Predicate,简称PRED)是计算结果为逻辑值(比如TRUE、FALSE、UNKNOWN)的逻辑表达式,可以用于描述对象之间的连接关系。比如,在SELECT查询语句中,在WHERE子句和HAVING子句中的过滤条件可以理解为指定谓词。
查询(query)是请求查看,访问和/或操纵存储在数据库中的数据。例如,数据库管理系统108可以从数据库客户端102接收SQL格式的查询(称为SQL查询)。通常,数据库管理系统108通过通信接口,比如应用程序接口(API)或者以太网接口等网络接口接收客户端的查询,从数据库访问相关数据并操纵相关数据以生成查询所对应的查询结果,并将查询结果通过上述通信接口返回到数据库客户端102。数据库是按一定的数学模型组织、描述和存储的数据集合,数据库可以包括一个或多个数据库结构或格式,例如行存储和列存储。数据库通常存储于数据存储器中,比如图5中的外部数据存储器120,或者非瞬态计算机可读介质106。当数据库存储于非瞬态计算机可读介质106时,数据库管理系统108为内存数据库管理系统。
数据库客户端102可以包括被配置成与数据库管理系统108交互的任何类型的设备或应用程序。在一些示例中,数据库客户端102包括一个或多个应用服务器。
数据库管理系统108包括解析器112、查询优化器114、查询执行器122和存储引擎134。解析器110用于执行对客户端102提交的查询(Query)的语法、语义分析,将查询中的视图展开、划分为小的查询块。查询优化器114为查询生成一组可能被使用的执行计划,估算出每个执行计划的代价,比较计划的代价,最终选择一个最优的执行计划。查询执行器122依照查询的执行计划进行操作,以产生查询结果。存储引擎134负责管理表的数据、索引的实际内容,同时也会管理运行时的Cache、Buffer、事务、Log等数据。例如存储引擎134可以将执行引擎122的执行结果通过物理I/O写入数据存储器120。
查询优化器114选择最优执行计划过程中,谓词选择性(Predicate Selectivity)的计算是非常重要的一个环节。谓词选择率的准确性会直接影响到执行计划的准确性,比如可能会影响到执行计划中各个算子代价估算的准确性,从而影响到最优执行计划的输出。
基于以上描述的数据库服务器100本申请实施例针对具有重复谓词的谓词组合,提出了一种数据查询的方法,以提高谓词选择率的准确性,进而提升查询性能。
图6示出了根据本申请实施例的数据查询的方法600的示意性流程图,参照图5,该方法包括:
S610,数据库管理系统108接收客户端通过与数据库服务器建立的通信连接提交的查询语句;
S620,数据库管理系统108的解析器112对所述查询语句进行解析,以得到多个谓词;
S630,查询优化器114对所述多个谓词进行谓词组合,以得到多个谓词组合;
S640,查询优化器114根据预配置的训练模型的类型,在所述多个谓词组合中确定出所述预配置的训练模型对应的多个候选谓词组合,所述多个候选谓词组合中的每个候选谓词组合包括至少两个谓词;
可选地,查询优化器114可以根据训练模型种类挑选可用的多个候选谓词组合,每个候选谓词组合存在对应的训练模型。
可选地,在本申请实施例中,训练模型可以是通过机器学习算法获得的监督学习模型或无监督学习模型,比如神经网络(Neural Network,NN)模型、支持向量机(SupportVector Machine,SVM)模型、模糊模型、随机森林(Random Forest)等模型。具体比如,神经网络模型包括前向反馈神经网络(Forward Neural Network,FFNN)模型、循环神经网络(Recurrent Neural Network,RNN)模型等。
需要说明的是,机器学习训练模型和过程在数据库外部,数据库内核建立与外部机器学习模型相关联的系统表。用于谓词选择率估算的模型训练完毕后,会将得到的训练模型以及该训练模型对应的谓词组合存入上述系统表,每一个谓词组合对应有一个训练模型。进一步地,可以用部分未训练数据对训练模型进行检验,总结出的模型置信度(准确性)值存入上述系统表中。另外,将机器学习模型引入到数据库查询优化器后,具体的模型训练过程以及将训练结果写入系统表的相关技术流程可参见在先申请ZL201710109372.1-《一种信息处理方法及装置》,在此不再赘述。
S650,查询优化器114在所述多个候选谓词组合中确定第一谓词组合,所述第一谓词组合包括的谓词互不相同;
可选地,所述查询优化器114也可以在所述多个候选谓词组合中确定出至少一个第一谓词组合,所述至少一个第一谓词组合包括的谓词互不相同。
这里,“所述至少一个第一谓词组合包括的谓词互不相同”是对于谓词组合之间而言的。比如,若谓词组合1包括谓词1和谓词2,谓词组合2包括谓词3和谓词4,则可知谓词组合1和谓词组合2包括的谓词互不相同。
S660,查询优化器114使用所述第一谓词组合对应的训练模型确定第一执行计划,查询执行器122使用查询优化器114生成的执行计划进行数据查询,并将查询结果返回给客户端102。
具体而言,数据库服务器100在接收到来自客户端的一个查询语句(比如SQL语句)时,可以对所述一个查询语句进行解析,以得到多个谓词。接着,查询优化器114可以基于谓词的连接关系对所述多个谓词进行谓词组合或重组,以得到多个谓词组合。比如,查询优化器114可以按照层次进行同层谓词重组。这里,查询优化器114是可以获知谓词之间的连接关系的。然后,查询优化器114可以根据系统表中保存的训练模型的类型,在所述多个谓词组合中选择出训练模型支持的多个候选谓词组合。查询优化器114可以在多个候选谓词组合中,选择出包括的谓词互不相同的第一谓词组合。最后,查询优化器114使用所述第一谓词组合对应的训练模型确定第一执行计划,并使用所述第一执行计划进行数据查询。
这里,若所述查询优化器114也可以在所述多个候选谓词组合中确定出至少一个第一谓词组合(所述至少一个第一谓词组合包括的谓词互不相同),查询优化器114使用所述至少一个第一谓词组合中每个第一谓词组合对应的训练模型确定一个执行计划,包括:查询优化器114使用每个第一谓词组合对应的训练模型计算谓词选择率,以得到多个谓词选择率,然后将这些多个谓词选择率进行连乘,得到一个最终的谓词选择率,并基于该一个最终的谓词选择率确定一个执行计划。比如,查询优化器114通过计算得到谓词组合C1和C2对应的谓词选择率为A,C3和C4对应的谓词选择率为B,则可以得到C1、C2、C3和C4对应的谓词选择率为A*B。查询优化器114基于谓词选择率A*B确定最终的执行计划。
因此,对于一个谓词组合,可以基于谓词的相关性获取谓词组合的训练模型,从而计算谓词选择率。而不需要分别计算一个谓词组合中各个谓词的谓词选择率,并将各个谓词的谓词选择率相乘。也就是说,采用训练模型计算谓词选择率的方法考虑了谓词的相关性,得到的谓词选择率会更准确,从而提高了查询性能或SQL执行性能。
上面介绍了谓词组合没有重复谓词的情况,可选地,作为一个实施例,若两个谓词组合具有相同或重复的谓词,查询优化器114可以基于训练模型的置信度选取合适的谓词组合。应理解,在本申请实施例中,引入“第一谓词组合”和“第二谓词组合”只是为了区分不同的对象,并不对本申请实施例构成限定。
下面将结合图7描述根据本申请另一实施例的数据查询的方法700。如图7所示,所述方法700包括:
S710,在所述多个候选谓词组合中确定至少两个第二谓词组合,所述至少两个第二谓词组合具有至少一个相同的谓词;
可选地,查询优化器114可以在多个候选谓词组合中确定至少两个第二谓词组合,其中,一个第二谓词组合中可以包括至少两个谓词,所述至少两个第二谓词组合具有至少一个相同或重复的谓词。
这里以查询优化器114确定的具有重复谓词的两个第二谓词组合为例进行说明,其中,每个第二谓词组合可以包括多个谓词。
比如,谓词组合1可以包括谓词1和谓词2,谓词组合2可以包括谓词1和谓词4,其中,谓词组合1和谓词组合2之间的重复谓词为谓词1。
或者,又比如,谓词组合3可以包括谓词1、谓词2和谓词3,谓词组合4可以包括谓词1、谓词2和谓词5,其中,谓词组合3和谓词组合4之间的重复谓词为谓词1和谓词2。
可选地,在本申请实施例中,每个谓词组合存在对应的训练模型。其中,训练模型可以理解为谓词组合的选择率模型。比如,对于由字段1和字段2组成的谓词组合,可以建立一个两列相关的选择率模型。
可选地,所述方法600或所述方法700还可以包括:
获取所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度。
可选地,查询优化器114可以从数据库的系统表中获取每个第二谓词组合对应的训练模型的置信度。
可选地,数据库系统中的系统表中包括每个谓词组合的训练模型的训练结果(比如权值、偏移量等模型参数)以及模型的置信度。其中,模型的置信度用于表示训练模型的准确度。例如,下表1中示出了数据库的系统表中保存的训练模型的部分数据的示例。如表1所示:
表1系统表中保存的训练模型的部分数据
在表1中,sel2表示查询语句中具有相关性的谓词有2位。PRED1与PRED2、PRED1与PRED4、PRED3与PRED5分别为具有相关性的谓词组合。PRED1与PRED2、PRED1与PRED4、PRED3与PRED5分别对应不同的训练模型。valid可以理解为训练模型的标识位,该标志位的值用于表示训练模型的有效性,比如,当valid值为1时,表示训练模型有效;当valid值为0时,表示训练模型无效。confidence用于表示训练模型的置信度,比如,在表1中,PRED1与PRED2对应的训练模型的置信度为0.76,PRED1与PRED4对应的训练模型的置信度为0.93,PRED3与PRED5对应的训练模型的置信度为0.26。
应理解,上述只是以表1的数据为例进行说明,在实际中,数据库的系统表中还可以包括其他可能的数据,对此不作限定。
S720,根据所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度信息,在所述至少两个第二谓词组合中确定目标谓词组合,所述置信度用于指示训练模型的准确度;
可选地,查询优化器114可以根据第二谓词组合对应的训练模型的置信度,选择合适的或最优的谓词组合,即目标谓词组合。
可选地,查询优化器114也可以按照其他筛选条件选择所述目标谓词组合。比如,查询优化器114可以设置阈值筛选条件,在多个第二谓词组合中选择满足阈值筛选条件的目标谓词组合,淘汰不满足阈值筛选条件的其他第二谓词组合。
可选地,所述目标谓词组合对应的训练模型的置信度大于所述至少两个第二谓词组合中其它谓词组合对应的训练模型的执行度,也就是说,目标谓词组合对应的训练模型的置信度是所有第二谓词组合中最大的。
也就是说,查询优化器114可以比较多个第二谓词组合中每个第二谓词组合对应的训练模型的置信度,然后筛选出最大的置信度,从而确定出所述目标谓词组合,淘汰其他谓词组合。
比如,若谓词组合1(PRED1,PRED2)对应的训练模型的置信度为0.76,谓词组合2(PRED1,PRED4)对应的训练模型的置信度为0.93,则选择置信度较大的谓词组合2(PRED1,PRED4),作为所述目标谓词组合,而淘汰谓词组合1。
应理解,这里只是以谓词组合1和谓词组合2为例进行说明,实际中可以包括多个谓词组合,对此不作限定。
S730,使用所述目标谓词组合对应的训练模型确定第二执行计划,并使用所述第二执行计划进行数据查询。
具体而言,查询优化器114可以使用所述目标谓词组合对应的训练模型进行相应计算,得到对应的执行计划(比如第二执行计划),从而使用所述第二执行计划进行数据查询。由于所述目标谓词组合是筛选过的最优的谓词组合,那么查询优化器114可以根据所述目标谓词组合对应的训练模型得到最优的执行计划。
在本申请实施例中,查询优化器114通过确定至少第二两个谓词组合,所述至少两个第二谓词组合中每个第二谓词组合包括至少两个谓词,所述至少两个第二谓词组合具有至少一个相同的谓词,其中,所述至少两个第二谓词组合中每个第二谓词组合存在对应的训练模型,并根据所述每个第二谓词组合对应的训练模型的置信度,在所述至少两个第二谓词组合中确定目标谓词组合,最后使用所述目标谓词组合对应的训练模型确定第二执行计划,继而使用所述第二执行计划进行数据查询,从而在计算具有重叠谓词的谓词组合的选择率时,能够提高谓词选择率的准确性。
应理解,所述方法600与所述方法700可以组合或独立使用,比如,在多个候选谓词组合中,可以存在一些谓词组合不具有重复谓词,还可以存在一些谓词组合具有重复谓词;或者,在多个候选谓词组合中,只存在一些不具有重复谓词的谓词组合;或者,在多个候选谓词组合中,只存在一些具有重复谓词的谓词组合,本申请实施例对此不作限定。
下面将具体描述如何计算训练模型的置信度。应理解,训练模型的置信度可以通过多种评估方法进行计算,这里只是以一种可能的计算方法为例进行描述,并不对本申请实施例构成限定。还应理解,“训练模型的置信度的计算操作”与“训练模型的训练操作”可以为同一执行主体,可以是独立于数据库的一个模块或其他实现装置,可以位于数据库的外部,对此不作限定。还应理解,数据库的内核可以与外部的训练模型建立相关联的系统表元信息,从而获知训练模型的训练结果或相关数据。
例如,以第一训练模型的置信度的计算过程为例进行描述,可以包括:
获取第一训练谓词组合,并计算所述第一训练谓词组合的第一选择率;
将所述第一训练谓词组合代入对应的第一训练模型,计算所述第一训练谓词组合的第二选择率,所述第一训练模型是所述至少两个谓词组合中任一个谓词组合对应的训练模型;
根据所述第一选择率和所述第二选择率,计算所述第一训练谓词组合对应的第一置信度;
根据多个所述第一置信度,确定第一训练模型的置信度。
具体比如,假设第一训练谓词组合为PRED1=const1,PRED2=const2,对应的第一训练模型的函数为fml。首先根据第一训练模型计算对应的训练谓词组合的选择率Sml,如下式所示:
Sml=fml(const1,const2)
然后计算该第一训练谓词组合真实的选择率S,如下式所示:
其中,count是SQL里面求count的语法含义,用于表示在某个谓词条件中满足谓词条件的元组个数。比如,若一个表里共有10条数据,其中,满足谓词条件PRED1=const1 andPRED2=const2的元组共有4个,则count(const1,const2)结果为4,count(*)结果为10。
这里,假设计算结果Sml=0.3,S=0.28,所述第一训练谓词组合对应的第一训练模型的第一置信度为c1,定义c1的取值如下所示:
具体地,由于Sml/S=0.3/0.28=1.07,则c1=1;若Sml=0.3,S=0.38,由于Sml/S=0.3/0.38=0.79,则c1=0。
上述描述了一种置信度的计算方式,类似地,对于多个训练谓词组合,对应的置信度可以采用类似的方法进行计算。也就是说,查询优化器114可以获取多个第一训练谓词组合,从而得到每个第一训练谓词组合对应的第一置信度。然后,查询优化器114使用多个第一置信度,计算第一训练模型的置信度。
比如,n个训练谓词组合可以对应n个ci的值。查询优化器114综合n个ci的值,计算得出训练模型的置信度C为:其中,i∈{1,2,...n},n为训练谓词组合的个数。
这里,多个第一训练谓词组合可以理解为训练模型的一些未训练数据,用于对训练模型的准确度进行验证。也就是说,可以采用部分未参与模型训练的数据对模型进行校验,以得到训练模型的准确性的值。
应理解,这里只是以第一训练模型为例进行说明,在本申请实施例中,每个训练模型的置信度均可以采用上述方法计算,对此不作限定。
因此,针对具有重复谓词的多个谓词组合,查询优化器114可以根据每个谓词组合对应的训练模型的置信度,在多个第二谓词组合中确定目标谓词组合,最后使用所述目标谓词组合对应的第一训练模型确定第二执行计划,继而使用所述第二执行计划进行数据查询,从而在计算具有重叠谓词的谓词组合的选择率时,能够提高谓词选择率的准确性。
可选地,使用所述目标谓词组合对应的训练模型确定第二执行计划,包括:
获取所述目标谓词组合对应的训练模型的模型参数,所述训练模型参数包括权值、偏移量中的至少一种;
使用所述模型参数生成所述第二执行计划。
具体而言,查询优化器114可以在数据库的系统表中,查找所述目标谓词组合对应的训练模型的模型参数,所述模型参数可以包括训练模型的训练结果,比如权值、偏移量等参数。比如,权值可以是神经网络训练模型中的神经元连接权值,包括输入层与输出层之间的权值、隐层阈值、输出层阈值、隐层与输出层权值矩阵等,偏移量可以是神经网络训练模型训练所得的权值对应的偏移量。这样,查询优化器114基于模型参数计算谓词选择率,继而生成第二执行计划。
应理解,对于前文所述的不具有重复谓词的至少一个谓词组合,其对应的执行计划也可以参照这里介绍的方法得到,为了简洁,不作赘述。
可选地,在从所述多个候选谓词组合中确定的所述至少两个第二谓词组合中,每个第二谓词组合对应的训练模型的置信度均满足预设条件。
具体而言,查询优化器114可以获取多个候选谓词组合,所述多个候选谓词组合是查询优化器114基于机器学习算法筛选出来的候选谓词组合,或者可以理解为被训练模型所支持的谓词组合。比如,所述多个候选谓词组合可分别是:谓词组合1(PRED1,PRED2);谓词组合2(PRED1,PRED4);谓词组合3(PRED3,PRED5)。然后,查询优化器114可以在这些多个候选谓词组合中,选择出满足预设条件的所述至少两个第二谓词组合。具体比如,查询优化器114可以对每个候选谓词组合对应的训练模型的置信度进行判断,对于置信度满足预设条件的候选谓词组合,作为所述至少两个第二谓词组合,以便于后续在所述至少两个谓词组合中确定出目标谓词组合。
可选地,“预设条件”可以是一个具体的阈值,或者,也可以是某一个具体的筛选条件。
可选地,所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度均大于第一阈值。
这里,所述第一阈值可以理解为查询优化器114内部认可的一个常量。若某一组谓词组合的训练模型的置信度大于所述第一阈值,则认为该训练模型的准确率较高。
比如,假设第一阈值为0.3,谓词组合1(PRED1,PRED2)对应的训练模型的置信度为0.76,谓词组合2(PRED1,PRED4)对应的训练模型的置信度为0.93,谓词组合3(PRED3,PRED5)对应的训练模型的置信度为0.26。那么,查询优化器114在确定所述至少两个谓词组合时,会置信度选择大于0.3的谓词组合,即谓词组合1(PRED1,PRED2)和谓词组合2(PRED1,PRED4),淘汰小于0.3的谓词组合,即谓词组合3(PRED3,PRED5)。
或者,查询优化器114也可以设置筛选条件,具体即:对所有谓词组合的训练模型的置信度进行排序,然后在该排序中选取置信度排在较前的第一比值(比如顺序表的前30%)的训练模型,作为被采纳的训练模型。对于置信度排序较靠后的(比如顺序表的后70%)训练模型,可以认为不满足筛选条件,不会被查询优化器114所采纳。
因此,查询优化器114通过引入阈值或筛选条件,可以在多个候选谓词组合中选择满足预设条件的所述至少两个谓词组合,从而获得准确率较高的训练模型,以便于后续输出执行计划。
为了便于本领域的技术人员更清楚得理解本申请实施例,下面将结合图8至图11进行描述。
图8示出了根据本申请实施例的多个候选谓词组合的一个例子的示意图。如图8所示,数据库管理系统108可以接收来自客户端通过与数据库服务器建立的通信连接提交的SQL查询语句(如图8中最上部的框内所示),下划线部分为常量谓词(比如,常量谓词可以为常量表达式或常量函数)。接着,数据库管理系统108的解析器112可以对该SQL查询语句进行分析,以得到可以被训练模型(或机器学习模型)所支持的谓词,分析后得到PRED1、PRED2、PRED3、PRED4、PRED5(如图8中中间部分的框内带有下划线的谓词)。其中,查询优化器114分析出连接谓词不被训练模型所支持。进一步地,查询优化器114可以基于PRED1、PRED2、PRED3、PRED4、PRED5,具体得到多个候选谓词组合。如图8中最下部的框内所示,查询优化器114得到三组具有两列选择率的谓词组合(即每个谓词组合中包括两个谓词),分别为:PRED2和PRED1,PRED1和PRED4,PRED3和PRED5。其中,每组谓词组合对应一个训练模型,每个训练模型具有置信度。这样,查询优化器114可以基于该多个候选谓词组合进行后续操作。
图9示出了根据本申请实施例的一个例子的流程图。如图9所示,查询优化器114通过初筛操作可以获取多个候选谓词组合(比如图8中所示的多个候选谓词组合),并对每个候选谓词组合的置信度进行判断。若判断出置信度不满足预设条件,则淘汰该候选谓词组合;若判断出置信度满足预设条件,则对剩余的候选谓词组合进行二次筛选。应理解,该预设条件可以是阈值或其他筛选条件,对此不作限定。可选地,查询优化器114还可以判断候选谓词组合对应的训练模型是否有效(比如valid值),在训练模型有效时,才可能进入下一步操作。
然后,在二次筛选操作中,对具有重复或相同谓词的至少两个谓词组合,查询优化器114需要判断它们的置信度在该至少两个谓词组合中是否是最大的。继而,查询优化器114在具有重复或相同谓词的至少两个谓词组合中,选择置信度最大的谓词组合作为胜出谓词组合,并使用胜出谓词组合对应的训练模型进行相应选择率的计算,最后输出最优执行计划。可选地,查询优化器114可以淘汰置信度非最大的其他谓词组合。因此,查询优化器114通过两次筛选,最终可以获取最优的谓词组合对应的训练模型,并进行相应计算,从而得到最优执行计划。
可选地,在二次筛选操作中,查询优化器114也有可能得到不具有重复谓词的谓词组合,但是其对应的置信度也满足前述预设条件,只不过没有包括重复谓词(图9中未示出)。此时,查询优化器114可以使用其对应的训练模型进行相应地计算,得到其对应的执行计划。
应理解,该至少两个谓词组合具有的重复或相同谓词,可以是一个,也可以是多个,对此不作限定。
图10示出了根据本申请实施例的一个具体例子的流程图。这里,图10是图9的进一步直观体现。如图10所示,查询优化器114通过初筛获取的三组候选谓词组合分别为:PRED1和PRED2,PRED1和PRED4,PRED3和PRED5。可知,PRED1和PRED2,PRED1和PRED4具有重复的谓词PRED1。其中,PRED1和PRED2对应的训练模型的置信度为0.76;PRED1和PRED4对应的训练模型的置信度为0.93;PRED3和PRED5对应的训练模型的置信度为0.26。接着,查询优化器114判断该3组候选谓词组合各自对应的置信度是否大于0.3。显然,0.26小于0.3,查询优化器114淘汰谓词组合PRED3和PRED5;0.76大于0.3,0.93大于0.3,查询优化器114对PRED1和PRED2,PRED1和PRED4进行二次筛选。接着,查询优化器114对具有重复谓词PRED1的谓词组合(即PRED1和PRED2,PRED1和PRED4)各自对应的置信度进行判断,挑选出置信度最大的谓词组合,这里即PRED1和PRED4,并淘汰PRED1和PRED2。最后,查询优化器114使用PRED1和PRED4对应的训练模型进行相应计算,以输出执行计划。
应理解,这里只是以一个重复谓词PRED1为例进行说明,实际中可以有多个重复的谓词,同样可以采用本申请实施例的方法,对此不作限定。
可选地,在二次筛选操作中,还有可能得到不具有重复谓词的谓词组合,但是其对应的置信度也大于0.3,比如PRED6和PRED7(图10中未示出)。此时,查询优化器114可以使用PRED6和PRED7对应的训练模型进行相应地计算,得到其对应的执行计划。
图11示出了应用本申请实施例的一个例子的示意图。图11中直观展示了图10中胜出的谓词组合。如图11所示,查询优化器114在多个候选谓词组合中(PRED1和PRED2,PRED1和PRED4,PRED3和PRED5),最终得到胜出的谓词组合为PRED1和PRED4。
应理解,上述只是以图10和图11为例进行描述,并不对本申请实施例构成限定。
本申请实施例的数据查询的方法,能够提高谓词选择率的准确性,从而能够提升数据查询的查询性能。进一步地,对于具有重复谓词的至少两个谓词组合,根据置信度选择置信度高的谓词组合对应的训练模型,能够提高谓词选择率的准确性。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文详细描述了根据本申请实施例的数据查询的方法,下面将描述根据本申请实施例的数据查询的装置和数据库系统。该数据查询的装置和该数据库系统可以执行前述本申请实施例的数据查询的方法。
图12示出了根据本申请实施例的数据查询的装置1200的示意性框图。如图12所示,该装置1200包括:
接收模块1210,用于接收查询语句;
处理模块1220,用于对所述查询语句进行解析,以得到多个谓词;还用于对所述多个谓词进行谓词组合,以得到多个谓词组合;
第一确定模块1230,用于根据预配置的训练模型的类型,在所述多个谓词组合中确定出所述预配置的训练模型对应的多个候选谓词组合,所述多个候选谓词组合中的每个候选谓词组合包括至少两个谓词;
所述第一确定模块1230,还用于在所述多个候选谓词组合中确定第一谓词组合,所述第一谓词组合包括的谓词互不相同;
所述处理模块1220,还用于使用所述第一谓词组合对应的训练模型确定第一执行计划,并使用所述第一执行计划进行数据查询。
本申请实施例的数据查询的装置1200,可以在多个候选谓词组合中,确定出不具有相同谓词的第一谓词组合。由于每个候选谓词组合存在对应的训练模型,若所述第一谓词组合不具有相同的谓词,可以使用第一个谓词组合对应的训练模型确定第一执行计划,即使用第一谓词组合对应的训练模型计算谓词选择率,从而生成第一执行计划,并基于第一执行计划进行数据查询。换言之,对于一个谓词组合,可以基于谓词的相关性获取谓词组合的训练模型,从而计算谓词选择率。而不需要分别计算一个谓词组合中各个谓词的谓词选择率,并将各个谓词选择率相乘。也就是说,采用训练模型计算谓词选择率的方法考虑了谓词的相关性,得到的谓词选择率会更准确,从而提高了查询性能。
应注意,在本申请实施例中,该装置1200可以是前面所描述的查询优化器114,或者是集成在查询优化器114中的软/硬件功能单元。例如,接收模块1210可以由接收器,或者通信接口实现,处理模块1220和第一确定模块1230的功能可以由至少一个处理器执行存储器中的指令来实现。可选地,该数据库查询装置中的各个组件可通过总线系统耦合在一起,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线等。
可选地,作为一个实施例,第一确定模块1220还用于,在所述多个候选谓词组合中确定至少两个第二谓词组合,所述至少两个第二谓词组合具有至少一个相同的谓词;
如图13所示,可选地,作为一个实施例,所述装置1200还包括:
第二确定模块1240,用于根据所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度,在所述至少两个谓词组合中确定目标谓词组合,所述置信度用于指示训练模型的准确度;
所述处理模块1220还用于,使用所述目标谓词组合对应的训练模型确定第二执行计划,并使用所述第二执行计划进行数据查询。
可选地,作为一个实施例,所述装置1200还包括:
获取模块,用于获取所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度。
可选地,所述目标谓词组合对应的训练模型的置信度在所述至少两个谓词组合中是最大的。
可选地,在所述多个候选谓词组合中确定的所述第二至少两个谓词组合中,每个第二谓词组合对应的训练模型的置信度均满足预设条件。
可选地,所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度均大于第一阈值。
可选地,所述处理模块1220具体用于:
获取所述目标谓词组合对应的训练模型的模型参数,所述训练模型参数包括权值、偏移量中的至少一种;使用所述模型参数生成所述第二执行计划。
根据本申请实施例的数据查询的装置1200可执行根据本申请实施例的数据查询的方法600或700,并且该数据查询的装置1200中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。另外,第二确定模块1240和获取模块的功能也可以由至少一个处理器执行存储器中的指令来实现。本申请实施例的数据查询的装置1200,可以在多个候选谓词组合中,选择出不具有相同的谓词的第一谓词组合。由于每个候选谓词组合存在对应的训练模型,若所述第一谓词组合包括的谓词互不相同,可以使用第一谓词组合对应的训练模型确定第一执行计划,即使用第一谓词组合对应的训练模型计算谓词选择率,从而生成第一执行计划,并基于第一执行计划进行数据查询。换言之,对于一个谓词组合,可以基于谓词的相关性获取谓词组合的训练模型,从而计算谓词选择率。而不需要分别计算一个谓词组合中各个谓词的谓词选择率,并将各个谓词选择率相乘。也就是说,采用训练模型计算谓词选择率的方法考虑了谓词的相关性,得到的谓词选择率会更准确,从而提高了查询性能。
图14示出了根据本申请实施例的数据库系统1400的示意性框图。如图14所示,该数据库系统1400包括前述本申请实施例的数据查询的装置1200和数据库1410。该数据库系统1400可以执行前述本申请实施例的数据查询的方法,在数据库1410中进行查询。
图15示出了本申请一个实施例提供的数据查询的装置的结构,包括至少一个处理器1502(例如CPU),至少一个网络接口1503或者其他通信接口,存储器1504。可选地,还可以接收器1505和发送器1506。处理器1502用于执行存储器1504中存储的可执行模块,例如计算机程序。存储器1504可能包含高速随机存取存储器RAM,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口1503(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。接收器1505和发送器1506用于传输各种信号或信息。
在一些实施方式中,存储器1504存储了程序15041,程序15041可以被处理器1502执行,用于执行前述本申请实施例的数据查询的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种数据查询的方法,其特征在于,包括:
接收查询语句;
对所述查询语句进行解析,以得到多个谓词;
对所述多个谓词进行谓词组合,以得到多个谓词组合;
根据预配置的训练模型的类型,在所述多个谓词组合中确定出所述预配置的训练模型对应的多个候选谓词组合,所述多个候选谓词组合中的每个候选谓词组合包括至少两个谓词;
在所述多个候选谓词组合中确定第一谓词组合,所述第一谓词组合包括的谓词互不相同;
使用所述第一谓词组合对应的训练模型确定第一执行计划,并使用所述第一执行计划进行数据查询。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述多个候选谓词组合中确定至少两个第二谓词组合,所述至少两个第二谓词组合具有至少一个相同的谓词;
根据所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度,在所述至少两个第二谓词组合中确定目标谓词组合,所述置信度用于指示训练模型的准确度;
使用所述目标谓词组合对应的训练模型确定第二执行计划,并使用所述第二执行计划进行数据查询。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度。
4.根据权利要求3所述的方法,其特征在于,所述目标谓词组合为所述至少两个第二谓词组合中训练模型的置信度最大的谓词组合。
5.根据权利要求2至4中任一项所述的方法,其特征在于,在从所述多个候选谓词组合中确定的所述至少两个第二谓词组合中,每个第二谓词组合对应的训练模型的置信度均满足预设条件。
6.根据权利要求5所述的方法,其特征在于,所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度均大于第一阈值。
7.根据权利要求2至6中任一项所述的方法,其特征在于,所述使用所述目标谓词组合对应的训练模型确定第二执行计划,包括:
获取所述目标谓词组合对应的训练模型的模型参数,所述训练模型参数包括权值、偏移量中的至少一种;
使用所述模型参数生成所述第二执行计划。
8.一种数据查询的装置,其特征在于,包括:
接收模块,用于接收查询语句;
处理模块,用于对所述查询语句进行解析,以得到多个谓词;还用于对所述多个谓词进行谓词组合,以得到多个谓词组合;
第一确定模块,用于根据预配置的训练模型的类型,在所述多个谓词组合中确定出所述预配置的训练模型对应的多个候选谓词组合,所述多个候选谓词组合中的每个候选谓词组合包括至少两个谓词;
所述第一确定模块,还用于在所述多个候选谓词组合中确定第一谓词组合,所述第一谓词组合包括的谓词互不相同;
所述处理模块,还用于使用所述第一谓词组合对应的训练模型确定第一执行计划,并使用所述第一执行计划进行数据查询。
9.根据权利要求8所述的装置,其特征在于,第一确定模块还用于,在所述多个候选谓词组合中确定至少两个第二谓词组合,所述至少两个第二谓词组合具有至少一个相同的谓词;
所述装置还包括:
第二确定模块,用于根据所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度,在所述至少两个第二谓词组合中确定目标谓词组合,所述置信度用于指示训练模型的准确度;
所述处理模块还用于,使用所述目标谓词组合对应的训练模型确定第二执行计划,并使用所述第二执行计划进行数据查询。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度。
11.根据权利要求10所述的装置,其特征在于,所述目标谓词组合为所述至少两个第二谓词组合中训练模型的置信度最大的谓词组合。
12.根据权利要求9至11中任一项所述的装置,其特征在于,在从所述多个候选谓词组合中确定的所述至少两个第二谓词组合中,每个第二谓词组合对应的训练模型的置信度均满足预设条件。
13.根据权利要求12所述的装置,其特征在于,所述至少两个第二谓词组合中每个第二谓词组合对应的训练模型的置信度均大于第一阈值。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述处理模块具体用于:
获取所述目标谓词组合对应的训练模型的模型参数,所述训练模型参数包括权值、偏移量中的至少一种;使用所述模型参数生成所述第二执行计划。
15.一种数据查询的装置,其特征在于,所述装置包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,其特征在于,所述至少一个处理器执行所述指令,以实现权利要求1至7中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
17.一种数据库系统,其特征在于,包括根据权利要求8至14中任一项所述的数据查询的装置和数据库。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710308623.9A CN108804473B (zh) | 2017-05-04 | 2017-05-04 | 数据查询的方法、装置和数据库系统 |
PCT/CN2018/083826 WO2018201916A1 (zh) | 2017-05-04 | 2018-04-20 | 数据查询的方法、装置和数据库系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710308623.9A CN108804473B (zh) | 2017-05-04 | 2017-05-04 | 数据查询的方法、装置和数据库系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804473A true CN108804473A (zh) | 2018-11-13 |
CN108804473B CN108804473B (zh) | 2022-02-11 |
Family
ID=64016819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710308623.9A Active CN108804473B (zh) | 2017-05-04 | 2017-05-04 | 数据查询的方法、装置和数据库系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108804473B (zh) |
WO (1) | WO2018201916A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324605A (zh) * | 2020-01-22 | 2020-06-23 | 北京东方金信科技有限公司 | 数据库中数据混合存储动态调整方法及应用 |
CN112347104A (zh) * | 2020-11-06 | 2021-02-09 | 中国人民大学 | 一种基于深度强化学习的列存储布局优化方法 |
CN113806190A (zh) * | 2020-06-17 | 2021-12-17 | 华为技术有限公司 | 一种预测数据库管理系统的性能的方法、装置及系统 |
WO2023236240A1 (zh) * | 2022-06-09 | 2023-12-14 | 深圳计算科学研究院 | 一种基于强化学习的数据筛选方法及其装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391565A (zh) * | 2018-11-15 | 2019-02-26 | 天津津航计算技术研究所 | 一种光纤总线网络自动化验证系统及方法 |
CN111444220B (zh) * | 2020-05-09 | 2023-09-01 | 南京大学 | 规则驱动和数据驱动相结合的跨平台sql查询优化方法 |
CN115033650A (zh) * | 2022-06-09 | 2022-09-09 | 深圳计算科学研究院 | 一种基于关系数据的数据处理方法及其装置 |
CN115827930B (zh) * | 2023-02-15 | 2023-05-05 | 杭州悦数科技有限公司 | 一种图数据库的数据查询优化方法、系统和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090299989A1 (en) * | 2004-07-02 | 2009-12-03 | Oracle International Corporation | Determining predicate selectivity in query costing |
US20120095989A1 (en) * | 2010-10-19 | 2012-04-19 | Choudur Lakshminarayan | Estimating a Number of Unique Values in a List |
CN102760143A (zh) * | 2011-04-28 | 2012-10-31 | 国际商业机器公司 | 一种在数据库系统中动态整合执行结构的方法和装置 |
US20140181078A1 (en) * | 2012-12-20 | 2014-06-26 | Teradata Corporation | Cardinality estimation for optimization of recursive or iterative database queries by databases |
CN104216891A (zh) * | 2013-05-30 | 2014-12-17 | 国际商业机器公司 | 关系型数据库中的查询语句的优化方法和设备 |
CN104915717A (zh) * | 2015-06-02 | 2015-09-16 | 百度在线网络技术(北京)有限公司 | 数据处理方法、知识库推理方法及相关装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100397396C (zh) * | 2005-10-31 | 2008-06-25 | 北京神舟航天软件技术有限公司 | 基于谓词关键度分析的查询计划缓存方法及其系统 |
US7945562B2 (en) * | 2006-03-15 | 2011-05-17 | Oracle International Corporation | Join predicate push-down optimizations |
CN105303501A (zh) * | 2015-11-23 | 2016-02-03 | 北京航空航天大学 | 一种基于图片推荐的社区信息服务系统和方法 |
CN106095956A (zh) * | 2016-06-15 | 2016-11-09 | 北京智能管家科技有限公司 | 支持信息裂变查询方法及装置 |
-
2017
- 2017-05-04 CN CN201710308623.9A patent/CN108804473B/zh active Active
-
2018
- 2018-04-20 WO PCT/CN2018/083826 patent/WO2018201916A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090299989A1 (en) * | 2004-07-02 | 2009-12-03 | Oracle International Corporation | Determining predicate selectivity in query costing |
US20120095989A1 (en) * | 2010-10-19 | 2012-04-19 | Choudur Lakshminarayan | Estimating a Number of Unique Values in a List |
CN102760143A (zh) * | 2011-04-28 | 2012-10-31 | 国际商业机器公司 | 一种在数据库系统中动态整合执行结构的方法和装置 |
US20140181078A1 (en) * | 2012-12-20 | 2014-06-26 | Teradata Corporation | Cardinality estimation for optimization of recursive or iterative database queries by databases |
CN104216891A (zh) * | 2013-05-30 | 2014-12-17 | 国际商业机器公司 | 关系型数据库中的查询语句的优化方法和设备 |
CN104915717A (zh) * | 2015-06-02 | 2015-09-16 | 百度在线网络技术(北京)有限公司 | 数据处理方法、知识库推理方法及相关装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324605A (zh) * | 2020-01-22 | 2020-06-23 | 北京东方金信科技有限公司 | 数据库中数据混合存储动态调整方法及应用 |
CN113806190A (zh) * | 2020-06-17 | 2021-12-17 | 华为技术有限公司 | 一种预测数据库管理系统的性能的方法、装置及系统 |
CN112347104A (zh) * | 2020-11-06 | 2021-02-09 | 中国人民大学 | 一种基于深度强化学习的列存储布局优化方法 |
CN112347104B (zh) * | 2020-11-06 | 2023-09-29 | 中国人民大学 | 一种基于深度强化学习的列存储布局优化方法 |
WO2023236240A1 (zh) * | 2022-06-09 | 2023-12-14 | 深圳计算科学研究院 | 一种基于强化学习的数据筛选方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108804473B (zh) | 2022-02-11 |
WO2018201916A1 (zh) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804473A (zh) | 数据查询的方法、装置和数据库系统 | |
US10445657B2 (en) | General framework for cross-validation of machine learning algorithms using SQL on distributed systems | |
US11330043B2 (en) | Automated server workload management using machine learning | |
US20200401939A1 (en) | Systems and methods for preparing data for use by machine learning algorithms | |
Saleem et al. | Feasible: A feature-based sparql benchmark generation framework | |
KR102134494B1 (ko) | 위치 정보를 가진 데이터 프로파일링 | |
Hyndman et al. | Nonparametric estimation and symmetry tests for conditional density functions | |
CN103235974B (zh) | 一种提高海量空间数据处理效率的方法 | |
CN105224872A (zh) | 一种基于神经网络聚类的用户异常行为检测方法 | |
EP3259681B1 (en) | Method and device for deciding where to execute subqueries of an analytics continuous query | |
Khoshkbarforoushha et al. | Distribution based workload modelling of continuous queries in clouds | |
US20030208284A1 (en) | Modular architecture for optimizing a configuration of a computer system | |
CN110442516B (zh) | 信息处理方法、设备及计算机可读存储介质 | |
WO2020228378A1 (zh) | 一种确定数据库的配置参数的方法及装置 | |
US20200285642A1 (en) | Machine learning model-based dynamic prediction of estimated query execution time taking into account other, concurrently executing queries | |
CN109241093A (zh) | 一种数据查询的方法、相关装置及数据库系统 | |
CN103262062A (zh) | 用于执行嵌套连接操作的系统和方法 | |
US20100030757A1 (en) | Query builder for testing query languages | |
CN109299087A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
WO2019154546A1 (en) | Acceleration of neural networks using depth-first processing | |
Vu et al. | Distributed adaptive model rules for mining big data streams | |
WO2015180340A1 (zh) | 一种数据挖掘方法及装置 | |
Nguyen et al. | SMART: A tool for analyzing and reconciling schema matching networks | |
CN115705322A (zh) | 一种数据库管理系统、数据处理方法及设备 | |
US20160203409A1 (en) | Framework for calculating grouped optimization algorithms within a distributed data store |
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 |