[发明专利]一种分布式数据库的代理结果合并方法及系统有效

专利信息
申请号: 201410315793.6 申请日: 2014-07-03
公开(公告)号: CN104111992B 公开(公告)日: 2017-05-17
发明(设计)人: 李静 申请(专利权)人: 北京思特奇信息技术股份有限公司
主分类号: G06F17/30 分类号: G06F17/30;H04L29/06
代理公司: 北京轻创知识产权代理有限公司11212 代理人: 杨立
地址: 100086 北京市海淀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 数据库 代理 结果 合并 方法 系统
【说明书】:

技术领域

发明涉及一种分布式数据库的代理结果合并方法及系统。

背景技术

现有分布式数据库代理对客户端发送来待处理的每一个SQL请求,经过代理的路由规则得到目标节点,然后将SQL信息发送给MYSQL服务器处理,并将处理结果返回给客户端。如果路由结果是多个物理节点,那么代理会将查询结果做简单的合并返回给客户端。如果SQL里没有一些诸如sum、max等函数,那么查询结果的简单合并是满足需求的。如果有这些函数,那么查询结果就需要做进一步的处理而不是简单的合并,如sum函数,就需要对查询结果中的sum值再做一次累加返回给客户端,这样客户端就能得到正确的结果而不需要应用再做二次处理。基于此原理,代理需要就包含一些函数的SQL的执行结果做相应的逻辑处理,然后返回给客户端,以期实现分布式数据库代理的结果集合并处理。

基于现有系统处理的缺点:

SQL中有sum函数时,返回的结果是单个节点sum值的简单合并。

SQL中有count函数时,返回的结果是单个节点count值的简单合并。

SQL中有max函数时,返回的结果是单个节点max值的简单合并。

SQL中有min函数时,返回的结果是单个节点max值的简单合并。

SQL中有avg函数时,返回的结果是单个节点avg值的简单合并。

SQL中有order by函数时,返回的结果是单个节点order by值的简单合并。

SQL中有group by函数时,返回的结果是单个节点order by值的简单合并。

SQL中有distinct函数时,返回的结果是单个节点的distinct值的简单合并。

在互联网、电信等许多关键领域,随着企业业务的不断发展,企业的I/T环境也在不断进行演变,单个数据库已经很难满足海量数据库存储和高并发数据访问,分布式数据库的出现成为必然,分布式数据库能够有效的解决海量数据存储和并发问题,通过数据的水平切分和数据表的垂直切分,有效的缓解了海量数据存储,通过负载均衡、高可用、轮询等缓解了高并发问题,但是分布式数据库在对待有函数的SQL执行结果时只是进行简单的合并,从而客户端得到的是有歧义的结果。

发明内容

本发明所要解决的技术问题是提供一种针对不同函数,采用不同处理和合并方法的分布式数据库的代理结果合并方法。

本发明解决上述技术问题的技术方案如下:一种分布式数据库的代理结果合并方法,具体包括以下步骤:

步骤1:解析第一SQL语句得到其包括的函数;

步骤2:判断所述函数属于第一类函数还是第二类函数,如果是第一类函数,执行步骤8;否则,执行步骤3;

步骤3:判断所述函数是否是distinct函数,如果是,执行步骤5;否则,执行步骤4;

步骤4:对第一SQL语句进行预处理得到第二SQL语句,将第二SQL语句替换第一SQL语句;

步骤5:发送第一SQL语句或第二SQL语句到MYSQL服务端;

步骤6:获得MYSQL服务端返回的结果集,根据MYSQL数据包的协议格式,将结果集转换成数据包集合;

步骤7:根据所述函数对数据包集合进行操作,得到新的结果集;

步骤8:对新的结果集进行数据包封装得到新的数据包,将新的数据包发送到客户端。

本发明的有益效果是:本发明具有经济性:支持在不增加硬件投入的条件下,提高系统并发处理能力;充分利用设备闲置时段的计算资源,提高系统资源利用率;利用低端服务器上负载分担数据库的存储空间进行数据处理;本发明还能提升性能和安全性:可配置方式移动计算、移动数据进行云计算,提供并行计算的性能和效率;保障数据的一致性、完整性、可用性,提高数据的隔离型,为高并发系统奠定基础。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述第一类函数包括sum函数、count函数、max函数和min函数;所述第二类函数包括avg函数、order by函数、group by函数和distinct函数。

进一步,所述步骤4具体包括以下步骤:

步骤4.1:判断第一SQL语句是否包含avg函数,如果是,执行步骤4.2;否则执行步骤4.3;

步骤4.2:将第一SQL语句中的avga()改变为sum(),count()和avga(),得到第二SQL语句,执行步骤5;

步骤4.3:判断第一SQL语句是否包含order by函数,如果是,执行步骤4.4;否则,执行步骤4.6;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410315793.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top