一种分库分表方法、装置、设备及存储介质制造方法及图纸

技术编号:38080848 阅读:9 留言:0更新日期:2023-07-06 08:48
本发明专利技术涉及数据库技术领域,公开了一种分库分表方法、装置、设备及存储介质。所述分库分表方法包括:定义虚拟表,以及定义存储表的存储模式,其中,所述存储模式按固定条件、按表主键或者按时间段来定义;在所述存储模式下,定义各个SQL Server数据库中的存储表,并在所述存储表中定义所述存储表的操作类型;定义各个所述SQL Server数据库的数据库连接参数。本发明专利技术利用了BulkInsert特性的大批量数据快速插入的能力,利用系统提供的可配置化方式来定义分布式虚拟表,实现自动的分库分表,已缓解服务器磁盘IO的压力,同时缓解系统的压力。同时缓解系统的压力。同时缓解系统的压力。

【技术实现步骤摘要】
一种分库分表方法、装置、设备及存储介质


[0001]本专利技术涉及数据库
,尤其涉及一种分库分表方法、装置、设备及存储介质。

技术介绍

[0002]目前现有技术中提供一些类似的自动分库分表方法,但实现方法有所不同,并且不能支持可配置方式的动态路由,在应对大批量数据写入时会碰到一些困难。而一些甲方企业公司更多是依赖于工程师对数据库的理解,写一些逻辑性比较固化的SQL脚本去实现。
[0003]在现有技术中,对于整体分库分表的设计,需要在系统规划之初就要考虑进去,如果在系统上线后再考虑,会存在数据切换大量耗费时间的问题。并且现有技术只能解决基本的查询、更新、删除和插入操作场景,如果是涉及复杂的逻辑性设计,操作起来很困难。

技术实现思路

[0004]本专利技术提供了一种分库分表方法、装置、设备及存储介质,用于解决上述提到的技术问题。
[0005]本专利技术第一方面提供了一种分库分表方法,所述分库分表方法包括:所述方法应用于SQL Server数据库,包括:定义虚拟表,以及定义存储表的存储模式,其中,所述存储模式按固定条件、按表主键或者按时间段来定义;在所述存储模式下,定义各个SQL Server数据库中的存储表,并在所述存储表中定义所述存储表的操作类型;定义各个所述SQL Server数据库的数据库连接参数;在所述虚拟表下定义每个所述SQL Server数据库对应的路由规则,其中,一个SQL Server数据库的数据库连接参数对应一个路由规则;接收到写入的数据时,通过CLR_VSQL方法函数访问所述虚拟表,获取所述数据所满足的目标路由规则,并将所述数据写入至所述目标路由规则所对应的所述SQL Server数据库中的存储表中。
[0006]可选的,在本专利技术第一方面的第一种实现方式中,所述路由规则包括:根据固定的条件值、根据主键值中的计数器来命中的范围、根据日期值命中的范围。
[0007]可选的,在本专利技术第一方面的第二种实现方式中,所述将所述数据写入至所述目标路由规则所对应的所述SQL Server数据库中的存储表中包括:根据配置的不同的返回类型参数值,将所述数据与所述返回类型参数值匹配的格式形式,输出至所述CLR_VSQL方法函数的反馈参数中,所述反馈参数再将所述数据以与所述返回类型参数值匹配的格式形式写入至对应的存储表中。
[0008]可选的,在本专利技术第一方面的第三种实现方式中,所述与所述返回类型参数值匹配的格式形式包括:XML格式、Json格式、第一行与第一列的格式。
[0009]可选的,在本专利技术第一方面的第四种实现方式中,所述数据库连接参数包括:每一个数据库变量的服务器名、数据库名、数据库用户名、数据库密码。
[0010]可选的,在本专利技术第一方面的第五种实现方式中,所述将所述数据写入至所述目标路由规则所对应的所述SQL Server数据库中的存储表中包括:基于Bulk Insert的方式向所述存储表写入数据,其中,包括:将变量表名参数赋值为一具体的表变量名,再根据配置的不同的运行类型参数值,将与所述运行类型参数值所对应的所述格式形式的数据字串赋值给SqlOrData参数,所述SqlOrData参数将所述数据字串写入对应的数据库表中。
[0011]本专利技术还提供一种分库分表装置,所述分库分表装置包括:第一定义单元,用于定义虚拟表,以及定义存储表的存储模式,其中,所述存储模式按固定条件、按表主键或者按时间段来定义;第二定义单元,用于在所述存储模式下,定义各个SQL Server数据库中的存储表,并在所述存储表中定义所述存储表的操作类型;第三定义单元,用于定义各个所述SQL Server数据库的数据库连接参数;第四定义单元,用于在所述虚拟表下定义每个所述SQL Server数据库对应的路由规则,其中,一个SQL Server数据库的数据库连接参数对应一个路由规则;数据处理单元,用于接收到写入的数据时,通过CLR_VSQL方法函数访问所述虚拟表,获取所述数据所满足的目标路由规则,并将所述数据写入至所述目标路由规则所对应的所述SQL Server数据库中的存储表中。
[0012]本专利技术还提供一种分库分表设备,所述分库分表设备包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述分库分表设备执行上述所述的分库分表方法。
[0013]本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述所述的分库分表方法。
[0014]与现有技术相比,本专利技术的有益效果是:本专利技术提供的一种分库分表方法、装置、设备及存储介质,通过可配置的分布式虚拟表方式,提前在系统中定义好分库分表的规则,结合CLR_VSQL方法函数,实现的一套完善的分库分表的方法,本专利技术实现了自动的分库分表,缓解了服务器磁盘IO的压力,同时缓解了系统的压力。
附图说明
[0015]图1为本专利技术实施例中分库分表方法的一个实施例示意图;图2为本专利技术实施例中分库分表装置的一个实施例示意图。
具体实施方式
[0016]本专利技术实施例提供了一种分库分表方法、装置、设备及存储介质,用于解决大数据高并发的技术问题。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除
了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0017]可以理解的是,本专利技术的执行主体可以为分库分表装置,还可以是终端或者服务器,具体此处不做限定。本专利技术实施例以服务器为执行主体为例进行说明。
[0018]在介绍本专利技术的具体实施例之前,先对本专利技术的大致思路进行阐述:本专利技术利用了SQL Server数据库本身的CLR服务器,使用CLR服务创建一个可支持多种模式的方法函数,用户只需要在系统后台完成参数配置和规则定义后,运行此函数(CLR_VSQL),并且传入函数所需的各种参数后,即可以实现系统自动分服分库分表的操作。
[0019]本专利技术支持SQL Server数据库常用的一些基本操作,包括Select(查询)、Insert(写入)、Update(更新)、Delete(删除)等操作,还支持利用Bulk Insert技术的能力批量写入数据。(注:Bulk Insert数据库中可以通过把大数据文件(txt、csv)等快速写入数据库表或者视图中的一种技术)。
[0020]本专利技术支持两种运行模式,一种通过数据库连接参数直接访问数据库的方式,另外一种是通过WCF通讯协议来访问数据库的方式,两种方式都支持跨服务器使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分库分表方法,所述方法应用于SQL Server数据库,其特征在于,包括:定义虚拟表,以及定义存储表的存储模式,其中,所述存储模式按固定条件、按表主键或者按时间段来定义;在所述存储模式下,定义各个SQL Server数据库中的存储表,并在所述存储表中定义所述存储表的操作类型;定义各个所述SQL Server数据库的数据库连接参数;在所述虚拟表下定义每个所述SQL Server数据库对应的路由规则,其中,一个SQL Server数据库的数据库连接参数对应一个路由规则;接收到写入的数据时,通过CLR_VSQL方法函数访问所述虚拟表,获取所述数据所满足的目标路由规则,并将所述数据写入至所述目标路由规则所对应的所述SQL Server数据库中的存储表中。2.根据权利要求1所述的方法,其特征在于,所述路由规则包括:根据固定的条件值、根据主键值中的计数器来命中的范围、根据日期值命中的范围。3.根据权利要求1所述的方法,其特征在于,所述将所述数据写入至所述目标路由规则所对应的所述SQL Server数据库中的存储表中包括:根据配置的不同的返回类型参数值,将所述数据与所述返回类型参数值匹配的格式形式,输出至所述CLR_VSQL方法函数的反馈参数中,所述反馈参数再将所述数据以与所述返回类型参数值匹配的格式形式写入至对应的存储表中。4.根据权利要求3所述的方法,其特征在于,所述与所述返回类型参数值匹配的格式形式包括:XML格式、Json格式、第一行与第一列的格式。5.根据权利要求1所述的方法,其特征在于,所述数据库连接参数包括:每一个数据库变量的服务器名、数据库名、数据库用户名、数据库密码。6.根据权利要求3所述的方法,其特征在于,所述将所述数据写入至所述目标路由规则所对应的所述SQ...

【专利技术属性】
技术研发人员:黄睿
申请(专利权)人:深圳市华磊迅拓科技有限公司
类型:发明
国别省市:

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

1