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

一种数据处理方法、装置、系统、电子设备及存储介质与流程

2022-03-31 10:20:23 来源:中国专利 TAG:


1.本技术涉及数据库技术领域,尤其涉及一种数据处理方法、装置、系统、电子设备及存储介质。


背景技术:

2.软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。
3.压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整,并对系统资源进行优化。
4.对于生产环境里的数据写的压力测试是会造成在数据库存储上有大量的脏数据,从而直接影响到生产环境里的数据业务的准确性、完整性,也会针对下游基于数据库加工的数据仓库里产生大量的非业务正常生成的数据,因此现有生产环境里进行写压力测试产生的压力测试数据是无法和生产环境进行隔离的。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术实施例提供了一种数据处理方法、装置、系统、电子设备及存储介质。
6.根据本技术实施例的一个方面,提供了一种数据处理方法,包括:
7.接收包括用户唯一标识的数据操作请求;
8.根据所述用户唯一标识确定数据操作位置;
9.在所述数据操作位置执行所述数据操作请求对应的数据操作。
10.可选的,所述根据所述用户唯一标识确定数据操作位置,包括:
11.获取数据库数量以及各所述数据库中的数据表数量;
12.计算所述用户唯一标识对应的哈希值;
13.根据所述数据库数量、数据表数量及所述哈希值确定数据操作对应的数据库标识,和/或,根据所述数据表数量及所述哈希值确定数据操作对应的数据表标识;
14.根据所述数据库标识和/或数据表标识确定所述数据操作位置。
15.可选的,所述根据所述数据库数量、数据表数量及所述哈希值确定数据操作对应的数据库标识,包括:
16.根据以下公式计算数据操作的数据库位置:
[0017][0018]
其中,i
db
表示数据操作对应的数据库标识,hash
id
表示所述用户唯一标识对应的哈希值,long.valueof(hash
id
)表示hash
id
对应的long值, n
db
表示数据库数量,n
t
表示数据表数量;
[0019]
所述根据所述数据表数量及所述哈希值确定数据操作对应的数据表标识,包括:
[0020]
根据以下公式计算数据操作的数据表位置:
[0021]jt
=long.valueof(hash
id
)%
×nt-1,
[0022]
其中,j
t
表示数据操作对应的数据表标识,hash
id
表示所述用户唯一标识对应的哈希值,long.valueof(hash
id
)表示hash
id
对应的long值,n
t
表示数据表数量。
[0023]
可选的,所述根据所述用户唯一标识确定数据操作位置,包括:
[0024]
根据所述用户唯一标识确定用户类型;
[0025]
确定所述用户类型对应的数据库类型,所述数据库类型包括至少两种类型;
[0026]
根据所述数据库类型确定所述数据操作位置。
[0027]
可选的,所述用户唯一标识包括:用户类型标记及用户编号;
[0028]
所述根据所述用户唯一标识确定用户类型,包括:
[0029]
根据所述用户类型标记确定所述用户类型;
[0030]
所述根据所述数据库类型确定所述数据操作位置,包括:
[0031]
根据所述用户编号确定数据操作的数据库标识和/或数据表标识;
[0032]
根据所述数据库标识和/或数据表标识确定所述数据操作位置。
[0033]
可选的,所述数据库中包括至少两种类型的数据表;
[0034]
所述用户唯一标识包括:用户类型标记及用户编号;
[0035]
所述根据所述用户唯一标识确定数据操作位置,包括:
[0036]
根据所述用户类型标记确定数据表类型;
[0037]
根据所述用户编号确定所述数据操作对应的数据表标识;
[0038]
根据所述数据表类型及所述数据表标识确定所述数据操作位置。
[0039]
根据本技术实施例的另一个方面,提供了一种数据处理装置,包括:
[0040]
接收模块,用于接收包括用户唯一标识的数据操作请求;
[0041]
确定模块,用于根据所述用户唯一标识确定数据操作位置;
[0042]
执行模块,用于到所述数据操作位置执行所述数据操作请求对应的数据操作。
[0043]
根据本技术实施例的另一个方面,提供了一种数据处理系统,包括:应用系统,与所述应用系统连接的数据库路由,与所述数据库路由连接的至少两个数据库;
[0044]
所述应用系统,用于将包括用户唯一标识的数据操作请求发送到数据库路由;
[0045]
所述数据库路由,用于根据所述用户唯一标识确定数据操作位置;将所述数据操作请求路由到所述数据操作位置对应的数据库;
[0046]
所述数据库,用于处理所述数据操作请求对应的数据操作。
[0047]
可选的,所述数据操作位置包括数据操作的数据表;
[0048]
所述数据库,还用于到所述数据表处理所述数据操作请求对应的数据操作。
[0049]
根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的
程序,程序运行时执行上述的步骤。
[0050]
根据本技术实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0051]
所述存储器,用于存放计算机程序;
[0052]
所述处理器,用于执行计算机程序时,实现上述方法步骤。
[0053]
根据本技术实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
[0054]
本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
[0055]
基于用户唯一标识将不同用户的数据操作请求路由到不同库表进行数据操作,这样,不同用户分别到不同的数据库表进行数据操作,从而实现数据隔离,避免不同类型数据在混合在一起相互影响,尤其是避免生产数据与测试数据混合在一起,保证各类型数据的准确性和完整性。
附图说明
[0056]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0057]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0058]
图1为本技术实施例提供的一种数据处理方法的流程图;
[0059]
图2为本技术另一实施例提供的一种数据处理方法的流程图;
[0060]
图3为本技术另一实施例提供的一种数据处理方法的流程图;
[0061]
图4为本技术实施例提供的数据库分库分表示意图;
[0062]
图5为本技术另一实施例提供的数据库分表示意图;
[0063]
图6为本技术另一实施例提供的一种数据处理方法的流程图;
[0064]
图7为本技术实施例提供的一种数据处理装置的框图;
[0065]
图8为本技术实施例提供的一种数据处理系统的框图;
[0066]
图9为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0067]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0068]
本技术实施例,将生成数据库和测试数据库分开,通过在数据库上层增加路由功能组件,将生产用户和测试用户的访问请求分别导向对应的数据库中,从而实现生产数据和测试数据隔离。
[0069]
下面首先对本发明实施例所提供的一种数据处理方法进行介绍。
[0070]
图1为本技术实施例提供的一种数据处理方法的流程图。如图1 所示,该方法包括
以下步骤:
[0071]
步骤s11,接收包括用户唯一标识的数据操作请求;
[0072]
步骤s12,根据用户唯一标识确定数据操作位置;
[0073]
步骤s13,在数据操作位置执行数据操作请求对应的数据操作。
[0074]
本实施例中,基于用户唯一标识将不同用户的数据操作请求路由到不同库表进行数据操作,这样,不同用户分别到不同的数据库表进行数据操作,从而实现数据隔离,避免不同类型数据在混合在一起相互影响,尤其是避免生产数据与测试数据混合在一起,保证各类型数据的准确性和完整性。
[0075]
图2为本技术另一实施例提供的一种数据处理方法的流程图。如图2所示,上述步骤s12包括以下步骤:
[0076]
步骤s21,根据用户唯一标识确定用户类型,用户类型包括生产用户或测试用户;
[0077]
步骤s22,确定用户类型对应的数据库类型,数据库类型包括至少两种类型:生产数据库和测试数据库;
[0078]
步骤s23,根据数据库类型确定数据操作位置。
[0079]
可选的,用户唯一标识中包括用户类型标记,基于该标记可确定用户类型。例如,生产用户的用户唯一标识中包括“product”,而测试用户的用户唯一标识包括“bttest”。
[0080]
可选的,不同类型的用户唯一标识对应的字符数不同,例如,生产用户的用户唯一标识包括8位数字,而测试用户的用户唯一标识包括6位数字。或者,不同类型的用户唯一标识对应的字符构成不同,例如,生产用户的用户唯一标识包括至少一位英文字母,而测试用户的用户唯一标识中由纯数字组成。
[0081]
本实施例中,通过用户唯一标识将访问不同类型数据库的用户区分开,使得生产用户仅访问生产数据库,而测试用户仅访问测试数据库,从而实现不同类型数据的隔离。
[0082]
在可选实施例中,用户唯一标识包括:用户类型标记及用户编号。
[0083]
上述步骤s21包括根据用户类型标记确定用户类型。
[0084]
例如,生产用户的用户唯一标识为product_0001,测试用户的唯一标识为bttest0001。
[0085]
上述步骤s23包括以下步骤:
[0086]
步骤a1,根据用户编号确定数据操作的数据库标识和/或数据表标识。
[0087]
步骤a2,根据数据库标识和/或数据表标识确定数据操作位置。
[0088]
当同一类型的数据库只有一个时,可进一步根据用户编号计算数据操作的数据表位置;当同一类型的数据库有多个时,需要根据用户编号计算数据操作的数据库位置及数据表位置。
[0089]
下面对根据用户唯一标识确定数据操作的数据库位置和数据表位置进行详细说明。
[0090]
图3为本技术另一实施例提供的一种数据处理方法的流程图。如图3所示,上述步骤s12包括以下步骤:
[0091]
步骤s31,获取数据库数量以及各数据库中的数据表数量;
[0092]
步骤s32,计算用户唯一标识对应的哈希值;
[0093]
步骤s33,根据数据库数量、数据表数量及哈希值确定数据操作对应的数据库标
识,和/或,根据数据表数量及哈希值确定数据操作对应的数据表标识;
[0094]
步骤s34,根据数据库标识和/或数据表标识确定数据操作位置。
[0095]
可选的,上述步骤s32中,计算用户唯一标识对应的哈希值,可以基于md4、md5、sha系列(包括sha-1、sha-224、sha-256、 sha-384,和sha-512)等哈希算法,将用户唯一标识id转换为固定长度的哈希值hash
id

