CN109460409A - 数据访问方法和装置 - Google Patents
数据访问方法和装置 Download PDFInfo
- Publication number
- CN109460409A CN109460409A CN201811293284.2A CN201811293284A CN109460409A CN 109460409 A CN109460409 A CN 109460409A CN 201811293284 A CN201811293284 A CN 201811293284A CN 109460409 A CN109460409 A CN 109460409A
- Authority
- CN
- China
- Prior art keywords
- data
- major key
- library
- business major
- business
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003780 insertion Methods 0.000 claims abstract description 10
- 230000037431 insertion Effects 0.000 claims abstract description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据访问方法和装置。该方法包括:接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;根据所述业务主键,确定所述业务数据对象对应的数据分库;在所述数据分库上执行所述数据访问请求对应的操作指令。分散了数据库运行压力,提升了数据库性能。
Description
技术领域
本发明涉及数据库应用技术领域,尤其涉及一种数据访问方法和装置。
背景技术
随着互联网技术的不断发展,各种内容丰富、互动性强、操作更加个性化的网站和应用程序应运而生。而这些网站和应用程序均需要后端的数据库提供相应的内容支持。
目前的数据库技术是基于单一数据库,即,整个***中,只有一个数据库存在,所有的数据都保存在这个数据库中。所有的用户都通过该唯一的数据库完成数据访问过程。
然而,上述数据库运行压力较大,会导致响应延迟,甚至宕机而停止服务。
发明内容
本发明提供一种数据访问方法和装置,用以解决现有技术中因单一数据库运行压力大而导致性能不高的问题。
第一方面,本发明提供一种数据访问方法,包括:
接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;
根据所述业务主键,确定所述业务数据对象对应的数据分库;
在所述数据分库上执行所述数据访问请求对应的操作指令。
可选的,所述根据所述业务主键,确定所述业务数据对象对应的数据分库,包括:
查询业务主键路由表中是否存在所述业务主键,所述业务主键路由表用于指示:各个业务数据对象的业务主键和存储各个业务数据对象的数据分库之间的对应关系;
若所述业务主键路由表中存在所述业务主键,则将所述业务主键路由表中与所述业务主键对应的数据分库作为所述数据分库。
可选的,所述数据访问方法,还包括:
若所述业务主键路由表中不存在所述业务主键,则采用预设的算法确定所述业务主键对应的数据分库,并将所述业务主键和所述数据分库的对应关系添加至所述业务主键路由表中。
可选的,所述采用预设的算法确定所述业务主键对应的数据分库,包括:
从所有数据分库中查找业务主键数量最少的数据分库;
将所述业务主键数量最少的数据分库作为所述业务主键对应的数据分库。
可选的,在确定所述业务数据对象对应的数据分库的步骤之后,所述数据访问方法还包括:
更新所述数据分库所对应的业务主键计数,所述业务主键计数用于指示所述数据分库所对应的业务主键的数量。
可选的,在所述数据分库上执行所述数据访问请求对应的操作指令的步骤之后,所述数据访问方法还包括:
更新所述数据分库的性能计数,所述性能计数用于指示所述数据分库被访问的次数。
可选的,所述数据访问方法还包括:
获取各个数据分库的性能计数;
对性能计数超过预设阈值的数据分库做数据迁移处理。
第二方面,本发明提供一种数据访问装置,包括:接收模块,用于接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;
确定模块,用于根据所述业务主键,确定所述业务数据对象对应的数据分库;
处理模块,用于在所述数据分库上执行所述数据访问请求对应的操作指令。
可选的,所述确定模块,包括:
查询模块,用于查询业务主键路由表中是否存在所述业务主键,所述业务主键路由表用于指示:各个业务数据对象的业务主键和存储各个业务数据对象的数据分库之间的对应关系;
第一确定单元,用于若所述业务主键路由表中存在所述业务主键,则将所述业务主键路由表中与所述业务主键对应的数据分库作为所述数据分库。
可选的,所述确定模块,还包括:
第二确定单元,用于若所述业务主键路由表中不存在所述业务主键,则采用预设的算法确定所述业务主键对应的数据分库,并将所述业务主键和所述数据分库的对应关系添加至所述业务主键路由表中。
可选的,所述第二确定单元,具体用于从所有数据分库中查找业务主键数量最少的数据分库;
将所述业务主键数量最少的数据分库作为所述业务主键对应的数据分库。
可选的,所述装置,还包括:
第一更新模块,用于更新所述数据分库所对应的业务主键计数,所述业务主键计数用于指示所述数据分库所对应的业务主键的数量。
可选的,所述装置,还包括:
第二更新模块,用于更新所述数据分库的性能计数,所述性能计数用于指示所述数据分库被访问的次数。
可选的,所述装置,还包括:
获取模块,用于获取各个数据分库的性能计数;
迁移模块,用于对性能计数超过预设阈值的数据分库做数据迁移处理。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据访问方法。
第四方面,本发明提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来实现上述数据访问方法。
本实施例提供的数据访问方法和装置,在接收到数据访问请求后,从该数据访问请求中获取所要访问的业务数据对象的业务主键,进而根据该业务主键确定存储对应业务数据对象的数据分库,进而连接该数据库,在该数据分库上执行数据访问请求对应的操作指令,分散了数据库运行压力,提升了数据库性能。
附图说明
图1为本发明提供的数据访问方法的实施例一的流程图;
图2为本发明提供的数据访问方法的实施例二的流程图;
图3为本发明提供的数据访问方法的实施例二的另一流程图;
图4为本发明提供的数据访问方法的实施例三的流程图;
图5为本发明提供的数据访问方法的实施例三的另一流程图;
图6为本发明提供的数据访问装置的实施例一的结构示意图;
图7为本发明提供的数据访问装置的实施例二的结构示意图;
图8为本发明提供的数据访问方法的***示意图;
图9为本发明提供的服务器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前的数据库技术是基于单一数据库,即,整个***中,只有一个数据库存在,所有的数据都保存在这个数据库中。用户对***中存储的所有业务对象的访问过程均通过该单一的数据库完成。显而易见,这种方式下,数据库的压力会很大,容易引起响应延迟,甚至宕机而停止服务。
本发明提供一种数据访问方法和装置,将数据库分为多个数据分库,预先建立该数据分库和业务主键的路由关系,在接收到用户输入的携带业务主键的数据访问请求时,根据该业务主键和上述路由关系确定与该业务主键对应的数据分库,进而在该数据分库上执行数据访问对应的操作指令。和现有技术相比,分散了单一数据库的运行压力,降低了发生响应延迟和宕机的可能性。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图1为本发明提供的数据访问方法的实施例一的流程图。如图1所示,本实施例提供的数据访问方法,包括:
S101、接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;
其中,业务数据对象的业务主键具有唯一性,即不同的业务数据对象有不同的业务主键。可选的,可将客户的编号或者订单号作为业务主键。
其中,数据访问请求可以为对业务数据对象的查询请求,可以为对业务数据对象的***请求、可以为对业务数据对象的删除请求,还可为对业务数据对象的更新请求。
S102、根据所述业务主键,确定所述业务数据对象对应的数据分库;
可选的,可预先建立业务主键和数据分库的映射关系,在S101得到当前数据访问请求中携带的业务主键后,可根据上述映射关系获取与该业务主键对应的数据分库,并将该数据分库确定为存储该业务主键所标识的业务数据对象的数据分库。
S103、在所述数据分库上执行所述数据访问请求对应的操作指令。
其中,当数据访问请求为对业务数据对象的查询请求时,S103具体为:在所述数据分库上对所述业务数据对象执行查询操作;当数据访问请求为对业务数据对象的***请求时,S103具体为:在所述数据分库上对所述业务数据对象执行***操作;当数据访问请求为对业务数据对象的删除请求时,S103具体为:在所述数据分库上对所述业务数据对象执行删除操作;当数据访问请求为对业务数据对象的更新请求时,S103具体为:在所述数据分库上对所述业务数据对象执行更新操作。
举例来说,假设数据访问请求为对业务数据对象A的查询请求,S101-S103的过程举例说明:接收用户输入的对业务数据对象A的查询请求,从该查询请求中提取业务数据对象A的业务主键,假设为201810001,根据该业务主键以及预先建立的映射关系,确定与201810001对应的数据分库,即存储该业务数据对象A的数据分库,假设为数据分库1,最后在该数据分库1上执行对数据对象A的查询操作。
由于,本实施例将所有的业务数据按照特定的分类规则分别存储在不同的数据分库中,当用户需要对特定的业务数据对象进行访问时,直接根据该业务数据对象对应的业务主键查询存储该业务数据对象的数据分库,进而在该数据分库上执行相应的操作指令,分散了现有技术中单一数据库的压力,降低了产生响应延迟和宕机等问题的可能性。
此外,在本发明的实施例中,在接收到数据访问请求后,判断该数据访问请求中的业务主键是否为空。若该数据访问请求中的业务主键不为空,则执行上述方法步骤S101-S103;若该数据访问请求中的业务主键为空,则将所述数据访问请求分发至所有的数据分库,由所有的数据分库执行相关数据操作指令,并在所有数据操作完成之后,合并所有数据分库的结果集。
本实施例提供的数据访问方法,在接收到数据访问请求后,从该数据访问请求中获取所要访问的业务数据对象的业务主键,进而根据该业务主键确定存储对应业务数据对象的数据分库,进而连接该数据库,在该数据分库上执行数据访问请求对应的操作指令,分散了数据库运行压力,提升了数据库性能。
图2为本发明提供的数据访问方法的实施例二的流程图。如图2所示,本实施例是进一步对上述实施例中S102的可实现方式的描述,如图2所示,本实施例提供的数据访问方法,包括:
S201、接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种。
其中,S201的实现方式参见上述实施例中S101,本发明在此不再赘述。
S202、查询业务主键路由表中是否存在所述业务主键。
其中,所述业务主键路由表用于指示:各个业务数据对象的业务主键和存储各个业务数据对象的数据分库之间的对应关系。
S203、若所述业务主键路由表中存在所述业务主键,则将所述业务主键路由表中与所述业务主键对应的数据分库作为所述数据分库。
举例来说,经查询,业务主键201810001在上述路由表中对应的数据分库是数据分库1,则表明业务主键201810001对应的业务数据对象存储在数据分库1中,后续在该数据分库1中对该业务数据对象进行相应的操作。
S204、在所述数据分库上执行所述数据访问请求对应的操作指令。
其中,S204的实现方式可参见上述实施例中S103,本发明在此不再赘述。
参见图3所示,为了记录每个数据分库被访问的次数,本实施提供的方法,还包括:
S205、更新所述数据分库的性能计数,所述性能计数用于指示所述数据分库被访问的次数。
可选的,可在每个数据分库的实例信息表中配置性能计数字段,用于表征对应数据库被访问的次数。当某个数据分库被又一次访问时,可将该数据分库的性能计数加一,以使该数据分库的性能计数始终显示的是最新的访问总次数。
S206、获取各个数据分库的性能计数;
S207、对性能计数超过预设阈值的数据分库做数据迁移处理。
可选的,可以实时监控每个数据分库被访问的次数,当某个数据分库被访问的次数超过预设阈值时,可将该数据分库中存储的数据迁到预留的高性能分库上。
本实施例提供的数据访问方法,描述了确定数据分库的一种可实现的方式,即通过预先存储的业务主键路由表来查询该业务主键对应的数据分库。为后续在数据分库上执行对应操作指令的步骤提供了依据。
图4为本发明提供的数据访问方法的实施例三的流程图。本实施例是进一步对上述实施例中S102的另一种可实现方式的描述,如图4所示,本实施例提供的数据访问方法,包括:
S401、接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种。
S402、查询业务主键路由表中是否存在所述业务主键。
其中,S401-S402的实现方式和上述实施例中S201-S202类似,本发明在此不再赘述。
S403、若所述业务主键路由表中不存在所述业务主键,则采用预设的算法确定所述业务主键对应的数据分库,并将所述业务主键和所述数据分库的对应关系添加至所述业务主键路由表中。
一般的,在用户输入的数据访问请求为***请求的情况下,在业务主键路由表中是找不到所要***的业务数据对象对应的业务主键的。这时,可根据用户输入的***请求中携带的所要***的业务数据对象的业务主键,采用预设的算法计算出用于存储该待***的业务数据对象的数据分库。
可选的,采用预设的算法确定所述业务主键对应的数据分库的可实现方式为:从所有数据分库中查找业务主键数量最少的数据分库;将所述业务主键数量最少的数据分库作为所述业务主键对应的数据分库。
S404、在所述数据分库上执行所述数据访问请求对应的操作指令。
其中,S404的实现方式可参见上述实施例中S103,本发明在此不再赘述。
参见图5所示,为了能够获取到每个数据分库当前所存储的业务数据对象总数量,本实施例提供的数据访问方法,S403之后,还包括:
S403’、更新所述数据分库所对应的业务主键计数,所述业务主键计数用于指示所述数据分库所对应的业务主键的数量。
可选的,可在每个数据分库的实例信息表中配置业务主键计数字段,用于表征对应数据库所存储的业务主键的数量。当某个数据分库被***一个新的业务数据对象时,可将该数据分库的业务主键计数加一,以使该数据分库的业务主键计数始终显示的是更新后的数量。
本实施例提供的数据访问方法,描述了确定数据分库的另一种可实现的方式,即在业务主键路由表中查询不到当前数据访问请求中所携带的业务主键时,根据该业务主键采用预设算法确定对应的数据分库,并将该业务主键对应的业务数据对象存储在该数据库中,同时将该业务主键和数据分库的对应关系添加至业务主键路由表中,以便下次访问该业务数据对象时,能够通过业务主键路由表查询到对应的数据分库。另一方面,通过更新所述数据分库所存储的业务对象计数,可使数据分库的业务对象计数始终显示的是业务数据对象的数量被更新后的数量。
图6为本发明提供的数据访问装置的实施例一的结构示意图。如图6所示,本实施例提供的数据访问装置,包括:
接收模块601,用于接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;
确定模块602,用于根据所述业务主键,确定所述业务数据对象对应的数据分库;
处理模块603,用于在所述数据分库上执行所述数据访问请求对应的操作指令。
本实施例提供的数据访问装置,可用于执行图1所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图7为本发明提供的数据访问装置的实施例二的结构示意图。如图7所示,本实施例提供的数据访问装置,所述确定模块602,包括:
查询模块701,用于查询业务主键路由表中是否存在所述业务主键,所述业务主键路由表用于指示:各个业务数据对象的业务主键和存储各个业务数据对象的数据分库之间的对应关系;
第一确定单元702,用于若所述业务主键路由表中存在所述业务主键,则将所述业务主键路由表中与所述业务主键对应的数据分库作为所述数据分库。
可选的,所述确定模块602,还包括:
第二确定单元703,用于若所述业务主键路由表中不存在所述业务主键,则采用预设的算法确定所述业务主键对应的数据分库,并将所述业务主键和所述数据分库的对应关系添加至所述业务主键路由表中。
可选的,所述第二确定单元703具体用于从所有数据分库中查找业务主键数量最少的数据分库;
将所述业务主键数量最少的数据分库作为所述业务主键对应的数据分库。
实施例提供的数据访问装置,还包括:
第一更新模块704,用于更新所述数据分库所对应的业务主键计数,所述业务主键计数用于指示所述数据分库所对应的业务主键的数量。
可选的,本实施例提供的数据访问装置,还包括:
第二更新模块705,用于更新所述数据分库的性能计数,所述性能计数用于指示所述数据分库被访问的次数。
可选的,本实施例提供的数据访问装置,还包括:
获取模块706,用于获取各个数据分库的性能计数;
迁移模块707,用于对性能计数超过预设阈值的数据分库做数据迁移处理。
本实施例提供的数据访问装置,可用于执行图2-图5所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图8为本发明提供的数据访问方法的***示意图。图8所示***包括多个组成部分,分别为:数据访问服务模块、主数据库、管理控制台、容量与性能监控进程、DDL巡逻进程、若干分库(图8以分库1、分库2、…、分库N示意)。
其中,数据访问服务模块可用于执行图1-图5所示任一实施例中的方法。相应的,图6和图7所示数据访问装置为该数据访问服务模块对应的装置。
其中,如图8所示,数据访问服务模块与所要服务的应用程序连接,该应用程序可以是任何需要后台提供数据支持的应用程序,比如保险业务***的应用程序;该应用程序可以承载在台式电脑、笔记本、智能手机或平板电脑等设备上。用户通过该应用程序触发数据访问请求,数据访问服务模块可根据该请求中携带的业务主键寻找对应的数据分库,进而在该数据分库上完成对应的操作指令,分散了单一数据库运行压力,提升了数据库性能。具体实现过程会在下面的实施例中详细描述。
如图8所示,主数据库和数据访问服务模块连接,用于保存本发明运行时所需要的配置信息。比如:分库定义、业务主键路由和DDL历史版本记录等。关于分库定义,可以用分库实例信息表的形式定义分库,分库实例信息表中每一条分库记录都记录了一个已经部署的数据分库,每一条分库记录可包括以下必要字段:
1、数据分库ID:一个数据分库的唯一标识。
2、访问驱动程序名称:数据库访问驱动程序是一个可实例化的抽象数据库驱动程序类的子类,数据库访问驱动程序名称根据本发明实施时采用的开发语言而有不同的表现形式。如:在.NET平台中,数据库访问驱动程序名被配置为“SYSTEM.DATA.SQLCLIENT”。
3、连接字符串:根据数据库访问驱动程序匹配得到的,连接到该数据分库的连接字符串。
4、状态:包括在线、离线和迁移中。
5、版本号:记录该数据分库中数据结构的版本号。
6、业务数据主键计数:数据分库中保存的业务数据对象的数据量。
7、性能计数:用于表征数据分库被访问的次数。
8、容量:数据分库的数据容量。
9、剩余空间:数据分库的数据库剩余空间。
关于业务主键路由,可以用业务主键路由表的形式保存路由关系,业务主键路由表是业务主键与数据分库ID的对应表。可包括以下字段:
1、业务主键:一个业务数据对象的主要标识。
2、数据分库的ID:用于指示不同业务数据对象具体保存于哪一个数据分库,关联于分库实例信息表中的ID。
3、对象状态:正常和迁移中。
4、最后访问时间。
5、操作次数计数。
关于DDL历史版本记录,该DDL历史版本记录用于记录本***中的与数据结构定义有关的操作命令历史。通过这些操作命令的顺序执行,数据分库的数据结构会被同步到最新的状态。DDL历史版本记录表可包括以下字段:
1、DDL版本号:顺序的整数,每次执行DDL语句时,都会被记录为一个新版本。
2、DDL命令内容:大文本内容,记录该次DDL的命令。
图8中的管理控制台用于完成数据分库定义、数据分库状态查询以及DDL命令发布的功能。DDL命令的发布功能可将一个要对全部数据分库执行的DDL命令登记进DDL历史版本记录表中,供DDL巡逻程序使用。
图8中的DDL巡逻程序是一个定时执行的程序。它的功能是检查每个数据分库记录中,版本号是否小于目前登记过的最大DDL版本。如某个数据分库的版本号小于当前最大的版本号,那么在该数据分库上顺序执行尚未执行过的DDL命令,以把该数据分库的数据库结构更新到最新状态。
图8中的容量与性能监控进程是一个定期执行的程序。它的功能是巡回检查所有数据分库的性能和容易参数,并更新到主数据库中的分库示例信息表中。在一些业务主键分库策略中,这些性能容量数据将用来平衡各个数据库的性能压力。做为本发明的一个功能扩展,监控进程可以在动态发现某数据库访问量过大时,或是某业务主键的访问热度过高时,自动启动过热数据对象的迁移过程,比如把数据迁到预留的高性能分库上等。
图9为本发明提供的电子设备的硬件结构示意图。如图9所示,本实施例的电子设备可以包括:
存储器901,用于存储程序指令。
所述处理器902,用于在所述程序指令被执行时实现上述任一实施例描述的数据访问方法,具体实现原理可参见上述实施例,本实施例此处不再赘述。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的数据访问方法。
本发明还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备实施上述任一实施例所述的数据访问方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据访问方法,其特征在于,包括:
接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;
根据所述业务主键,确定所述业务数据对象对应的数据分库;
在所述数据分库上执行所述数据访问请求对应的操作指令。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务主键,确定所述业务数据对象对应的数据分库,包括:
查询业务主键路由表中是否存在所述业务主键,所述业务主键路由表用于指示:各个业务数据对象的业务主键和存储各个业务数据对象的数据分库之间的对应关系;
若所述业务主键路由表中存在所述业务主键,则将所述业务主键路由表中与所述业务主键对应的数据分库作为所述数据分库。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述业务主键路由表中不存在所述业务主键,则采用预设的算法确定所述业务主键对应的数据分库,并将所述业务主键和所述数据分库的对应关系添加至所述业务主键路由表中。
4.根据权利要求3所述的方法,其特征在于,所述采用预设的算法确定所述业务主键对应的数据分库,包括:
从所有数据分库中查找业务主键数量最少的数据分库;
将所述业务主键数量最少的数据分库作为所述业务主键对应的数据分库。
5.根据权利要求3或4所述的方法,其特征在于,在确定所述业务数据对象对应的数据分库的步骤之后,所述数据访问方法还包括:
更新所述数据分库所对应的业务主键计数,所述业务主键计数用于指示所述数据分库所对应的业务主键的数量。
6.根据权利要求要求2-4其中之一所述的方法,其特征在于,在所述数据分库上执行所述数据访问请求对应的操作指令的步骤之后,所述数据访问方法还包括:
更新所述数据分库的性能计数,所述性能计数用于指示所述数据分库被访问的次数。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取各个数据分库的性能计数;
对性能计数超过预设阈值的数据分库做数据迁移处理。
8.一种数据访问装置,其特征在于,包括:
接收模块,用于接收携带有业务主键的数据访问请求,所述业务主键用于标识所述数据访问请求所要访问的业务数据对象,所述数据访问请求包括:对所述业务数据对象的查询请求、***请求、删除请求或者更新请求中的任意一种;
确定模块,用于根据所述业务主键,确定所述业务数据对象对应的数据分库;
处理模块,用于在所述数据分库上执行所述数据访问请求对应的操作指令。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811293284.2A CN109460409A (zh) | 2018-11-01 | 2018-11-01 | 数据访问方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811293284.2A CN109460409A (zh) | 2018-11-01 | 2018-11-01 | 数据访问方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109460409A true CN109460409A (zh) | 2019-03-12 |
Family
ID=65609107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811293284.2A Pending CN109460409A (zh) | 2018-11-01 | 2018-11-01 | 数据访问方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460409A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981767A (zh) * | 2019-03-20 | 2019-07-05 | 浪潮商用机器有限公司 | Hana数据库访问方法、装置、***、设备及存储介质 |
CN110362553A (zh) * | 2019-06-17 | 2019-10-22 | 平安普惠企业管理有限公司 | 大批量征信数据处理方法、电子装置及计算机设备 |
CN112598327A (zh) * | 2020-12-31 | 2021-04-02 | 平安银行股份有限公司 | 一种业务处理***、方法、装置及存储介质 |
CN113778997A (zh) * | 2021-09-26 | 2021-12-10 | 杭州安恒信息技术股份有限公司 | 一种数据库版本管理方法、***及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333512A (zh) * | 2014-10-30 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种分布式内存数据库访问***及方法 |
CN106055587A (zh) * | 2016-05-21 | 2016-10-26 | 乐视控股(北京)有限公司 | 一种分库数据库***及其路由方法 |
CN106802932A (zh) * | 2016-12-28 | 2017-06-06 | 华为技术有限公司 | 一种数据库的路由方法、装置及数据库*** |
US20170161327A1 (en) * | 2015-12-04 | 2017-06-08 | Dell Software, Inc. | Distributed database driver middleware |
CN106815218A (zh) * | 2015-11-27 | 2017-06-09 | 华为技术有限公司 | 数据库访问方法、装置和数据库*** |
CN106933891A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 访问分布式数据库的方法和分布式数据服务的装置 |
-
2018
- 2018-11-01 CN CN201811293284.2A patent/CN109460409A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333512A (zh) * | 2014-10-30 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种分布式内存数据库访问***及方法 |
CN106815218A (zh) * | 2015-11-27 | 2017-06-09 | 华为技术有限公司 | 数据库访问方法、装置和数据库*** |
US20170161327A1 (en) * | 2015-12-04 | 2017-06-08 | Dell Software, Inc. | Distributed database driver middleware |
CN106933891A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 访问分布式数据库的方法和分布式数据服务的装置 |
CN106055587A (zh) * | 2016-05-21 | 2016-10-26 | 乐视控股(北京)有限公司 | 一种分库数据库***及其路由方法 |
CN106802932A (zh) * | 2016-12-28 | 2017-06-06 | 华为技术有限公司 | 一种数据库的路由方法、装置及数据库*** |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981767A (zh) * | 2019-03-20 | 2019-07-05 | 浪潮商用机器有限公司 | Hana数据库访问方法、装置、***、设备及存储介质 |
CN110362553A (zh) * | 2019-06-17 | 2019-10-22 | 平安普惠企业管理有限公司 | 大批量征信数据处理方法、电子装置及计算机设备 |
CN110362553B (zh) * | 2019-06-17 | 2023-09-15 | 爱云保(上海)科技有限公司 | 大批量征信数据处理方法、电子装置及计算机设备 |
CN112598327A (zh) * | 2020-12-31 | 2021-04-02 | 平安银行股份有限公司 | 一种业务处理***、方法、装置及存储介质 |
CN113778997A (zh) * | 2021-09-26 | 2021-12-10 | 杭州安恒信息技术股份有限公司 | 一种数据库版本管理方法、***及设备 |
CN113778997B (zh) * | 2021-09-26 | 2024-02-02 | 杭州安恒信息技术股份有限公司 | 一种数据库版本管理方法、***及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460409A (zh) | 数据访问方法和装置 | |
US6832299B2 (en) | System and method for assigning storage in a storage network in accordance with stored management information | |
CN1517885B (zh) | 关于利用原子性更新的中央高速缓冲存储器的方法和*** | |
US9280370B2 (en) | System structure management device, system structure management method, and program | |
CN102609488B (zh) | 客户端及其数据查询方法、服务端和数据查询*** | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN104067216A (zh) | 用于实施可扩展数据存储服务的***和方法 | |
CN105631035B (zh) | 数据存储方法和装置 | |
CN104424287B (zh) | 数据查询方法和装置 | |
CN101131697A (zh) | 用于使记录在分区之间移动的***和方法 | |
CN109684282A (zh) | 一种构建元数据缓存的方法及装置 | |
CN105701112A (zh) | 一种数据处理方法、装置及*** | |
CN110134681B (zh) | 数据存储与查询方法、装置、计算机设备及存储介质 | |
EP2965492B1 (en) | Selection of data storage settings for an application | |
CN109388351A (zh) | 一种分布式数据存储的方法及相关装置 | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及*** | |
CN103455335A (zh) | 一种多级分类的Web实现方法 | |
EP1909170B1 (en) | Method and system for automatically generating a communication interface | |
US8005844B2 (en) | On-line organization of data sets | |
JP5332488B2 (ja) | 複数の機能エンティティのマップ・ベース通信 | |
US8386953B1 (en) | Accordion user interface | |
KR100658299B1 (ko) | 데이터베이스 구조변화에 대응하는 웹기반 통신망성능감시 방법 | |
CN111680069A (zh) | 数据库访问方法及装置 | |
CN109582697A (zh) | 多表动态关联查询方法、装置、服务器及存储介质 | |
CN110119427A (zh) | 数据管理方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190312 |