System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据访问方法、装置、存储介质和计算设备制造方法及图纸_技高网

数据访问方法、装置、存储介质和计算设备制造方法及图纸

技术编号:40319932 阅读:16 留言:0更新日期:2024-02-09 14:16
本申请涉及计算机领域,公开了一种数据访问方法、装置、存储介质和计算设备。该方法包括:从访问请求中获取关键字段的值;根据访问请求中关键字段的值确定访问请求所请求访问的数据所在的数据分片;根据访问请求所请求访问的数据所在的数据分片,向待访问的数据库发送访问请求;其中,待访问的数据库包括原数据库和目标数据库中的至少一个,原数据库和目标数据库存储了第一数据分片和第二数据分片,原数据库中的第一数据分片向目标数据库中的第一数据分片进行单向复制;目标数据库中的第二数据分片向原数据库中的第二数据分片进行单向复制;接收待访问的数据库返回的处理结果。本申请的方案可以保证所访问到数据的准确性。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种数据访问方法、装置、存储介质和计算设备


技术介绍

1、在数据库迁移场景下,在将原数据库中的数据迁移到目标数据库之后,为避免目标数据库的性能不稳定等问题导致业务中断,通常会将原数据库和目标数据库并行运行一段时间,以共同承担业务,直至目标数据库平稳运行。在原数据库与目标数据库并行提供数据访问服务期间,原数据库或者目标数据库中的数据可能进行更新。在原数据库与目标数据库并行提供数据访问服务期间,若原数据库中被更新的数据未及时同步到目标数据库,会导致终端从目标数据库中访问到的数据不准确;或者,若目标数据库中被更新的数据未及时同步到原数据库,会导致终端从原数据库中访问到的数据不准确。


技术实现思路

1、本申请提供了一种数据访问方法、装置、存储介质和计算设备,以解决现有技术中在原数据库和目标数据库并行提供数据访问服务期间,终端从原数据库或者目标数据库中访问到的数据不准确的问题。

2、第一方面,本申请提供了一种数据访问方法,包括:从访问请求中获取关键字段的值;根据访问请求中关键字段的值,确定访问请求所请求访问的数据所在的数据分片;根据访问请求所请求访问的数据所在的数据分片,向待访问的数据库发送访问请求;其中,待访问的数据库包括原数据库和目标数据库中的至少一个,原数据库和目标数据库存储了第一数据分片和第二数据分片,原数据库中的第一数据分片向目标数据库中的第一数据分片进行单向复制;目标数据库中的第二数据分片向原数据库中的第二数据分片进行单向复制;接收待访问的数据库返回的处理结果。

3、在原数据库和目标数据库均存储第一数据分片和第二数据分片,而且原数据库中的第一数据分片向目标数据库中的第一数据分片进行单向数据复制,且目标数据库中的第二数据分片向原数据库中的第二数据分片进行单向数据复制。由于单向复制的发起方一侧的数据是先于单向复制的接收方一侧被更新的,即原数据库中的第一数据分片先于目标数据库中的第一数据分片被更新,目标数据库中的第二数据分片先于原数据库中的第二数据分片被更新。在此基础上,从访问请求中提取关键字段的值,并根据关键字段的值确定访问请求所请求访问的数据所在的数据分片(即目标数据分片),并对应将访问请求发送到待访问的数据库,其中,所确定的待访问的数据库可以是在单向复制机制下其中的目标数据分片先被更新的数据库。即,若目标数据分片为第一数据分片,可以从原数据库中的第一数据分片中访问对应的数据,若目标数据分片为第二数据分片,可以从目标数据库中的第二数据分片中访问对应的数据,这样,可以保证从待访问的数据库中所访问到数据的准确性

4、这样,在保证由原数据库和目标数据库并行承担数据访问业务的情况下,不存在访问单向复制机制下被同步的同步数据的情况,即不存在访问原数据库中的第二数据分片和访问目标数据库中的第一数据分片的情况,由此,可以保证从所确定的待访问的数据库中所访问到的数据的准确性,有效解决了现有技术中终端所访问到的数据不准确的问题。

5、在一种可能的实现方式中,根据访问请求中关键字段的值,访问请求所请求访问的数据所在的数据分片的步骤,包括:先确定访问请求中关键字段的值所对应的参考值,例如,可以对访问请求中关键字段的值进行哈希计算,得到访问请求中关键字段的值所对应的参考值;之后,根据关键字段的值所对应的参考值、第一数据分片对应的第一取值范围和第二数据分片对应的第二取值范围,确定访问请求所请求访问的数据所在的数据分片。

6、例如,如果关键字段的值所对应参考值位于第一取值范围内,确定访问请求所请求访问的数据位于第一数据分片;如果关键字段的值所对应参考值位于第二取值范围内,确定访问请求所请求访问的数据位于第二数据分片。

7、又例如,若访问请求中关键字段的值为多个,在确定访问请求中关键字段的多个值中各值对应的参考值后,若多个参考值中包括位于第一数据分片所对应第一取值范围内的参考数值和位于第二数据分片所对应第二取值范围内的参考数值,确定访问请求所请求访问的数据部分位于第一数据分片,部分位于第二数据分片。

