全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210713695.2 (22)申请日 2022.06.22 (71)申请人 重庆大学 地址 400044 重庆市沙坪坝区沙正 街174号 (72)发明人 李瑞远 姜俊 刘钧文 王棚  陈超 张东霞 李文慧  (74)专利代理 机构 重庆博凯知识产权代理有限 公司 50212 专利代理师 黄河 (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/242(2019.01) G06F 16/2453(2019.01) (54)发明名称 基于SQL引擎的全链路压测数据分流系统及 方法 (57)摘要 本发明涉及全链路压测技术领域, 具体涉及 基于SQL引擎的全链路压测数据分流系统及方 法, 该系统包括解析器、 配置 管理器、 路由器和执 行器; 解析器用于对接入流量的SQL语句进行解 析, 将SQL语句转化为抽象语法树; 配置 管理器用 于设置配置文件, 还用于解析配置文件得到配置 信息, 并将配置信息在内存中缓存起来供路由器 使用; 路由器用于根据配置信息和解析后的抽象 语法树, 得到路由结果, 所述路由结果的内容包 括将SQL语句路由到底层对应的数据库中。 本申 请在扩大适用范围的同时, 还有效的提升了全链 路压测的性能和效率。 权利要求书2页 说明书10页 附图3页 CN 115185989 A 2022.10.14 CN 115185989 A 1.基于SQL引擎的全链路压测数据分流系统, 其特征在于: 包括解析器、 配置管理器、 路 由器和执 行器; 解析器用于对接入流 量的SQL语句进行解析, 将SQ L语句转化为抽象语法树; 配置管理器用于设置配置文件, 还用于解析配置文件得到配置信息, 并将配置信息在 内存中缓存起 来供路由器使用; 路由器用于根据配置信息和解析后的抽象语法树, 得到路由结果, 所述路由结果的内 容包括将SQ L语句路由到底层对应的数据库中; 执行器用于获取路由器的路由结果, 并通过数据库连接技术JDBC调用对应的数据库的 接口, 将SQL语句发送至对应的数据库中, 供对应的数据库执行, 所述对应的数据库为生产 库或影子库; 执行器还用于将执行的结果进行封装, 并以标准JDBC数据库协议的方式返回 给请求方。 2.如权利要求1所述的基于SQL引擎的全链路压测数据分流系统, 其特征在于: 所述配 置文件的内容包括生产库的属性、 影子库的属性、 影子表的属性及 使用的影子算法; 所述影 子算法为基于列的影子路由算法或基于 Hint的影子路由算法。 3.如权利要求2所述的基于SQL引擎的全链路压测数据分流系统, 其特征在于: 当影子 算法为基于列的影子路由算法时, 所述配置文件的内容还包括路由规则, 所述路由规则用 于进行影子库匹配; 路由器对SQL语句路 由时, 针对基于列的影子路由算法, 路由器首先判 断解析语法树ast中涉及的表集合Tast与配置文件中的影子表的集合Tconfig是否有交集, 如 果没有交集, 则直接将此SQL语句路由到生产库中, 否则, 遍历Tast∩Tconfig 中的每一张表t, 若SQL语句中t的影子字段值符合任一路由规则, 则将此SQL语句路由到影 子库中, 并提前 结束迭代过程。 4.如权利要求3所述的基于SQL引擎的全链路压测数据分流系统, 其特征在于: 当影子 算法为基于Hint的影子 路由算法时, 所述配置文件的内容还包括hint 影子标记fconfig; 路由 器对SQL语句路由时, 针对基于Hint的影子路由算法, 路由器逐一验证Fast中每一个键值对 标记是否与fconfig相同, 若相同则路由到影子库中; 若所有 标记都与fconfig不相同, 则路由到 生产库中; 其中, Fast为抽象语法树ast的所有键值对标记集 合。 5.如权利要求4所述的基于SQL引擎的全链路压测数据分流系统, 其特征在于: 解析器 还用于当影子算法为基于Hint的影子算法时, 对配置文件中的hint影子标记fconfig进行解 析, 并生成一个单独的注解节点 挂载到抽象语法树上。 6.如权利要求1所述的基于SQL引擎的全链路压测数据分流系统, 其特征在于: 解析器 内预置有多种不同数据库方言; 所述多种不同数据库方言包括MySQL、 PostgreSQL、 Oracle、 SQL Server、 MariaDB和openGaus s的方言。 7.基于SQL引擎的全链路压测数据分流方法, 其特征在于, 使用权利要求1 ‑6任一项所 述的基于SQ L引擎的全链路压测数据分流系统, 包括以下步骤: S1、 根据需求设置配置文件并存 储在磁盘中; S2、 通过解析器将接入流 量的SQL语句进行解析, 将SQ L语句转化为抽象语法树; S3、 通过配置管理器解析配置文件得到配置信息, 并将配置信息在内存中缓存起来供 路由器使用; S4、 根据配置信息和解析后的抽象语法树, 通过路由器将SQL语句路由到底层对应的数权 利 要 求 书 1/2 页 2 CN 115185989 A 2据库中; S5、 通过执行器接收路由器的路由结果, 并通过数据库连接技术JDBC调用对应数据库 的接口, 将SQ L语句发送至生产库或者影子库中, 供底层数据库执 行; S6、 底层数据库执行结束后, 通过执行器对执行结果进行封装, 并以标准JDBC数据库协 议的方式返回给请求方。 8.如权利 要求7所述的基于SQL引擎的全链路压测数据分流方法, 其特征在于: S1中, 所 述配置文件的内容包括生产库的属性、 影子库的属性、 影子表的属性及使用的影子算法; 其 中, 所述影子算法为基于列的影子路由算法或基于 Hint的影子路由算法。 9.如权利 要求8所述的基于SQL引擎的全链路压测数据分流方法, 其特征在于: S4中, 通 过路由器将SQL语句路由到底层对应的数据库中时, 若配置信息中的影子算法为基于列的 影子路由算法, 则路由器首先判断解析语法树ast中涉及的表 集合Tast与配置文件中的影子 表的集合Tconfig是否有交集, 如果没有交集, 则直接将此SQL语句路由到生 产库中, 否则, 遍历Tast∩Tconfig中的每一张表t, 若SQL语句中t的影子字段值符合任一路由 规则, 则将此SQ L语句路由到影子库中, 并提前 结束迭代过程。 10.如权利要求9所述的基于SQL引擎的全链路压测数据分流方法, 其特征在于: S4中, 通过路由器将SQL语句路由到底层对应的数据库中时, 若配置信息中的影子算法为基于 Hint的影子路由算法, 则路由器逐一验证Fast中每一个键值对标记是否与fconfig相同, 若相 同则路由到影子库中; 若所有标记都与fconfig不相同, 则路由到生产库中; 其中, Fast为抽象 语法树ast的所有键值对标记集 合; fconfig为配置文 件中的hi nt影子标记。权 利 要 求 书 2/2 页 3 CN 115185989 A 3

.PDF文档 专利 基于SQL引擎的全链路压测数据分流系统及方法

文档预览
中文文档 16 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 基于SQL引擎的全链路压测数据分流系统及方法 第 1 页 专利 基于SQL引擎的全链路压测数据分流系统及方法 第 2 页 专利 基于SQL引擎的全链路压测数据分流系统及方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:13:31上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。