一种在分库分表模式下可视化SQL请求路由的方法技术

技术编号:35916339 阅读:13 留言:0更新日期:2022-12-10 10:58
本发明专利技术涉及数据库技术领域,提供一种在分库分表模式下可视化SQL请求路由的方法,包括:根据用户的链路追踪请求,创建SQL请求;向创建的SQL请求中添加链路追踪注解,将添加链路追踪注解的SQL请求发送至分库分表系统;解析分库分表系统接收的添加链路追踪注解的SQL请求,获得链路唯一标识和片段唯一标识;采用链路唯一标识和片段唯一标识构造链路追踪上下文,将获得的链路追踪上下文在分库分表系统中执行SQL请求的方法中传递;通过在分库分表系统中执行SQL请求的方法中传递的链路追踪上下文向物理数据库发送SQL请求。本发明专利技术在分库分表模式下可视化SQL请求路由的方法,可以在链路追踪系统中看到SQL请求最终在哪些物理数据库上执行,执行耗时是多少。执行耗时是多少。执行耗时是多少。

【技术实现步骤摘要】
一种在分库分表模式下可视化SQL请求路由的方法


[0001]本专利技术涉及数据库
,尤其涉及一种在分库分表模式下可视化SQL请求路由的方法。

技术介绍

[0002]在大数据、高并发的场景下,由于数据库单机可能存在IO瓶颈和CPU瓶颈,会导致数据库的响应变慢,极端情况下,甚至可能导致数据库宕机。分库分表技术在这种情况下诞生。
[0003]根据我们对性能或者容量的要求,对单表进行拆分,使原来存储在一张表的数据均匀分布到若干分片表中,然后将这些分片表均匀分布到物理数据库中。比如,一张用户表,规划容量为存储1亿条数据,将其拆分为100张分片用户表,每张分片用户表存储100万数据。如图1所示,将这100张分片用户表分布到10个物理数据库中,每个物理数据库承载10张分片用户表。分库分表后,数据在物理数据库和分片表中均匀分布。数据分片后,一个SQL请求经过分库分表系统计算后,会将这个SQL请求改写,然后路由到具体的物理数据库上去执行,有可能路由到一个物理数据库执行,也有可能路由到多个物理数据库执行。物理数据库的执行结果,在分库分表系统汇总后返回给请求发起者。
[0004]由于分库分表系统的复杂性,其在实际应用中存在以下不足:1.使用分库分表系统的开发者在发起SQL请求后无法辨识返回的结果从何而来;2.当返回的请求结果不符合预期时无法进行排查。
[0005]因此,如何提供一种分库分表系统中SQL请求路由可视化的方法,使开发者可以根据路由信息,去对应的物理数据库上执行SQL请求验证分库分表系统返回的结果,成为亟待解决的技术问题。

技术实现思路

