[发明专利]一种基于Amoeba动态解析SQL注解的装置及方法有效
申请号: | 201310737077.2 | 申请日: | 2013-12-27 |
公开(公告)号: | CN103729433B | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 彭振民 | 申请(专利权)人: | 深圳市远行科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;H04L12/701 |
代理公司: | 深圳市凯达知识产权事务所44256 | 代理人: | 任转英,刘大弯 |
地址: | 518057 广东省深圳市南山区高新*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 amoeba 动态 解析 sql 注解 装置 方法 | ||
技术领域
本发明涉及计算机领域,特别是涉及一种基于Amoeba动态解析SQL注解的方法及装置ASCA(Amoeba SQL Comment API)。
背景技术
由于近年来,各行业的业务数据急剧上升,传统的集中式数据库管理模式已无法满足,对于系统的稳定性与扩展性造成了极大的问题。而分布式数据库管理模式可以很好的解决此类问题(读写分离,水平切分等)。
无疑,水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题。通过读写分离策略更是最大限度了提高了应用中读取数据的速度和并发量。
对开发来讲,所有的分布式数据技术点都无须关注细节。而Amoeba为水平切分技术提供了很好的解决方案。如:数据切分后复杂数据源整合,提供数据切分规则并降低数据切分规则给数据库带来的影响,降低数据库与客户端连接,读写分离路由(暂时不支持分库分表,Amoeba目前只做到分数据库实例,每个被切分的节点需要保持库表结构一致)。
由于Amoeba所提供的切分技术,都需要大量的数据配制,并且不具备SQL动态扩展以及动态指定数据分片规则、路由分发规则。所有规则都需提前在xml文件配制,Amoeba会根据传入的SQL(select*from table whereid>100),以及SQL条件实现数据分片,路由分发匹配。这种场景只能根据SQL条件匹配,无法通过其它途径。再如:条数据采用水平切分技术入库,而此时的数据ID必须唯一,并且不能由某个数据库生成,需要获取全局ID。而这种场景说明需要扩展函数,以获取运行时所需要的额外数据。
所以,有必要提供一种新的方案,可以提供一种动态解析SQL注解(如获取所需的额外数据例如全局ID)的方法。
发明内容
本发明的目的在于提供一种基于Amoeba动态解析SQL注解的装置及方法,可以在不影响原生SQL的前提下,解决分布式SQL的不足,丰富SQL函数,扩展SQL接口,并具备简单,可扩展性,低侵入等优势。
为解决以上技术问题,本发明提供一种基于Amoeba动态解析SQL注解的装置,包括:Amoeba代理器和Amoeba路由器;
所述Amoeba代理器,用于将接收的ASCA SQL转换为标准SQL,并将标准SQL路由给Amoeba路由器;
所述Amoeba路由器,用于接收到的标准SQL,通过SQL协议流转到对应的底层数据库并执行SQL。
进一步地,所述Amoeba代理器包括:语法解析器、模型转换器、数据处理器、路由分发器;其中:
所述语法解析器,用于解析接收到的ASCA SQL的语法,并将验证语法正确的ASCA SQL转给所述模型转换器;
所述模型转换器,用于将ASCA SQL转换为ASCA数据模型;
所述数据处理器,用于根据ASCA数据模型,定位到对应的实现功能,并将对应的结果替换成标准SQL;
所述路由分发器,用于获取标准SQL,构造路由信息,并将处理好的标准SQL路由给Amoeba路由器。
为解决以上技术问题,本发明提供一种基于Amoeba动态解析SQL注解的方法,包括:
步骤1、Amoeba代理器将接收的ASCA SQL转换为标准SQL,并将标准SQL路由给Amoeba路由器;
步骤2、Amoeba路由器通过SQL协议流转到对应的底层数据库并执行SQL。
进一步地,所述步骤1具体包括:
步骤1.1、Amoeba代理将接收到的ASCA SQL转发给语法解析器;
步骤1.2、语法解析器验证ASCA SQL语法,将验证语法正确的ASCASQL转给所述模型转换器;
步骤1.3、模型处理器将ASCA SQL转换成ASCA数据模型,将转换成功的ASCA数据模型交由数据处理器;
步骤1.4、数据处理器通过ASCA数据模型定位到对应的实现功能,并将对应的结果替换成标准SQL;
步骤1.5、路由分发器将处理好的标准SQL路由给Amoeba路由器。
进一步地,所述步骤2具体包括:
步骤2.1、Amoeba路由器接收路由分发器发送过来的标准SQL;
步骤2.2、Amoeba路由器通过SQL协议流转到对应的底层数据库并执行SQL。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市远行科技股份有限公司,未经深圳市远行科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310737077.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种设有挡水花边的裤子
- 下一篇:活动改变袖长的上衣