8、在一种可能的实现方式中,根据访问请求所请求访问的数据所在的数据分片,向待访问的数据库发送访问请求的步骤包括:根据访问请求所请求访问的数据所在的数据分片、第一数据分片在原数据库与目标数据库之间的单向复制方向、第二数据分片在原数据库与目标数据库之间的单向复制方向,确定待访问的数据库;向待访问的数据库发送访问请求。

9、具体的,在原数据库中的第一数据分片向目标数据库中的第一数据分片进行单向复制,以及目标数据库中的第二数据分片向原数据库中的第二数据分片进行单向复制的情况下,如果访问请求所请求访问的数据在第一数据分片,确定原数据库为待访问的数据库,从而,可以从原数据库中的第一数据分片中访问到对应的数据;如果访问请求所请求访问的数据在第二数据分片,确定目标数据库为待访问的数据库,从而,可以从目标数据库中的第二数据分片中访问到对应的数据;如果访问请求所请求访问的数据部分位于第一数据分片,部分位于第二数据分片,确定原数据库和目标数据库为待访问的数据库,这样,可以从原数据库中的第一数据分片和目标数据库中的第二数据分片中访问到对应的数据。

10、在一种可能的实现方式中,在访问请求所请求访问的数据部分位于第一数据分片,部分位于第二数据分片的情况下,在向待访问的数据库发送访问请求的步骤之前,该方法还包括:将访问请求拆分为第一子请求和第二子请求;其中,第一子请求中关键字段的值所对应的参考值位于第一取值范围内,第二子请求中关键字段的值所对应的参考值位于第二取值范围内;对应的,向原数据库发送第一子请求;向目标数据库发送第二子请求。

11、在如上的实现方式中,由于按照第一取值范围和第二取值范围将访问请求进行了拆分,从而,原数据库在接收到第一子请求后,在第一数据分片中查找和定位第一子请求所请求访问的数据,而不需要在第一数据分片中查找和定位第二子请求所请求访问的数据;同理,目标数据库在接收到第二子请求后,在第二数据分片中查找和定位第二子请求所请求访问的数据,而不需要在第一数据分片中查找和定位第一子请求所请求访问的数据,由此,使得所进行的数据查找更具有针对性,可以提高数据查找和访问效率。

12、在另一种可能的实现方式中,在访问请求中关键字段的多个值所对应多个参考值部分位于第一取值范围内而部分位于第二取值范围内的情况下,向待访问的数据库发送访问请求的步骤,包括:向原数据库发送访问请求;向目标数据库发送访问请求。

13、也就是说,可以不需要将访问请求进行拆分,而由于原数据库中和目标数据库中仅部分数据具有读写权限,因此,可以保证在同时向原数据库和目标数据库进行访问的情况下,也不会获取到重复的数据。

14、在一种可能的实现方式中,该方法还包括:接收服务器发送的第一配置更新信息,服务器在确定目标数据库的稳定性满足预设要求的情况下,将第一数据分片在原数据库与目标数据库之间的单向复制方向变更为由目标数据库中的本文档来自技高网...

【技术保护点】

1.一种数据访问方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据访问请求中关键字段的值,确定所述访问请求所请求访问的数据所在的数据分片,包括:

3.根据权利要求1所述的方法,其特征在于,所述根据所述访问请求所请求访问的数据所在的数据分片,向待访问的数据库发送所述访问请求,包括:

4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1至3中任一项所述的方法,其特征在于,所述待访问的数据库包括目标数据库,所述原数据库兼容的第一语法类型与所述目标数据库兼容的第二语法类型不同;

6.根据权利要求1或2所述的方法,其特征在于,所述向待访问的数据库发送所述访问请求之前,所述方法还包括:

7.一种数据访问装置,其特征在于,

8.根据权利要求7所述的装置,其特征在于,所述数据分片确定模块用于:

9.根据权利要求7所述的装置,其特征在于,所述访问请求发送模块用于:

10.根据权利要求7至9中任一项所述的装置,其特征在于,所述装置还包括:

11.根据权利要求7至9中任一项所述的装置,其特征在于,所述待访问的数据库包括目标数据库,所述原数据库兼容的第一语法类型与所述目标数据库兼容的第二语法类型不同;

12.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:

13.一种计算设备,其特征在于,包括存储器和处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1至6中任一项所述的方法的操作步骤。

14.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,当所述计算机可读指令被处理器执行时,实现如权利要求1至6中任一项所述的方法。

...

【技术特征摘要】

1.一种数据访问方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据访问请求中关键字段的值,确定所述访问请求所请求访问的数据所在的数据分片,包括:

3.根据权利要求1所述的方法,其特征在于,所述根据所述访问请求所请求访问的数据所在的数据分片,向待访问的数据库发送所述访问请求,包括:

4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1至3中任一项所述的方法,其特征在于,所述待访问的数据库包括目标数据库,所述原数据库兼容的第一语法类型与所述目标数据库兼容的第二语法类型不同;

6.根据权利要求1或2所述的方法,其特征在于,所述向待访问的数据库发送所述访问请求之前,所述方法还包括:

7.一种数据访问装置,其特征在于,

8.根据权利要求7所述的装置,其...

【专利技术属性】
技术研发人员:贺承汉熊小军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1