[0006]有鉴于此,为了克服现有技术的不足,本专利技术提供一种在分库分表模式下可视化SQL请求路由的方法,使开发者能够识别和查看SQL请求被路由到哪些物理数据库,使开发者可以验证SQL请求结果如何产生,便于开发者查看SQL请求在物理数据库上执行的耗时,对物理数据库的性能进行评估。
[0007]一方面,本专利技术提供一种在分库分表模式下可视化SQL请求路由的方法,包括:
[0008]步骤S1:根据用户的链路追踪请求,创建SQL请求;
[0009]步骤S2:向创建的SQL请求中添加链路追踪注解,将添加链路追踪注解的SQL请求发送至分库分表系统;
[0010]步骤S3:解析分库分表系统接收的添加链路追踪注解的SQL请求,获得链路唯一标识和片段唯一标识;
[0011]步骤S4:采用步骤S3获得的链路唯一标识和片段唯一标识构造链路追踪上下文,将获得的链路追踪上下文在分库分表系统中执行SQL请求的方法中传递;
[0012]步骤S5:通过在分库分表系统中执行SQL请求的方法中传递的链路追踪上下文向物理数据库发送SQL请求。
[0013]进一步地,本专利技术在分库分表模式下可视化SQL请求路由的方法的步骤S2中,链路追踪注解由版本号、链路唯一标识、片段唯一标识以及当前跟踪标志组成。
[0014]进一步地,本专利技术在分库分表模式下可视化SQL请求路由的方法的步骤S2中,链路追踪注解的当前跟踪标志用于标记链路数据是否被追踪采样。
[0015]进一步地,本专利技术在分库分表模式下可视化SQL请求路由的方法的步骤S3,包括:在添加链路追踪注解的SQL请求中截取链路追踪注解,并对链路追踪注解字符串进行分割,得到链路唯一标识和片段唯一标识的字符串。
[0016]进一步地,本专利技术在分库分表模式下可视化SQL请求路由的方法的步骤S4中,将获得的链路追踪上下文在分库分表系统中执行SQL请求的方法中传递,包括:
[0017]当链路追踪上下文传递到每个执行SQL请求的方法时,在当前执行SQL请求的方法执行之前,向所述链路追踪上下文中加入当前执行SQL请求的方法的名称、执行开始时间,生成一个新的链路追踪上下文;
[0018]将新的链路追踪上下文传递至下一个执行SQL请求的方法;
[0019]在下一个执行SQL请求的方法执行结束后,回到当前执行SQL请求的方法继续执行,当前执行SQL请求的方法执行结束后,在当前执行SQL请求的方法对应的链路追踪上下文中加入当前执行SQL请求的方法的执行结束时间。
[0020]进一步地,本专利技术在分库分表模式下可视化SQL请求路由的方法的步骤S5,包括:当链路追踪上下文传递至物理数据库请求方法时,向物理数据库发送SQL请求,在传递至物理数据库请求方法的链路追踪上下文中加入物理数据库的名称。
[0021]进一步地,本专利技术在分库分表模式下可视化SQL请求路由的方法,包括:通过分库分表系统中每个执行SQL请求的方法的链路追踪上下文追踪对应的物理数据库以及查看SQL请求在物理数据库上的执行耗时。
[0022]另一方面,本专利技术提供一种计算机存储介质,其上存储计算机程序,所述计算机程序被执行时,执行所述的方法。
[0023]最后,本专利技术还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行所述的方法。
[0024]本专利技术在分库分表模式下可视化SQL请求路由的方法,可通过链路追踪系统查看SQL请求路由到哪些物理数据库,使开发者能够识别和查看SQL请求被路由到哪些物理数据库,使开发者可以验证SQL请求结果如何产生,便于开发者查看SQL请求在物理数据库上执行的耗时,对物理数据库的性能进行评估。
附图说明
[0025]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0026]图1为现有技术中分片用户表分布到多个物理数据库的示意图。
[0027]图2为本专利技术示例性第一实施例在分库分表模式下可视化SQL请求路由的方法的
Hint,TraceParent Hint的格式是${Version}

${TraceID}

${SpanID}

${Flag},其中,Version为版本号、TraceID为链路唯一标识、SpanID为片段唯一标识,Flag为当前跟踪标志。
[0042]本专利技术示例性第三实施例提供一种在分库分表模式下可视化SQL请求路由的方法,本实施例是图2所示方法的优选实施例,本实施例方法的步骤S3,包括:在添加链路追踪注解的SQL请求中截取链路追踪注解,并对链路追踪注解字符串进行分割,得到链路唯一标识和片段唯一标识的字符串。
[0043]本实施例方法在实际应用中,在添加链路追踪注解的SQL请求中截取链路追踪注解TraceParent Hint的字符串,以短横线
“‑”
分割字符串,得到的第二、第三个子字符串即为链路唯一标识TraceID和片段唯一标识SpanID的字符串。
[0044]在实际应用中,当向本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在分库分表模式下可视化SQL请求路由的方法,其特征在于,所述方法,包括:步骤S1:根据用户的链路追踪请求,创建SQL请求;步骤S2:向创建的SQL请求中添加链路追踪注解,将添加链路追踪注解的SQL请求发送至分库分表系统;步骤S3:解析分库分表系统接收的添加链路追踪注解的SQL请求,获得链路唯一标识和片段唯一标识;步骤S4:采用步骤S3获得的链路唯一标识和片段唯一标识构造链路追踪上下文,将获得的链路追踪上下文在分库分表系统中执行SQL请求的方法中传递;步骤S5:通过在分库分表系统中执行SQL请求的方法中传递的链路追踪上下文向物理数据库发送SQL请求。2.根据权利要求1所述的在分库分表模式下可视化SQL请求路由的方法,其特征在于,步骤S2中,链路追踪注解由版本号、链路唯一标识、片段唯一标识以及当前跟踪标志组成。3.根据权利要求2所述的在分库分表模式下可视化SQL请求路由的方法,其特征在于,步骤S2中,链路追踪注解的当前跟踪标志用于标记链路数据是否被追踪采样。4.根据权利要求1所述的在分库分表模式下可视化SQL请求路由的方法,其特征在于,步骤S3,包括:在添加链路追踪注解的SQL请求中截取链路追踪注解,并对链路追踪注解字符串进行分割,得到链路唯一标识和片段唯一标识的字符串。5.根据权利要求1所述的在分库分表模式下可视化SQL请求路由的方法,其特征在于,步骤S4中,将获得的链路追踪上下文在分库分表系统中执行SQL请求的方法中传递,包括:当链路追踪上...

【专利技术属性】
技术研发人员:刘晓敏
申请(专利权)人:中电云数智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1