[0096]
可选的,上述步骤s33中,根据数据库数量、数据表数量及哈希值确定数据操作对应的数据库标识,包括:
[0097]
根据以下公式(1)计算数据操作的数据库位置:
[0098][0099]
其中,i
db
表示数据操作对应的数据库标识,hash
id
表示用户唯一标识对应的哈希值,long.valueof(hash
id
)表示hash
id
对应的long值,n
db
表示数据库数量,n
t
表示数据表数量。
[0100]
其中,long.valueof(hash
id
)表示将hash
id
的值转换成有符号的十进制数值。
[0101]
例如,数据库数量n
db
=24,各数据库标识为db0~db23;各数据库中数据表数量n
t
=50,各数据表标识account_0000~account_0049。若 long.valueof(hash
id
)=50,则则该用户id对应的数据库为db11。
[0102]
上述步骤s33中,根据数据表数量及哈希值确定数据操作对应的数据表标识,包括:
[0103]
根据以下公式(2)计算数据操作的数据表位置:
[0104]jt
=long.valueof(hash
id
)%
×nt-1
ꢀꢀ
(2)
[0105]
其中,j
t
表示数据操作对应的数据表标识,hash
id
表示用户唯一标识对应的哈希值,long.valueof(hash
id
)表示hash
id
对应的long值,n
t
表示数据表数量。
[0106]
若long.valueof(hash
id
)=50,n
t
=50,则j
t
=50%
×
50-1=24,则该用户id对应的数据表为account_0024。
[0107]
本实施例中,基于用户唯一标识确定数据库/表位置的方法可以有多种,可通过其他映射函数将用户位置标识映射为数据库/表标识,在此不一一赘述。
[0108]
其中,可多个用户对应同一数据库的同一数据表,如压力测试用户1、压力测试用户2、压力测试用户3均对应压力数据库db1的数据表account_0000,也可不同用户对应不同数据表。
[0109]
图4为本技术实施例提供的数据库分库分表示意图。如图4所示,线上数据库包括两种类型:线上生产数据库和线上压力数据库。在线上生产库集群中,包括n个生产数据库:分库1~分库n,每个分库中包括50个数据表0000~0049。线上压力库集群中包含一个压力数据库,该压力数据库中包含50个数据表0000~0049。不同用户对应不同的数据库及数据表。
[0110]
正常的生产用户1、2、3对应生产数据库1的数据表0000,生产用户11、21、31对应生产数据库n的数据表0000。
[0111]
压力测试用户1、2、3对应压力数据库中的数据表0000,压力测试用户4、5、6对应压
力数据库中的数据表0049。
[0112]
当同一类型数据库有多个时,根据用户唯一标识可同时计算出该用户唯一标识对应的数据库标识和数据表标识。当同一类型数据库只有一个时,仅根据用户唯一标识计算其对应的数据表标识即可。
[0113]
本实施例中,数据操作可以包括读取数据或写入数据。在可选实施例中,数据操作包括数据写入,数据操作请求包括待写入数据。则上述步骤s13包括:将待写入数据写入到数据操作位置对应数据库的数据表中。
[0114]
例如,对于生产用户1、2、3的数据写入操作,将到线上生产库集群的分库1中数据表0000写入数据。而对于压力测试用户4、5、6 的数据写入操作,将到线上压力数据库的数据表0049写入数据。
[0115]
由此可见,生产用户和测试用户写入数据的库表不同,从而实现生产数据和测试数据的隔离。
[0116]
本技术实施例的数据处理方法,不同类型用户的数据操作也可在同一数据库的不同数据表中,即并不区分生产数据库和测试数据库。但是,数据库中包括至少两种类型的数据表。即数据库中的数据表被分为两类:生产数据表和测试数据表。生产用户的数据操作将被路由到数据库的生产数据表中,而测试用户的数据操作则被路由到数据库的测试数据表中。这样,也可实现不同数据的隔离。
[0117]
图5为本技术另一实施例提供的数据库分表示意图。如图5所示,数据库中数据表0000~0029为生产数据表,而数据表0030~0049为测试数据表。
[0118]
图6为本技术另一实施例提供的一种数据处理方法的流程图。如图6所示,用户唯一标识包括:用户类型标记及用户编号,上述步骤 s12包括:
[0119]
步骤s41,根据用户类型标记确定数据表类型;
[0120]
步骤s42,根据用户编号确定数据操作对应的数据表标识;
[0121]
步骤s43,根据数据表类型及数据表标识确定数据操作位置。
[0122]
其中,步骤s42中可通过上述公式(2)计算数据操作对应的数据表标识,在此不对计算过程进行赘述。
[0123]
可选的,如果用户唯一标识中并不包括用户类型标记,即不同类型用户通过不同字符数或不同字符构成等方式进行区分,也可采用预设哈希算法计算用户唯一标识对应的哈希值,在基于哈希值映射到不同类型的数据表中。
[0124]
通过上述实施例,将不同类型用户进入到不同类型的数据库进行数据操作,使得不同类型数据通过不同数据库或不同数据表隔离,避免不同类型数据之间的相互影响,保证各类型数据的准确性和完整性。
[0125]
下述为本技术装置实施例,可以用于执行本技术方法实施例。
[0126]
图7为本技术实施例提供的一种数据处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,该数据处理装置包括:
[0127]
接收模块71,用于接收包括用户唯一标识的数据操作请求;
[0128]
确定模块72,用于根据用户唯一标识确定数据操作位置;
[0129]
执行模块73,用于到数据操作位置执行数据操作请求对应的数据操作。
[0130]
图8为本技术实施例提供的一种数据处理系统的框图,如图8所示,本实施例的数
据处理系统包括:应用系统81,与应用系统81连接的数据库路由82,与数据库路由82连接的至少两个数据库83、84
……

[0131]
应用系统81,用于将包括用户唯一标识的数据操作请求发送到数据库路由82。
[0132]
数据库路由82,用于根据用户唯一标识确定数据操作位置;将数据操作请求路由到数据操作位置对应的数据库83、84
……

[0133]
数据库83、84
……
,用于处理数据操作请求对应的数据操作。
[0134]
可选的,数据操作位置包括数据操作的数据表。数据库,还用于到数据表处理数据操作请求对应的数据操作。
[0135]
本实施例中,数据库路由基于spring-jdbc框架实现,spring-jdbc 是一套开源的基于spring和jdbc是结合的一个开源访问各类数据库的框架。
[0136]
其中,数据库83可以为生产数据库,数据库84为测试数据库。数据库路由可以基于用户唯一标识进行哈希计算,根据取模结果确定对应的分库分表位置。例如,生产用户1、生产用户2、生产用户3对应生产数据库83的0000表的位置。测试用户具有特殊标记,可将其数据操作指向测试数据库84,如测试用户1、测试用户2、测试用户3 在线上数据库84的0000表的位置。
[0137]
当测试用户进行写压力测试时,将测试数据写入到压力数据库中,这样,可以避免大量压力测试的脏数据影响正常生产数据,实现压力测试数据与生产数据的隔离。
[0138]
本技术实施例还提供一种电子设备,如图9所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504 完成相互间的通信。
[0139]
存储器1503,用于存放计算机程序;
[0140]
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
[0141]
上述电子设备提到的通信总线可以是外设部件互连标准 (peripheral componentinterconnect,p c i)总线或扩展工业标准结构 (extended industry standardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0142]
通信接口用于上述电子设备与其他设备之间的通信。
[0143]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0144]
上述的处理器可以是通用处理器,包括中央处理器(centralprocessing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列 (field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0145]
本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
[0146]
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于
其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0147]
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0148]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献