一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分库分表的数据处理方法、系统、存储介质及电子设备与流程

2022-10-13 03:34:48 来源:中国专利 TAG:
1.本技术涉及数据处理
技术领域
:,更具体地说,涉及分库分表的数据处理方法、系统、存储介质及电子设备。
背景技术
::2.业务的发展会导致数据量的剧增,而物理数据库的资源是有限的,其所能承载的数据量、数据处理能力将会成为制约系统性能的瓶颈。因此需要合理的数据库架构方案来应对数据量增长,即通过分库分表,以缓解数据库的压力,提高数据操作的性能。3.分库分表是将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。4.目前主流的分库分表方式包括哈希hash方案和范围range方案。其中,hash方案使得原有的存量数据均需要迁移到新表中,导致数据迁移和扩容的过程繁琐。而range方案存在单库单表的热点问题,即,一定范围的数据存在同时发生交易的可能性较高,会导致同一张表的数据交易压力过大,降低同一张表的数据交易的操作性能。5.因此,现有的分库分表的方式会导致数据迁移和数据扩容的过程繁琐和降低数据交易的操作性能。技术实现要素:6.有鉴于此,本技术公开了一种分库分表的数据处理方法、系统、存储介质及电子设备,旨在简化数据迁移和数据扩容的过程,不会出现同一张数据表的数据交易压力过大的情况,提高了数据交易的操作性能。7.为了实现上述目的,其公开的技术方案如下:8.本技术第一方面公开了一种分库分表的数据处理方法,所述方法包括:9.在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中;所述预设全局策略用于根据数据库集群的容量存储范围分配所述待存储数据和根据新增的待存储数据量分配新的数据库的策略;所述容量存储范围为所述数据库集群能容纳的数据容量范围;10.通过预设局部策略,将所述数据库集群中的待存储数据存储在数据库的数据表中;所述预设局部策略为确保在数据增长导致的数据迁移的过程中使数据库集群中的待存储数据均匀分布在数据表中的策略;所述预设局部策略由哈希取模的基数确定;所述哈希取模的基数为所述数据库集群中所有数据表的总数。11.优选的,所述在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中,包括:12.在分库分表的过程中,确定获取到的待存储数据的路由标识;所述路由标识用于表征待存储数据的编号;13.通过预设全局策略确定所述路由标识在数据库集群的容量存储范围;所述数据库集群包括多个数据库;14.将所述待存储数据存储至所述容量存储范围对应的数据库中。15.优选的,所述通过预设局部策略,将所述数据库集群中的待存储数据存储在数据库的数据表中,包括:16.获取所述数据库中数据表的总数;17.确定所述数据表的总数对应的数据表编号;18.确定所述数据库集群中的待存储数据的路由标识;19.通过预设取模公式,对所述数据表编号和所述路由标识进行取模,得到取模结果;所述取模结果用于表征所述待存储数据在所述数据表编号中的存储表编号;20.通过所述取模结果,将所述待存储数据均匀存储至所述数据表编号对应的数据表中。21.优选的,还包括:22.对数据库和数据表进行统一编码操作;所述统一编码操用于确保数据库集群中的待存储数据均匀分布在数据表中。23.优选的,还包括:24.当监测到新增的待存储数据时,通过所述预设全局策略,将所述新增的待存储数据存储至新的数据库中。25.本技术第二方面公开了一种分库分表的数据处理系统,所述系统包括:26.第一存储单元,用于在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中;所述预设全局策略用于根据数据库集群的容量存储范围分配所述待存储数据和根据新增的待存储数据量分配新的数据库的策略;所述容量存储范围为所述数据库集群能容纳的数据容量范围;27.第二存储单元,用于通过预设局部策略,将所述数据库集群中的待存储数据存储在数据库的数据表中;所述预设局部策略为确保在数据增长导致的数据迁移的过程中使数据库集群中的待存储数据均匀分布在数据表中的策略;所述预设局部策略由哈希取模的基数确定;所述哈希取模的基数为所述数据库集群中所有数据表的总数。28.优选的,所述第一存储单元,包括:29.第一确定模块,用于在分库分表的过程中,确定获取到的待存储数据的路由标识;所述路由标识用于表征待存储数据的编号;30.第二确定模块,用于通过预设全局策略确定所述路由标识在数据库集群的容量存储范围;所述数据库集群包括多个数据库;31.第一存储模块,用于将所述待存储数据存储至所述容量存储范围对应的数据库中。32.优选的,所述第二存储单元,包括:33.获取模块,用于获取所述数据库中数据表的总数;34.第三确定模块,用于确定所述数据表的总数对应的数据表编号;35.第四确定模块,用于确定所述数据库集群中的待存储数据的路由标识;36.取模模块,用于通过预设取模公式,对所述数据表编号和所述路由标识进行取模,得到取模结果;所述取模结果用于表征所述待存储数据在所述数据表编号中的存储表编号;37.第二存储模块,用于通过所述取模结果,将所述待存储数据均匀存储至所述数据表编号对应的数据表中。38.本技术第三方面公开了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如第一方面任意一项所述的分库分表的数据处理方法。39.本技术第四方面公开了一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如第一方面任意一项所述的分库分表的数据处理方法。40.经由上述技术方案可知,本技术公开了一种分库分表的数据处理方法、系统、存储介质及电子设备,在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中,预设全局策略用于根据数据库集群的容量存储范围分配待存储数据和根据新增的待存储数据量分配新的数据库的策略,容量存储范围为数据库集群能容纳的数据容量范围,通过预设局部策略,将数据库集群中的待存储数据存储在数据库的数据表中,预设局部策略为确保在数据增长导致的数据迁移的过程中使数据库集群中的待存储数据均匀分布在数据表中的策略,预设局部策略由哈希取模的基数确定,哈希取模的基数为数据库集群中所有数据表的总数。基于上述方案,无需将数据都迁移到新表中,只需通过预设全局策略灵活定义数据容量范围的大小,使得新增的数据容量分配新的数据库,已经分配好的数据不会被再次分配,从而满足不同业务发展阶段数据库集群资源不同的需求,简化数据迁移和数据扩容的过程。通过预设局部策略实现了数据库集群中的待存储数据均匀存储在数据库的数据表中,不会出现同一张数据表的数据交易压力过大的情况,从而提高了数据交易的操作性能。附图说明41.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。42.图1为本技术实施例公开的一种分库分表的数据处理方法的流程示意图;43.图2为本技术实施例公开的数据库集群的示例图;44.图3为本技术实施例公开的一种分库分表的数据处理系统的结构示意图;45.图4为本技术实施例公开的一种电子设备的结构示意图。具体实施方式46.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。47.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。48.由
背景技术
:可知,目前主流的分库分表方式包括hash方案和range方案。其中,hash方案使得原有的存量数据均需要迁移到新表中,导致数据迁移和扩容的过程繁琐。而range方案存在单库单表的热点问题,即,一定范围的数据存在同时发生交易的可能性较高,会导致同一张表的数据交易压力过大,降低同一张表的数据交易的操作性能。因此,现有的分库分表的方式会导致数据迁移和数据扩容的过程繁琐和降低数据交易的操作性能。49.为了解决上述问题,本技术实施例公开了一种分库分表的数据处理方法、系统、存储介质及电子设备,无需将数据都迁移到新表中,只需通过预设全局策略灵活定义数据容量范围的大小,使得新增的数据容量分配新的数据库,已经分配好的数据不会被再次分配,从而满足不同业务发展阶段数据库集群资源不同的需求,简化数据迁移和数据扩容的过程。通过预设局部策略实现了数据库集群中的待存储数据均匀存储在数据库的数据表中,不会出现同一张数据表的数据交易压力过大的情况,从而提高了数据交易的操作性能。具体实现方式通过下述实施例具体进行说明。50.需要说明的是,本技术提供的分库分表的数据处理方法、系统、存储介质及电子设备可用于大数据领域。上述仅为示例,并不对本发明提供的发明名称的应用领域进行限定。51.参考图1所示,为本技术实施例公开的一种分库分表的数据处理方法的流程示意图,该分库分表的数据处理方法主要包括如下步骤:52.s101:在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中;预设全局策略用于根据数据库集群的容量存储范围分配待存储数据和根据新增的待存储数据量分配新的数据库的策略;容量存储范围为数据库集群能容纳的数据容量范围。53.其中,分库分表是指将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。54.预设全局策略为全局范围range策略。全局范围range策略用于在数据规划时把一定范围的数据存放在对应的数据库集群set中,可以根据set所能容纳的数据量上下动态定义该范围的数据。55.通过全局范围range方案的灵活性,将set内数据库和数据表灵活定义容量存储范围的大小,满足不同业务发展阶段set资源不同的需求。56.为了方便理解数据库集群set,这里结合图2进行说明,图2仅为数据库集群的示例图。57.图2中,set_00为数据库集群;database_00、database_01和database_02均为数据库;table_00、table_01、table_02和table_03均为数据表。58.把一个数据库集群定义为数据库单元set,一个set里面包含了一些数据库和数据表,考虑到不同业务发展阶段采购的不同数据库服务器性能的差异,每个数据库可能承载的数据表数量不一致,如图2的例所示,set_00包含3个数据库,database_00容纳4张表(table_00、table_01、table_02和table_03),database_01容纳2张表(table_00和table_01),database_02容纳3张表(table_00、table_01和table_02)。59.具体在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中的过程如下:60.首先,在分库分表的过程中,确定获取到的待存储数据的路由标识;路由标识用于表征待存储数据的编号。61.其中,待存储数据的路由标识可以是客户编号cid,也可以银行卡编号等。不同的数据的路由标识可能不一样。62.例如,若在分库分表的过程中,待存储数据是客户信息,则路由标识为客户编号;若待存储数据是银行卡号信息,则路由标识为银行卡编号。路由标识的确定本技术不做具体限定。63.然后,通过预设全局策略确定路由标识在数据库集群的容量存储范围;数据库集群包括多个数据库。64.最后,将待存储数据存储至容量存储范围对应的数据库中。65.其中,容量存储范围由set所能容纳的数据量动态定义得到。容量存储范围本技术不做具体限定。66.为了方便理解在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中的过程,这里举例进行说明:67.例如,set_00有3个数据库可容纳1000万条数据,则存储1~1000万范围的数据,set_01有5个数据库可容纳2000万条的数据,则存储1000万 1~3000万条数据范围的数据库。其中,set_00和set_01均为数据库集群。68.可选的,当监测到新增的待存储数据时,通过预设全局策略,将新增的待存储数据存储至新的数据库中。69.由于预设全局策略用于根据新增的待存储数据量分配新的数据库,因此,当监测到新增的待存储数据时,可通过预设全局策略将新增的待存储数据存储至新的数据库中。70.s102:通过预设局部策略,将数据库集群中的待存储数据存储在数据库的数据表中;预设局部策略为确保在数据增长导致的数据迁移的过程中使数据库集群中的待存储数据均匀分布在数据表中的策略;预设局部策略由哈希取模的基数确定;哈希取模的基数为数据库集群中所有数据表的总数。71.其中,预设局部策略为局部哈希hash策略。在set中把数据库使用局部hash策略均匀地存放在对应的数据库的数据表中。72.set内所有的表按统一编码,保证了set内数据的均匀分布,解决了数据的热点问题(一定范围的数据存在同时发生交易的可能性较高,会导致同一张表的数据交易压力过大)。73.便于预设局部策略对统一编码的数据进行hash取模。hash取模的基数是set中所有数据表的总数。74.具体通过预设局部策略,将数据库集群中的待存储数据存储在数据库的数据表中的过程如a1-a5所示。75.a1:获取数据库中数据表的总数。76.a2:确定数据表的总数对应的数据表编号。77.a3:确定数据库集群中的待存储数据的路由标识。78.其中,待存储数据的路由标识可以是客户编号cid,也可以银行卡编号等。不同的数据的路由标识可能不一样。例如,若在分库分表的过程中,待存储数据是客户信息,则路由标识为客户编号;若待存储数据是银行卡号信息,则路由标识为银行卡编号。路由标识的确定本技术不做具体限定。79.a4:通过预设取模公式,对数据表编号和路由标识进行取模,得到取模结果;取模结果用于表征待存储数据在数据表编号中的存储表编号。80.其中,预设取模公式的表达式如公式(1)所示。81.t=cid%n(1)82.其中,t为数据库表编号;cid为路由标识;n为数据表的总数。83.a5:通过取模结果,将待存储数据均匀存储至数据表编号对应的数据表中。84.为了方便理解上述通过预设局部策略,将数据库集群中的待存储数据存储在数据库的数据表中的过程,这里举例进行说明:85.例1,9张表的编号为0、1(database_00的table_01)、2、3、4、5、6、7、8,根据cid%9的结果放入对应的表中,10%9=1,放入1号表(database_00的table_01)。86.例2,cid=903,根据预设局部策略,确定为database_00的table3(cid%9=3),如果cid=905,则存放在database_01的第二张表table_01(set内编号为5)。87.可选的,对数据库和数据表进行统一编码操作;统一编码操用于确保数据库集群中的待存储数据均匀分布在数据表中。88.本技术实施例中,无需将数据都迁移到新表中,只需通过预设全局策略灵活定义数据容量范围的大小,使得新增的数据容量分配新的数据库,已经分配好的数据不会被再次分配,从而满足不同业务发展阶段数据库集群资源不同的需求,简化数据迁移和数据扩容的过程。通过预设局部策略实现了数据库集群中的待存储数据均匀存储在数据库的数据表中,不会出现同一张数据表的数据交易压力过大的情况,从而提高了数据交易的操作性能。89.基于上述实施例公开的一种分库分表的数据处理方法,本技术实施例还对应公开了一种分库分表的数据处理系统,如图3所示,该分库分表的数据处理系统包括第一存储单元301和第二存储单元302。90.第一存储单元301,用于在分库分表的过程中,通过预设全局策略将获取到的待存储数据存储至数据库集群中;预设全局策略用于根据数据库集群的容量存储范围分配待存储数据和根据新增的待存储数据量分配新的数据库的策略;容量存储范围为所述数据库集群能容纳的数据容量范围。91.第二存储单元302,用于通过预设局部策略,将数据库集群中的待存储数据存储在数据库的数据表中;预设局部策略为确保在数据增长导致的数据迁移的过程中使数据库集群中的待存储数据均匀分布在数据表中的策略;预设局部策略由哈希取模的基数确定;哈希取模的基数为所述数据库集群中所有数据表的总数。92.进一步的,第一存储单元301包括第一确定模块、第二确定模块和第一存储模块。93.第一确定模块,用于在分库分表的过程中,确定获取到的待存储数据的路由标识;路由标识用于表征待存储数据的编号。94.第二确定模块,用于通过预设全局策略确定路由标识在数据库集群的容量存储范围;数据库集群包括多个数据库。95.第一存储模块,用于将待存储数据存储至所述容量存储范围对应的数据库中。96.进一步的,第二存储单元302包括获取模块、第三确定模块、第四确定模块、处理模块和第二存储模块。97.获取模块,用于获取数据库中数据表的总数。98.第三确定模块,用于确定数据表的总数对应的数据表编号。99.第四确定模块,用于确定数据库集群中的待存储数据的路由标识。100.处理模块,用于通过预设取模公式,对数据表编号和路由标识进行取模,得到取模结果;取模结果用于表征待存储数据在数据表编号中的存储表编号。101.第二存储模块,用于通过取模结果,将待存储数据均匀存储至数据表编号对应的数据表中。102.进一步的,分库分表的数据处理还包括操作单元。103.操作单元,用于对数据库和数据表进行统一编码操作;统一编码操用于确保数据库集群中的待存储数据均匀分布在数据表中。104.进一步的,分库分表的数据处理系统还包括第三存储单元。105.第三存储单元,用于当监测到新增的待存储数据时,通过预设全局策略,将新增的待存储数据存储至新的数据库中。106.本技术实施例中,无需将数据都迁移到新表中,只需通过预设全局策略灵活定义数据容量范围的大小,使得新增的数据容量分配新的数据库,已经分配好的数据不会被再次分配,从而满足不同业务发展阶段数据库集群资源不同的需求,简化数据迁移和数据扩容的过程。通过预设局部策略实现了数据库集群中的待存储数据均匀存储在数据库的数据表中,不会出现同一张数据表的数据交易压力过大的情况,从而提高了数据交易的操作性能。107.本技术实施例还提供了一种存储介质,存储介质包括存储的指令,其中,在指令运行时控制存储介质所在的设备执行上述分库分表的数据处理方法。108.本技术实施例还提供了一种电子设备,其结构示意图如图4所示,具体包括存储器401,以及一个或者一个以上的指令402,其中一个或者一个以上指令402存储于存储器401中,且经配置以由一个或者一个以上处理器403执行所述一个或者一个以上指令402执行上述分库分表的数据处理方法。109.对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。110.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。111.本技术各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。112.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。113.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。114.以上所述仅是本技术的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献