CN105335403A - 数据库访问方法及装置、数据库系统 - Google Patents
数据库访问方法及装置、数据库系统 Download PDFInfo
- Publication number
- CN105335403A CN105335403A CN201410353970.XA CN201410353970A CN105335403A CN 105335403 A CN105335403 A CN 105335403A CN 201410353970 A CN201410353970 A CN 201410353970A CN 105335403 A CN105335403 A CN 105335403A
- Authority
- CN
- China
- Prior art keywords
- statement
- access
- rule
- request
- database
- 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
- 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
- G06F16/24534—Query rewriting; Transformation
-
- 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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据库访问方法,包括如下步骤:接收客户端输入的访问请求,所述访问请求包含至少一条命令语句;将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,所述下沉语句为下发到数据库被所述数据源执行的语句;将所述下沉语句传输到所述下沉语句指向的数据库。本发明还提供一种应用上述方法的数据库访问装置及数据库系统。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种数据库访问方法及装置、数据库系统。
背景技术
随着信息技术的发展,运营商IT系统集中化建设和面向互联网转型,企业数据集成应用增强以及互联网社区(如facebook、twitter等)和互联网业务(如微博、阅读、游戏、电子商务等)的广泛开展,数据库系统需要处理的数据量越来越大,传统的集中式数据库已越来越不能适应当前的需求,数据处理方式正由集中式向分布式转变。
分布式数据库系统通常由多个独立的计算机系统构成,每台计算机可单独放在一个地方,且每台计算机中都有数据库管理系统的一份完整拷贝副本,并具有自己的本地局部数据库,位于不同地点的许多计算机通过网络互相连接,从而共同组成一个完整的、全局的大型数据库。
联邦数据库技术是分布式数据库系统中的佼佼者之一,它提供了一个统一的用户访问界面,并屏蔽了数据库分库和分区及不同数据库之间的差异,用户使用联邦数据库系统访问数据,就像访问一个实际存在的数据库那样简单。然而由于涉及跨库处理,联邦数据库存在处理速度慢,容易出现锁争用和资源冲突等问题。因此联邦数据库或类似联邦数据库的分布式数据系统需要解决的问题就集中在如何提升处理效率。
联邦数据库提升处理效率的关键在于如何优化结构化查询语言(StructuredQueryLanguage,SQL)并输出最佳执行方案,现在的联邦数据库用于优化SQL的方案,有时会面临对数据表的数据进行重哈希或全网广播等情况,造成网络流量大以及数据在各个数据源的插入引起的对处理器和内存占用大等问题,从而导致数据处理速度慢、系统并发处理性能降低以及响应延时,无法满足使用要求。
发明内容
针对上述问题,本发明的目的在于提供一种数据库访问方法,通过预设一对应于所述SQL的规则集,对所述SQL进行规则匹配及变形处理后,生成满足数据源执行要求的变形语句,从而可以最大限度的利用数据源的数据处理能力,提升系统处理性能,避免了数据哈希造成的网络流量大及数据处理速度慢等问题。
第一方面,本发明提供一种数据库访问方法,包括如下步骤:
接收客户端输入的访问请求,所述访问请求包含至少一条命令语句;
将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,所述下沉语句为下发到数据库被所述数据源执行的语句;
将所述下沉语句传输到所述下沉语句指向的数据库。
在第一方面的第一种可能的实现方式中,在所述接收客户端输入的访问请求之后,还包括:
对所述访问请求进行词法与语法解析与验证;
在第一方面的第二种可能的实现方式中,将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,包括:
(1)根据所述访问请求包含的一条命令语句,查找为所述命令语句设置的规则集,所述规则集至少包含一条规则;
(2)将所述命令语句与查找得到的所述规则集内的规则逐一进行规则匹配,若所述命令语句中包含与所述规则集内的任一条规则匹配的语句时,对所述命令语句进行变形处理;
(3)将变形处理后的命令语句重新与所述规则集内的规则逐一进行规则匹配,并重复执行所述当变形处理后的命令语句包含与所述规则集内的任一条规则匹配的语句时,对所述变形处理后的命令语句进行变形处理的步骤,直至所述变形处理后的命令语句不包含与所述规则集内的任一条规则匹配的语句;
(4)分别对所述访问请求包含的其他命令语句执行步骤(1)至(3)后,生成执行计划,所述执行计划包括变形源访问请求及满足数据源执行要求的下沉语句。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述下沉语句传输到所述变形语句指向的数据库之后,还包括:
收集所述数据源执行所述下沉语句后从所述数据库中提取的数据记录,并根据所述变形源访问请求指定的方式处理所述数据记录,以获得处理结果;及
将所述处理结果发送至所述客户端。
第二方面,本发明提供一种数据库访问装置,包括:
接收单元,用于接收所述客户端输入的访问请求,所述访问请求至少包含一条命令语句;
处理单元,用于将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句;
执行单元,用于将所述下沉语句传输到所述下沉语句指向的数据库。
在第二方面的第一种可能的实现方式中,所述装置还包括解析单元及验证单元,所述解析单元用于解析所述访问请求,以获得所述访问请求中的命令语句及所述命令语句包含的命令关键字、与所述命令关键字对应的语句及所述语句中的数据对象;所述验证单元用于验证所述命令语句,命令关键字是否合法或正确,若是,则通知所述处理单元,所述处理单元执行将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理的步骤。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述装置还包括规则集单元,用于设置所述规则集。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理单元包括选择单元、匹配单元及变形单元,所述选择单元根据所述解析单元解析得到的命令关键字,从所述规则集单元中选择为所述命令关键字设置的规则集,所述匹配单元将与所述命令关键字对应的命令语句与所述规则集内的规则逐一进行规则匹配,当所述命令语句包含与所述规则集内的任一条规则匹配的语句时,通知所述变形单元对所述命令语句进行变形处理,所述匹配单元将变形处理后的命令语句重新与所述规则集内的规则逐一进行规则匹配,直至所述命令语句不包含与所述规则集内的任一条规则匹配的语句后,生成执行计划,所述执行计划包括变形源访问请求及满足数据源执行要求的下沉语句。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置还包括输出单元,所述执行单元还用以接收所述变形源访问请求,并收集所述数据源执行所述下沉语句获得的数据记录后,根据所述变形源访问请求指定的方式处理所述数据记录,生成处理结果,所述输出单元收集所述处理结果并将所述处理结果输出至所述客户端。
第三方面,本发明实施例提供一种数据库系统,所述数据库系统包括至少一个客户端、至少两个数据库及第二方面及第二方面的第一种至第四种任一实现方式所述的数据库访问装置,其中:所述客户端,用于发出访问请求;所述数据库访问装置,用于接收所述访问请求并对所述访问请求进行规则匹配及变形处理后,生成变形源访问请求及若干下沉语句,并将所述下沉语句发送至所述下沉语句指向的数据库;所述数据库,用于在接收到所述下沉语句后执行所述下沉语句,并将所述数据库内满足所述下沉语句要求的数据记录传输至所述数据库访问装置;所述数据库访问装置还用于接收所述数据记录,并根据所述变形源访问请求处理所述数据记录并生成处理结果后,将所述处理结果传输至所述客户端。
本发明实施例提供的数据库访问方法、装置及数据库系统,通过预设一包含所有可能应用到的SQL的规则集,利用所述规则集对输入的SQL进行规则匹配处理及变形处理后,生成满足数据源执行要求的下沉语句,从而可以最大限度的利用数据源的数据处理能力,提升系统处理性能,避免了数据哈希造成的网络流量大及数据处理速度慢等问题,满足使用要求。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据库系统的结构示意图。
图2是本发明实施例提供的一种数据库访问装置的结构示意图。
图3是本发明实施例提供的一种数据库访问方法的流程示意图。
图4是本发明实施例提供的另一种数据库访问方法的流程示意图。
图5是本发明实施例提供的另一种数据库访问装置的结构示意图。
图6是图示所示的处理单元的结构示意图。
图7是本发明实施例提供的另一种数据库访问装置与客户端及数据库的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据库访问方法及装置、数据库系统,用于提高分布式数据库系统的处理效率,以下分别进行详细说明。
为了便于理解本发明实施例,下面先对本发明实施例的数据库系统进行描述。请参阅图1,图1是本发明实施例提供的数据库系统的结构示意图,所述数据库系统包括至少一个客户端200、数据库访问装置及由至少两个物理节点(如图1中的节点A、节点B及节点C)构成的节点队列,所述客户端200、数据库访问装置及节点队列可通过局域网、城域网、广域网或其他通信协议方式实现数据的传输,其中,所述节点内具有数据库,所述数据库内包含有至少一个数据源,所述数据源为数据库中对数据表、视图、储存过程等资源进行管理的一个对象,如Oracle数据库中的一个用户(schema)或MySQL数据库中的一个数据库(database)。所述客户端200发出访问请求,所述数据库访问装置接收并解析、优化所述访问请求后,生成包含下沉语句及变形源访问请求的执行计划,所述下沉语句发送至指定的数据库,所述数据库中的数据源执行所述下沉语句后从所述数据库内获取符合下沉语句要求的数据记录后将所述数据记录传输至所述数据库访问装置,所述数据库访问装置根据所述变形源访问请求定义的函数对所述数据记录进行处理后获得处理结果,并将所述处理结果传输至所述客户端200。
在本发明实施例中,所述客户端200可为个人计算机,所述节点可为数据库服务器,所述数据库系统还包括有应用程序编程接口(ApplicationProgramInterface,API),所述API可为Java数据库连接(JavaDataBaseConnectivity,JDBC)或者开放式数据库连接(OpenDatabaseConnectivity,ODBC),其用以提供访问请求在所述数据库访问装置与所述客户端200及所述节点队列之间传输的接口,从而实现所述访问请求在所述数据库访问装置与所述客户端200及所述节点队列之间的传输。
请参阅图2,图2是本发明实施例提供的一种数据库访问装置的结构示意图,用于执行本发明实施例提供的数据库访问方法,如图2所示,该数据库访问装置包括:至少一个处理器11,例如CPU,至少一个网络接口14或者其他用户接口13,存储器15,至少一个通信总线12。通信总线12用于实现这些组件之间的连接通信。其中,用户接口13可选的可以包括USB接口以及其他标准接口、有线接口。网络接口14可选的可以包括Wi-Fi接口以及其他无线接口。存储器15可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器15可选的可以包含至少一个位于远离前述处理器11的存储装置。
在一些实施方式中,存储器15存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统151,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块152,包含设备控制服务程序、设备识别服务程序等各种应用程序,用于实现各种应用业务。
具体地,处理器11用于调用存储器15中存储的程序,执行以下操作:
接收客户端输入的访问请求,所述访问请求包含至少一条命令语句;
将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,所述下沉语句为下发到数据库被所述数据源执行的语句;
将所述下沉语句传输到所述下沉语句指向的数据库。
上述技术方案中,所述数据库访问装置通过将其预设的规则集内的规则与所述访问请求包含的命令语句进行规则匹配处理,并将所述访问请求中包含的与所述规则相匹配的语句进行变形处理,从而生成下沉语句,所述下沉语句是根据输入的访问请求经过优化和变形处理而来的,是具有最大粒度的交付给各个数据源处理的下沉语句,从而可以最大限度的利用数据源的数据处理能力,提升系统处理性能。
在另一个实施例中,所述处理器11还可用于执行以下操作:
接收客户端输入的访问请求,所述访问请求包含至少一条命令语句;
对所述访问请求进行语法解析及验证;
将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,所述下沉语句为下发到数据库被所述数据源执行的语句;
将所述下沉语句传输到所述下沉语句指向的数据库;
收集所述数据源执行所述下沉语句后从所述数据库中提取的数据,并根据变形源访问请求指定的方式处理所述数据,以获得处理结果;及
将所述处理结果发送至所述客户端。
上述技术方案中,所述数据库访问装置通过将其预设的规则集内的规则与所述访问请求包含的命令语句进行规则匹配处理,并将所述访问请求中包含的与所述规则相匹配的语句进行变形处理,从而生成下沉语句,所述下沉语句是根据输入的访问请求经过优化和变形处理而来的,是具有最大粒度的交付给各个数据源处理的下沉语句,从而可以最大限度的利用数据源的数据处理能力,提升系统处理性能。
为了更清楚的说明本发明实施例,下面将详细介绍所述数据库访问装置执行上述两个实施例的操作过程。
请参阅图3,图3是本发明实施例提供的一种数据库访问方法的流程示意图,其至少包括如下步骤:
101,接收客户端输入的访问请求,所述访问请求包含至少一条命令语句。
在本发明实施例中,所述数据库访问装置分别与所述客户端200及所述节点队列建立连接后,接收所述客户端200通过运行其存储器内存储的特定应用程序(如数据库访问程序)发出的访问请求,所述访问请求可为SQL,该SQL包含至少一条命令语句,以通过所述命令语句对所述节点队列上的数据库进行相应操作,如通过所述命令语句对所述数据库内的数据进行条件查询、排序、求和等访问操作。
102,将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,所述下沉语句为下发到数据库被所述数据源执行的语句。
在本发明实施例中,所述数据库访问装置对接收到所述SQL进行优化、分解以及变形等处理,以生成一执行计划。具体为,所述数据库访问装置针对所述SQL里的所有的命令语句均对应设置了一规则集,所述规则集汇聚了与所述命令语句对应的规则(如变形规则),以对所述命令语句进行变形等处理,从而生成满足数据源执行要求的下沉语句,以充分利用所述数据源的数据处理能力,同时所述规则集内的规则还可根据认识的深入进行扩充、修改或更新。
具体为,所述将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,包括如下步骤:
(1)根据所述访问请求包含的一条命令语句中的命令关键字,查找为所述命令关键字设置的规则集,所述规则集至少包含一条规则。
在本发明实施例中,所述访问请求可包含若干命令语句,所述命令语句均含有命令关键字,所述数据库访问装置为所述的每个命令语句均构建了一个规则集,当所述数据库访问装置获取一条命令语句时,所述数据库访问装置通过所述命令关键字从全部的规则集中选择为所述命令关键字设置的规则集,所述规则集内包含了所述命令语句可能面临的各种下沉处理及变形处理的规则。
(2)将所述命令语句与查找得到的所述规则集内的规则逐一进行规则匹配,若所述命令语句中包含与所述规则集内的任一条规则匹配的语句时,对所述命令语句进行变形处理。
在本发明实施例中,所述数据库访问装置将所述规则集内的规则依次逐一与所述命令语句进行规则匹配处理,如所述规则集内包含第一规则、第二规则至第N规则共N条规则,所述数据库访问装置先将所述命令语句与所述第一规则进行规则匹配处理,若所述命令语句包含与所述第一规则匹配的语句,则对所述命令语句进行变形处理,否则,将所述命令语句与所述第二规则进行规则匹配处理。当在规则匹配处理过程中发现所述命令语句中包含与所述规则集内的任一条规则匹配的语句时,对所述命令语句进行变形处理,所述变形处理可能是对所述命令语句形式的改变,也可能是将所述命令语句分解成一些有前后关系的语句或者同时进行分解及形式改变的处理。
(3)将变形处理后的命令语句重新与所述规则集内的规则逐一进行规则匹配,并重复执行所述当变形处理后的命令语句包含与所述规则集内的任一条规则匹配的语句时,对所述变形处理后的命令语句进行变形处理的步骤,直至所述变形处理后的命令语句不包含与所述规则集内的任一条规则匹配的语句。
在本发明实施例中,所述命令语句经过一次变形处理后,所述数据库访问装置重新将变形处理后的一条命令语句与所述规则集内的所有规则进行匹配处理,(依然从第一规则开始进行规则匹配处理),并重复执行所述当变形处理后的命令语句包含与所述规则集内的任一条规则匹配的语句时,对所述变形处理后的命令语句进行变形处理的步骤,直至所述变形处理后的命令语句不包含与所述规则集内的任一条规则匹配的语句。此时,说明所述的命令语句已经完成了规则匹配及变形处理的过程。
(4)分别对所述访问请求包含的其他命令语句执行步骤(1)至(3)后,生成执行计划,所述执行计划包括变形源访问请求及满足数据源执行要求的下沉语句。
在本发明实施例中,当所述数据库访问装置完成一条命令语句规则的匹配及变形处理后,所述数据库访问装置获取下一条命令语句,并选择为所述的另一条命令语句设置的规则集,随后重复执行上述的规则匹配及变形处理步骤,直至所述访问请求的所有命令语句均经过规则匹配及变形处理后,生成执行计划,所述执行计划包括变形源访问请求及若干满足数据源执行要求的下沉语句。其中,下沉为将SQL下发到节点队列内的数据库的操作过程。所述下沉语句为经过规则匹配和变形处理后从所述访问请求中分离出来的部分或全部命令语句,该下沉语句中还可能包含对所述命令语句进行变形后的语句,如修改所述命令语句中的函数名等变形处理后的语句,其本身也是一条独立的SQL,因而可被下发到节点队列内的数据库,并可被所述数据库的数据源所执行。由于所述下沉语句经过了上述的规则匹配及变形处理,因而所述数据源执行所述下沉语句时,只需根据所述下沉语句完成本地数据处理,而无需进行跨库和跨区处理。
103,将所述下沉语句传输到所述下沉语句指向的数据库。
在本发明实施例中,所述数据库访问装置将所述变形语句中的若干下沉语句传输至所述下沉语句指向的数据库,所述数据库内的数据源可执行所述下沉语句,由于所述下沉语句是具有最大粒度的交付给各个数据源处理的语句,所述节点队列中的数据源只需根据所述下沉语句完成本地数据处理,而无需进行跨库和跨区处理,因而可以最大限度的利用数据源的数据处理能力,提升系统处理性能。
上面技术方案中,所述数据库访问装置通过将其预设的规则集内的规则与所述访问请求包含的命令语句进行规则匹配处理,并将所述访问请求中包含的与所述下沉规则相匹配的语句进行变形处理,生成满足所述数据源执行要求的下沉语句,所述数据源通过所述下沉语句处理数据时具有较高的处理效率,且网络流量占用量小,用户体验较佳。
请参阅图4,图4是本发明实施例提供的另一种数据库访问方法的流程示意图。
201,接收客户端输入的访问请求,所述访问请求包含至少一条命令语句。
202,对所述访问请求进行词语与语法解析与验证。
具体为,所述对所述访问请求进行词法与语法解析与验证包括:
解析所述访问请求,以获得所述命令语句中包含的命令关键字、与所述命令关键字对应的语句及所述语句中的数据对象;
验证所述命令关键字、语句及数据对象是否合法或正确;
在本发明实施例中,所述数据库访问装置解析所述SQL后,对所述SQL进行词语与语法验证,如可验证所述输入的访问请求包含的命令关键字的拼写是否有误、所述语句的结构是否合法及所述数据对象是否存在等情况。当所述数据库访问装置在验证过程中发现所述访问请求存在错误或不合法语句时,则结束本次访问请求的访问,并将错误信息返回至所述客户端200,并提示用户根据所述错误信息进行修改。当所述数据库访问装置未在验证过程中发现所述访问请求存在错误或不合法语句时,则执行下一步骤。
203,将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句。
在本发明实施例中,所述数据库访问装置根据上述的解析结果,对所述访问请求中的命令语句进行规则匹配及变形处理,以生成执行计划,所述执行计划包括变形源访问请求及若干满足数据源执行要求的下沉语句。
204,将所述下沉语句传输到所述下沉语句指向的数据库。
205,收集所述数据源执行所述下沉语句后从所述数据库中提取的数据记录,并根据所述变形源访问请求指定的方式处理所述数据记录,以获得处理结果。
在本发明实施例中,所述数据源接收到所述下沉语句后,通过执行所述下沉语句,如在数据源内部执行查询、排序,或者对分区内的数据记录执行聚集处理等操作,并将操作获得的数据记录返回至所述数据库访问装置,所述数据库访问装置接收所述数据记录后,根据所述变形源访问请求指定的方式处理所述数据记录,例如通过变形源访问请求定义的函数(可为求和函数,求平均函数,求最值函数等)对所述的各个数据源获得的数据记录做进一步处理,以完成各个数据源无法完成的跨分区或跨数据库等数据处理过程,所述数据库访问装置处理所述数据后可获得处理结果。
206,将所述处理结果发送至所述客户端。
在本发明实施例中,所述数据库访问装置将所述处理结果发送至所述客户端200,所述处理结果即为所述客户端200所需的查询结果。
为了更清楚的说明上述的数据库访问方法的流程及处理过程,下面将以一个具体的例子来详细说明所述数据库访问装置对所述访问请求的规则匹配处理及变形处理过程。
假设所述客户端200输入的访问请求为:
SELECTt1.f12,sum(t2.f22),avg(t3.f32)
FROMt1,t2,t3
WHEREt1.f11=t2.f21andt1.f11=t3.f31
andt1.f11mod2=1andt1.f12=20
GROUPBYt1.f11
ORDERBYt1.f11;
其中,t1、t2、t3为分区表(对于一个较大的数据表,根据需要,按照特定的规则,如按照数据存储的时间顺序,将其分别分解为多个部分,分别存放在不同的数据源中,分解后得到的每个部分为一个分区表),且都存在于多个数据源上,各数据源分布于各个数据库上。t1表为学生信息表,其包含字段f11和f12,其中f11为分区字段且f11表示学号,f12表示学生的班级号。t2表为学生成绩表,其包含字段f21、f22、f23,其中f21为分区字段,且f21表示学号,f22表示成绩,f23表示学科,f21为分区字段。t3表为学生消费表,其包含字段f31、f32、f33,其中f33为分区字段且f31表示学生学号,f32表示学生的消费,f33表示消费月份。
学生信息表(t1)
字段 | f11 | f12 |
字段含义 | studentId(学号) | classid(班级号) |
学生成绩表(t2)
字段 | f21 | f22 | f23 |
字段含义 | studentId | score(成绩) | subject(学科) |
学生消费表(t3)
字段 | f31 | f32 | f33 |
字段含义 | studentId | cost(消费) | month(消费月份) |
则所述客户端200输入的访问请求表示的含义为:查询班级号为20、学号为单号的学生,并输出这些学生的班号、学科总成绩和消费的平均值,并对查得的结果按学号进行升序排序。
当所述数据库访问装置接收到上述访问请求时,所述数据库访问装置先解析所述访问请求,以获得所述访问请求包含的命令语句、命令关键字、语句及数据对象等信息,然后所述数据库访问装置验证所述命令关键字、语句及数据对象等信息,以确定所述访问请求是否合法正确。如在本例中,所述访问请求包含的命令语句包括:SELECT列表项命令语句、WHERE条件项命令语句、Join命令语句、GROUP命令语句及ORDER命令语句。其中,SELECT列表项命令语句的命令关键字为SELECT,WHERE条件项命令语句的命令关键字为WHERE,GROUP命令语句及ORDER命令语句的关键字分别为GROUPBY和ORDERBY。
在本发明实施例中,所述数据库访问装置先对所述访问请求进行整形下沉判断,所述整体下沉为将所述访问请求不经变形而直接整体发送到所述访问请求指向的节点队列中的一个或多个数据库。其中,所述整体下沉规则集内的一条规则规定:当所述访问请求要访问的数据位于且仅位于同一个分区时(即分区的设置完全相同),则所述访问请求可整体下沉到数据库,否则不能整体下沉到数据库。由于t3表的分区字段f33不是连接(Join)字段(Join字段是f31),因而,该访问请求不符合整体下沉规则,不能整体下沉。
接着,所述数据库访问装置对所述访问请求中的WHERE条件项命令语句进行规则匹配处理,所述数据库访问装置根据命令关键字WHERE,选择WHERE条件项规则集,假设所述WHERE条件项规则集内的一条规则规定:如果条件项为独立的字段,且该字段为某个分区表的Join字段,则可以扩展到其它分区表的Join。将所述WHERE条件项命令语句与所述WHERE条件项规则集内的一条规则匹配,则所述访问请求经变形处理后变为:
[第一次变形后的源SQL]
SELECTt1.f12,sum(t2.f22),avg(t3.f32)
FROMt1,t2,t3
WHEREt1.f11=t2.f21andt1.f11=t3.f31
andt1.f11mod2=1andt2.f21mod2=1andt3.f31mod2=1
andt1.f12=20
GROUPBYt1.f11
ORDERBYt1.f11;
即根据WHERE条件项规则集的变形处理,WHERE条件项命令语句中的t1.f11=t2.f21andt1.f11=t3.f31andt1.f11mod2=1扩展获得t1.f11=t2.f21andt1.f11=t3.f31andt1.f11mod2=1andt2.f21mod2=1andt3.f31mod2=1。
然后,所述数据库访问装置对所述访问请求中的Join命令语句(即条件项中包含有两个表Join的语句,如t1.f11=t2.f21,该语句实现t1表和t2表的Join操作,Join字段为f11和f21;或者t1.f11=t3.f31,该语句实现t1表和t3表的Join操作)进行规则匹配处理,所述数据库访问装置选择Join规则集,假设所述Join规则集的一条规则规定:Join的字段必须是两表的分区字段,且分区方式一致。由于t1表和t2表的分区方式一致,而与t3表的分区方式不一致,所以t1表和t2表的Join匹配Join下沉规则,但与t3的Join不符合Join下沉规则,将所述Join命令语句与所述Join规则集的一条规则进行规则匹配及变形处理后得到:
[第一下沉SQL]
SELECT*FROMt1,t2
WHEREt1.f11=t2.f21andt1.f11mod2=1andt2.f21mod2=1;
andt1.f12=20
[第二下沉SQL]
SELECT*FROMt3
WHEREt3.f31mod2=1;
[第二次变形后的源SQL]
SELECTtmp1.f12,sum(tmp1.f22),avg(tmp2.f32)
FROMtmp1,tmp2
WHEREtmp1.f11=tmp2.f31
GROUPBYtmp1.f11
ORDERBYtmp1.f11;
其中,tmp1为t1、t2进行Join后的虚表,tmp2为t3表SELECT结果后对应的虚表。
再次,所述数据库访问装置对所述访问请求中的GROUP命令语句和ORDER命令语句进行规则匹配,所述数据库访问装置根据所述命令关键字GROUPBY和ORDERBY,以选择GROUP规则集和ORDER规则集,假设所述GROUP规则集和ORDER规则集中的一条规则规定:GROUP和ORDER下沉的条件为所述访问请求匹配Join下沉规则且Join命令语句必须可以完全下沉,从上述可以看到,t1表与t3表的Join不能下沉,所以GROUP命令语句及ORDER命令语句与这条规则不匹配,不能下沉。
最后,所述数据库访问装置对所述访问请求中的SELECT列表项命令语句进行规则匹配处理,所述数据库访问装置根据所述命令关键字选择SELECT,以选择SELECT列表项规则集,假设所述SELECT列表项规则集中定义了如下的下沉规则:
1)独立的字段
2)独立的字段函数或表达式(必要时需要修改函数名)
3)可以一起下沉的字段函数或表达式(必要时需要修改函数名)
4)聚集字段下沉的条件是Group可以下沉
5)不能下沉的表达式或函数,需要将字段下沉
将所述的SELECT列表项命令语句与上述的SELECT列表项规则集进行匹配及变形处理后,可以得到所述执行计划:
[第一下沉SQL]
SELECTt1.f11,t2.f22
FROMt1,t2
WHEREt1.f11=t2.f21andt1.f11mod2=1andt2.f21mod2=1;
andt1.f12=20
[第二下沉SQL]
SELECTf31,f32
FROMt3
WHEREt3.f31mod2=1;
[第三次变形后的源SQL]
SELECTtmp1.f12,sum(tmp1.f22),avg(tmp2.f32)
FROMtmp1,tmp2
WHEREtmp.f11=tmp2.f31
GROUPBYtmp1.f11
ORDERBYtmp1.f11;
其中,所述第一下沉SQL和第二下沉SQL即为满足所述数据源执行条件的下沉语句,所述第一下沉SQL及第二下沉SQL分别下沉到t1表及t2表所在的数据源,所述第二下沉SQL下沉到t3表所在的数据源,所述数据源执行所述下沉语句后从所述数据库内的t1表、t2表及t3表提取与所述下沉语句对应的数据记录后,将数据返回至所述数据库访问装置,所述数据库访问装置接收到数据记录后,根据变形源访问请求(即上述的第三次变形后的源SQL)对所述数据进行处理后获得处理结果,如sum(tmp1.f22)为对成绩求和,avg(tmp2.f32)为对月消费求平均;GROUPBYtmp1.f11ORDERBYtmp1.f11为对获得的数据按学号分组处理并按学号的大小进行升序排序。最后,所述数据库访问装置将所述处理结果发送至所述客户端200。由于所述数据源在处理所述第一下沉SQL和第二下沉SQL时,不需要进行跨库或跨区处理,从而可以最大限度的利用数据源的数据处理能力,提升系统处理性能。
上述技术方案中,所述数据库访问装置通过将其预设的规则集内的规则与所述访问请求包含的命令语句进行规则匹配处理,并将所述访问请求中包含的与所述下沉规则相匹配的语句进行变形处理,生成满足所述数据源执行要求的下沉语句,所述数据源通过执行所述下沉语句获得数据,所述数据库访问装置通过所述变形源访问请求对所述数据进行处理,由于所述数据源处理所述数据时仅需对本地数据进行处理而无需涉及跨区和跨库的处理,因而可以最大限度的利用数据源的数据处理能力,提升系统处理性能。
请一并参阅图5至图6,图5是本发明实施例提供的另一种数据库访问装置的结构示意图,所述数据库访问装置包括接收单元10、处理单元20及执行单元30,其中,
所述接收单元10,用于接收所述客户端200输入的访问请求,所述访问请求至少包含一条命令语句。
在本发明实施例中,所述访问请求可为SQL,该SQL包含至少一条命令语句,以通过所述命令语句对所述节点上的数据库进行相应操作,如对所述数据库内的数据进行查询、排序、求和等操作。
所述处理单元20,用于将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句;
在本发明实施例中,所述处理单元20包括选择单元21、匹配单元22及变形单元23,所述选择单元21根据所访问请求包含的命令语句及与该命令语句对应的命令关键字,查找为所述命令语句设置的规则集,所述匹配单元22将所述命令语句与所述规则集内的规则逐一进行规则匹配处理,当所述命令语句包含与所述规则集内的任一条规则匹配的语句时,通知所述变形单元23对所述命令语句进行变形处理,所述匹配单元22将变形处理后的命令语句重新与所述规则集内的规则逐一进行规则匹配处理,直至所述命令语句不包含与所述规则集内的任一条规则匹配的语句后,生成变形语句,所述变形语句包括变形源访问请求及满足数据源执行要求的下沉语句。
执行单元30,用于将经所述处理单元20处理后得到的下沉语句传输至所述下沉语句指向的数据库。
请参阅图7,图7是本发明实施例提供的另一种数据库访问装置与客户端及数据库的示意图。所述数据库访问装置除了包括上述的接收单元10、处理单元20及执行单元30外,还包括:
解析单元40,用于接收所述接收单元10输入的访问请求,并对所述访问请求进行解析,以获得所述访问请求包含的命令语句、与命令语句对应的命令关键字、语句及数据对象。
验证单元50,用于验证所述解析单元40解析获得的命令语句、与命令语句对应的命令关键字、语句及数据对象是否合法。
规则集单元60,用于设置所述规则集。所述选择单元21可根据命令关键字从所述规则集单元60选择与所述命令关键字对应的规则集。
其中,所述执行单元30还用以接收所述处理单元20变形后生成的变形源访问请求,所述执行单元30收集所述数据源执行所述下沉语句获得的数据记录后,根据所述变形源访问请求指定的方式处理所述数据记录,生成处理结果。
输出单元70,用于将所述执行单元30生成的处理结果发送至所述客户端200。
上述技术方案中,通过所述处理单元20对所述访问请求中的命令语句进行规则匹配处理及变形处理,从而生成所述变形源访问请求及满足数据源执行要求的下沉语句,所述执行单元30还获取所述变形源访问请求,并根据变形源访问请求处理所述数据源执行所述下沉语句返回的数据记录,并生成所述处理结果。由于所述数据源执行所述下沉语句时无需进行跨区或跨库等数据处理过程,而将跨区或跨库等数据处理过程交由所述执行单元30处理,因而可以最大限度的利用数据源的数据处理能力,提升系统处理性能,避免了数据哈希造成的网络流量大及数据处理速度慢等问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种数据库访问方法,其特征在于,包括如下步骤:
接收客户端输入的访问请求,所述访问请求包含至少一条命令语句;
将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,所述下沉语句为下发到数据库被所述数据源执行的语句;
将所述下沉语句传输到所述下沉语句指向的数据库。
2.根据权利要求1所述的数据库访问方法,其特征在于,在所述接收客户端输入的访问请求之后,还包括:
对所述访问请求进行词法与语法解析与验证;
3.根据权利要求1所述的数据库访问方法,其特征在于,将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句,包括:
(1)根据所述访问请求包含的一条命令语句,查找为所述命令语句设置的规则集,所述规则集包含至少一条规则;
(2)将所述命令语句与查找得到的所述规则集内的规则逐一进行规则匹配,若所述命令语句中包含与所述规则集内的任一条规则匹配的语句时,对所述命令语句进行变形处理;
(3)将变形处理后的命令语句重新与所述规则集内的规则逐一进行规则匹配,并重复执行所述当变形处理后的命令语句包含与所述规则集内的任一条规则匹配的语句时,对所述变形处理后的命令语句进行变形处理的步骤,直至所述变形处理后的命令语句不包含与所述规则集内的任一条规则匹配的语句;
(4)分别对所述访问请求包含的其他命令语句执行步骤(1)至(3)后,生成执行计划,所述执行计划包括变形源访问请求及满足数据源执行要求的下沉语句。
4.根据权利要求3所述的数据库访问方法,其特征在于,所述将所述下沉语句传输到所述下沉语句指向的数据库之后,还包括:
收集所述数据源执行所述下沉语句后从所述数据库中提取的数据记录,并根据所述变形源访问请求指定的方式处理所述数据记录,以获得处理结果;及
将所述处理结果发送至所述客户端。
5.一种数据库访问装置,其特征在于,包括:
接收单元,用于接收所述客户端输入的访问请求,所述访问请求包含至少一条命令语句;
处理单元,用于将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配,对所述访问请求包含的与所述规则相匹配的语句进行变形处理,生成满足数据源执行要求的下沉语句;
执行单元,用于将所述下沉语句传输到所述下沉语句指向的数据库。
6.根据权利要求5所述的数据库访问装置,其特征在于,所述装置还包括解析单元及验证单元,所述解析单元用于解析所述访问请求,以获得所述访问请求中的命令语句及所述命令语句包含的命令关键字,与所述命令关键字对应的语句及所述语句中的数据对象;所述验证单元用于验证所述命令语句,命令关键字是否合法或正确,若是,则通知所述处理单元,所述处理单元执行将所述访问请求包含的命令语句与预设规则集内的规则进行规则匹配处理的步骤。
7.根据权利要求6所述的数据库访问装置,其特征在于,所述装置还包括规则集单元,用于设置所述规则集。
8.根据权利要求7所述的数据库访问装置,其特征在于,所述处理单元包括选择单元、匹配单元及变形单元,所述选择单元根据所述解析单元解析得到的命令关键字,从所述规则集单元中选择为所述命令关键字设置的规则集,所述匹配单元将与所述命令关键字对应的命令语句与所述规则集内的规则逐一进行规则匹配,当所述命令语句包含与所述规则集内的任一条规则匹配的语句时,通知所述变形单元对所述命令语句进行变形处理,所述匹配单元将变形处理后的命令语句重新与所述规则集内的规则逐一进行规则匹配,直至所述命令语句不包含与所述规则集内的任一条规则匹配的语句后,生成执行计划,所述执行计划包括变形源访问请求及满足数据源执行要求的下沉语句。
9.根据权利要求8所述的数据库访问装置,其特征在于,所述装置还包括输出单元,所述执行单元还用以接收所述变形源访问请求,并收集所述数据源执行所述下沉语句获得的数据记录后,根据所述变形源访问请求指定的方式处理所述数据记录,生成处理结果,所述输出单元收集所述处理结果并将所述处理结果输出至所述客户端。
10.一种数据库系统,包括至少一个客户端及至少两个数据库,其特征在于,所述数据库系统还包括如权利要求5至9任一项所述的数据库访问装置,其中:
所述客户端,用于发出访问请求;
所述数据库访问装置,用于接收所述访问请求并对所述访问请求进行规则匹配及变形处理后,生成变形源访问请求及若干下沉语句,并将所述下沉语句发送至所述下沉语句指向的数据库;
所述数据库,用于在接收到所述下沉语句后执行所述下沉语句,并将所述数据库内满足所述下沉语句要求的数据记录传输至所述数据库访问装置;
所述数据库访问装置还用于接收所述数据记录,并根据所述变形源访问请求处理所述数据记录并生成处理结果后,将所述处理结果传输至所述客户端。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410353970.XA CN105335403B (zh) | 2014-07-23 | 2014-07-23 | 数据库访问方法及装置、数据库系统 |
PCT/CN2015/083996 WO2016011904A1 (zh) | 2014-07-23 | 2015-07-14 | 数据库访问方法及装置、数据库系统 |
EP15825561.2A EP3173944B1 (en) | 2014-07-23 | 2015-07-14 | Database access method and apparatus and database system |
US15/411,043 US10534771B2 (en) | 2014-07-23 | 2017-01-20 | Database access method and apparatus, and database system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410353970.XA CN105335403B (zh) | 2014-07-23 | 2014-07-23 | 数据库访问方法及装置、数据库系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335403A true CN105335403A (zh) | 2016-02-17 |
CN105335403B CN105335403B (zh) | 2020-02-14 |
Family
ID=55162503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410353970.XA Active CN105335403B (zh) | 2014-07-23 | 2014-07-23 | 数据库访问方法及装置、数据库系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10534771B2 (zh) |
EP (1) | EP3173944B1 (zh) |
CN (1) | CN105335403B (zh) |
WO (1) | WO2016011904A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250565A (zh) * | 2016-08-30 | 2016-12-21 | 福建天晴数码有限公司 | 基于分片关系型数据库的查询方法和系统 |
CN108694189A (zh) * | 2017-04-07 | 2018-10-23 | 微软技术许可有限责任公司 | 共同所有权的数据库系统的管理 |
CN108959315A (zh) * | 2017-05-23 | 2018-12-07 | 中国移动通信集团重庆有限公司 | 数据库的访问方法、装置及设备 |
CN110688397A (zh) * | 2019-07-30 | 2020-01-14 | 民生科技有限责任公司 | 一种基于sql的分布式数据统一访问系统及方法 |
CN111708806A (zh) * | 2020-08-24 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种数据访问的方法、装置、服务器、系统及存储介质 |
CN112364059A (zh) * | 2020-11-10 | 2021-02-12 | 平安普惠企业管理有限公司 | 多规则场景下关联匹配方法、装置、设备和存储介质 |
CN113407562A (zh) * | 2021-06-04 | 2021-09-17 | 北京金山云网络技术有限公司 | 分布式数据库系统的通信方法及装置 |
CN114036184A (zh) * | 2022-01-11 | 2022-02-11 | 杭州涂鸦信息技术有限公司 | 联邦分布式查询方法、系统及计算机可读存储介质 |
CN114609985A (zh) * | 2022-03-11 | 2022-06-10 | 傲普(上海)新能源有限公司 | 一种ems系统的控制方法、装置、介质及设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10540155B1 (en) * | 2016-08-11 | 2020-01-21 | Tibco Software Inc. | Platform-agnostic predictive models based on database management system instructions |
CN110019342B (zh) * | 2017-12-13 | 2023-03-28 | 金篆信科有限责任公司 | 分区表访问方法、装置及设备、计算机可读存储介质 |
US10929556B1 (en) | 2018-04-25 | 2021-02-23 | Bank Of America Corporation | Discrete data masking security system |
US10824751B1 (en) * | 2018-04-25 | 2020-11-03 | Bank Of America Corporation | Zoned data storage and control security system |
CN110580556B (zh) * | 2018-06-08 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统、处理器 |
US11468339B2 (en) * | 2018-06-29 | 2022-10-11 | Sap Se | Agnostic data structure for debriefing predictive software |
CN111241130B (zh) * | 2019-12-29 | 2024-05-28 | 航天信息股份有限公司 | 一种基于sql语言的语法语句的扩展方法及系统 |
CN112445812B (zh) * | 2020-11-27 | 2022-09-20 | 中原银行股份有限公司 | 一种结构化查询语句处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441365A (zh) * | 2002-02-28 | 2003-09-10 | 北京中电网安科技有限公司 | 大中型内部网络安全防护系统及方法 |
CN101706810A (zh) * | 2009-11-23 | 2010-05-12 | 北京中创信测科技股份有限公司 | 一种数据库查询方法及装置 |
CN101901222A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种sql解析及匹配的方法和系统 |
CN102073640A (zh) * | 2009-11-19 | 2011-05-25 | 阿里巴巴集团控股有限公司 | Sql语句的检测方法、系统及服务器 |
US20110296391A1 (en) * | 2010-05-28 | 2011-12-01 | Albrecht Gass | Systems and Methods for Dynamically Replacing Code Objects Via Conditional Pattern Templates |
CN103678621A (zh) * | 2013-12-18 | 2014-03-26 | 上海达梦数据库有限公司 | 基于常量替换的sql语句优化方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598044B1 (en) * | 2002-06-25 | 2003-07-22 | Microsoft Corporation | Method for choosing optimal query execution plan for multiple defined equivalent query expressions |
US7552467B2 (en) * | 2006-04-24 | 2009-06-23 | Jeffrey Dean Lindsay | Security systems for protecting an asset |
US8706771B2 (en) * | 2009-09-30 | 2014-04-22 | Smartshift Gmbh | Systems and methods for analyzing and transforming an application from a source installation to a target installation |
US8898627B2 (en) * | 2010-05-11 | 2014-11-25 | Smartshift Gmbh | Systems and methods for applying rules to transform objects of an application |
US8671222B2 (en) * | 2010-05-11 | 2014-03-11 | Smartshift Gmbh | Systems and methods for dynamically deploying an application transformation tool over a network |
US8386471B2 (en) * | 2010-05-27 | 2013-02-26 | Salesforce.Com, Inc. | Optimizing queries in a multi-tenant database system environment |
US8621649B1 (en) * | 2011-03-31 | 2013-12-31 | Emc Corporation | Providing a security-sensitive environment |
US8990187B2 (en) * | 2012-05-21 | 2015-03-24 | Google Inc. | Efficient top-down hierarchical join on a hierarchically clustered data stream |
CN103678589B (zh) * | 2013-12-12 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于等价类的数据库内核查询优化方法 |
-
2014
- 2014-07-23 CN CN201410353970.XA patent/CN105335403B/zh active Active
-
2015
- 2015-07-14 WO PCT/CN2015/083996 patent/WO2016011904A1/zh active Application Filing
- 2015-07-14 EP EP15825561.2A patent/EP3173944B1/en active Active
-
2017
- 2017-01-20 US US15/411,043 patent/US10534771B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441365A (zh) * | 2002-02-28 | 2003-09-10 | 北京中电网安科技有限公司 | 大中型内部网络安全防护系统及方法 |
CN101901222A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种sql解析及匹配的方法和系统 |
CN102073640A (zh) * | 2009-11-19 | 2011-05-25 | 阿里巴巴集团控股有限公司 | Sql语句的检测方法、系统及服务器 |
CN101706810A (zh) * | 2009-11-23 | 2010-05-12 | 北京中创信测科技股份有限公司 | 一种数据库查询方法及装置 |
US20110296391A1 (en) * | 2010-05-28 | 2011-12-01 | Albrecht Gass | Systems and Methods for Dynamically Replacing Code Objects Via Conditional Pattern Templates |
CN103678621A (zh) * | 2013-12-18 | 2014-03-26 | 上海达梦数据库有限公司 | 基于常量替换的sql语句优化方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250565A (zh) * | 2016-08-30 | 2016-12-21 | 福建天晴数码有限公司 | 基于分片关系型数据库的查询方法和系统 |
CN106250565B (zh) * | 2016-08-30 | 2019-05-07 | 福建天晴数码有限公司 | 基于分片关系型数据库的查询方法和系统 |
CN108694189A (zh) * | 2017-04-07 | 2018-10-23 | 微软技术许可有限责任公司 | 共同所有权的数据库系统的管理 |
CN108959315A (zh) * | 2017-05-23 | 2018-12-07 | 中国移动通信集团重庆有限公司 | 数据库的访问方法、装置及设备 |
CN110688397A (zh) * | 2019-07-30 | 2020-01-14 | 民生科技有限责任公司 | 一种基于sql的分布式数据统一访问系统及方法 |
CN110688397B (zh) * | 2019-07-30 | 2022-05-17 | 民生科技有限责任公司 | 一种基于sql的分布式数据统一访问系统及方法 |
CN111708806B (zh) * | 2020-08-24 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种数据访问的方法、装置、服务器、系统及存储介质 |
CN111708806A (zh) * | 2020-08-24 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种数据访问的方法、装置、服务器、系统及存储介质 |
CN112364059A (zh) * | 2020-11-10 | 2021-02-12 | 平安普惠企业管理有限公司 | 多规则场景下关联匹配方法、装置、设备和存储介质 |
CN112364059B (zh) * | 2020-11-10 | 2023-12-22 | 国网甘肃省电力公司白银供电公司 | 多规则场景下关联匹配方法、装置、设备和存储介质 |
CN113407562A (zh) * | 2021-06-04 | 2021-09-17 | 北京金山云网络技术有限公司 | 分布式数据库系统的通信方法及装置 |
CN114036184A (zh) * | 2022-01-11 | 2022-02-11 | 杭州涂鸦信息技术有限公司 | 联邦分布式查询方法、系统及计算机可读存储介质 |
CN114609985A (zh) * | 2022-03-11 | 2022-06-10 | 傲普(上海)新能源有限公司 | 一种ems系统的控制方法、装置、介质及设备 |
CN114609985B (zh) * | 2022-03-11 | 2024-01-26 | 傲普(上海)新能源有限公司 | 一种ems系统的控制方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2016011904A1 (zh) | 2016-01-28 |
EP3173944A4 (en) | 2017-05-31 |
CN105335403B (zh) | 2020-02-14 |
US20170132280A1 (en) | 2017-05-11 |
EP3173944B1 (en) | 2021-06-02 |
US10534771B2 (en) | 2020-01-14 |
EP3173944A1 (en) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335403A (zh) | 数据库访问方法及装置、数据库系统 | |
Wylot et al. | RDF data storage and query processing schemes: A survey | |
CN112199366B (zh) | 数据表处理方法、装置及设备 | |
EP2608074B1 (en) | Systems and methods for merging source records in accordance with survivorship rules | |
Zhao et al. | Modeling MongoDB with relational model | |
CN110032604A (zh) | 数据存储装置、转译装置及数据库访问方法 | |
US20120239612A1 (en) | User defined functions for data loading | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN105210058A (zh) | 使用多个引擎来进行图查询处理 | |
US7606827B2 (en) | Query optimization using materialized views in database management systems | |
WO2015142548A1 (en) | Dependency-aware transaction batching for data replication | |
CN111367954A (zh) | 数据查询处理方法、装置及系统、计算机可读存储介质 | |
CN103262062A (zh) | 用于执行嵌套连接操作的系统和方法 | |
US10831737B2 (en) | Method and device for partitioning association table in distributed database | |
CN111708804A (zh) | 数据处理方法、装置、设备及介质 | |
CN110399368B (zh) | 一种定制数据表的方法、数据操作方法及装置 | |
US20180060364A1 (en) | Database scheme for storing generic data | |
US9053207B2 (en) | Adaptive query expression builder for an on-demand data service | |
US20150261862A1 (en) | Search Space Reduction Using Approximate Results | |
Schlegel et al. | Balloon fusion: SPARQL rewriting based on unified co-reference information | |
CN108073641B (zh) | 查询数据表的方法和装置 | |
US20210089527A1 (en) | Incremental addition of data to partitions in database tables | |
Ge et al. | A cost-driven top-K queries optimization approach on federated RDF systems | |
EP3567497A1 (en) | Remote data blending | |
US20180018385A1 (en) | System, data combining method, integration server, data combining program, database system ,database system cooperation method, and database system cooperation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |