[发明专利]分布式PostgreSQL数据库集群分片数据路由方法在审
申请号: | 202211502290.0 | 申请日: | 2022-11-28 |
公开(公告)号: | CN115858671A | 公开(公告)日: | 2023-03-28 |
发明(设计)人: | 矫顺田;郑晓军;高雪玉 | 申请(专利权)人: | 瀚高基础软件股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/242;H04L45/74 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 杨源鑫 |
地址: | 250101 山东省济南市高新区舜泰北路*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 postgresql 数据库 集群 分片 数据 路由 方法 | ||
1.一种分布式PostgreSQL数据库集群分片数据路由方法,其特征在于,所述方法由分布式PostgreSQL数据库集群服务器端的协调节点实现,所述方法包括:
当所述协调节点启动时,自动加载并解析位于数据目录下预设的SQL语句模板文件,以获得多条SQL语句模板,所述SQL语句模板包括SQL语句匹配信息和分片键信息;
将所述多条SQL语句模板存入预设sql_template_list链表数据结构中;
获取来自分布式PostgreSQL数据库集群客户端的SQL语句,并将所述SQL语句与所述预设sql_template_list链表数据结构中存储的所述多条SQL语句模板的SQL语句匹配信息进行匹配,以获取与所述SQL语句所匹配的SQL语句模板;
获取与所述SQL语句所匹配的SQL语句模板的分片键信息,从而确定目标数据节点;
与所述目标数据节点建立连接并对所述SQL语句进行路由。
2.如权利要求1所述的方法,其特征在于,所述将所述多条SQL语句模板存入预设sql_template_list链表数据结构中,包括:
对每条所述SQL语句模板预设权重,并按权重从高到低的顺序,将所述多条SQL语句模板依次存储至所述预设sql_template_list链表数据结构中;
所述将所述SQL语句与所述预设sql_template_list链表数据结构中存储的所述多条SQL语句模板的SQL语句匹配信息进行匹配,包括:
按照存储顺序,依次将所述SQL语句与所述预设sql_template_list链表数据结构中存储的所述多条SQL语句模板的SQL语句匹配信息进行比对。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在获取与所述SQL语句所匹配的SQL语句模板之后,对所述SQL语句模板的权重加1;
根据预设排序周期,按权重从高到低的顺序,调整所述预设sql_template_list链表数据结构中存储的所述多条SQL语句模板的顺序。
4.如权利要求1所述的方法,其特征在于,所述自动加载并解析位于数据目录下预设的SQL语句模板文件,以获得多条SQL语句模板,包括:
自动加载位于数据目录下预设的SQL语句模板文件,针对所述SQL语句模板文件中的每一个待解析SQL模板,根据其标签信息确定模板类型;
当所述模板类型为扩展查询语句,则基于扩展查询语句的语句信息以及分片键信息,构建SQL语句模板;
当所述模板类型为简单查询语句,则基于所述简单查询语句生成正则表达式以形成SQL语句模板。
5.如权利要求4所述的方法,其特征在于,所述将所述SQL语句与所述预设sql_template_list链表数据结构中存储的所述多条SQL语句模板的SQL语句匹配信息进行匹配,包括:
对于所述扩展查询语句对应的SQL语句模板,在扩展查询的绑定过程中与所述SQL语句进行匹配。
6.如权利要求4所述的方法,其特征在于,所述SQL语句模板文件还包括待解析复制表查询语句模板;
所述方法还包括:
解析所述待解析复制表查询语句模板,以获得复制表查询语句模板,并将其存储至所述预设sql_template_list链表数据结构中;
当所述SQL语句与所述复制表查询语句模板匹配时,通过上次数据节点路由连接对所述SQL语句进行路由。
7.如权利要求1所述的方法,其特征在于,所述分片键信息包括分片键位置和分片键类型;
所述根据匹配的SQL语句模板的分片键信息,确定目标数据节点,包括:
根据匹配的SQL语句模板的分片键位置,确定待搜索的目标字段在SQL语句中的位置;
根据匹配的SQL语句模板的分片键类型,确定哈希算法类型;
基于所述哈希算法类型,对所述待搜索的目标字段进行哈希并取模运算,以获得目标数据节点序号;
基于所述目标数据节点序号,查询预设路由连接文件,以获得目标数据节点信息;
基于所述目标数据节点信息,确定目标数据节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于瀚高基础软件股份有限公司,未经瀚高基础软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211502290.0/1.html,转载请声明来源钻瓜专利网。