CN107506369A - 一种数据访问方法及设备 - Google Patents

一种数据访问方法及设备 Download PDF

Info

Publication number
CN107506369A
CN107506369A CN201710547564.0A CN201710547564A CN107506369A CN 107506369 A CN107506369 A CN 107506369A CN 201710547564 A CN201710547564 A CN 201710547564A CN 107506369 A CN107506369 A CN 107506369A
Authority
CN
China
Prior art keywords
sqlid
entity
entity storehouse
access
parameter
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
Application number
CN201710547564.0A
Other languages
English (en)
Inventor
殷舒
刘胜
陈正
祝晓潭
汤成山
任慧玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Union Mobile Pay Co Ltd
Original Assignee
Union Mobile Pay Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Union Mobile Pay Co Ltd filed Critical Union Mobile Pay Co Ltd
Priority to CN201710547564.0A priority Critical patent/CN107506369A/zh
Publication of CN107506369A publication Critical patent/CN107506369A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据访问方法及设备,所述方法包括:获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。所以,有效的解决了现有技术中,存在分片路由规则维护成本高的技术问题,具有减少分片路由规则的修改,降低分片路由规则运维成本的有益效果。

Description

一种数据访问方法及设备
技术领域
本发明涉及电子技术领域,尤其涉及一种数据访问方法及设备。
背景技术
随着互联网业务的发展,交易系统的业务量指数增长。同时,互联网业务经常进行促销活动,会导致某一时间段内交易量激增,出现交易高峰。交易系统目前普遍依赖数据库作为数据持久化的工具,一旦发生交易高峰的情况,数据库操作会成为瓶颈。
因此,分布式数据库的方案普遍被互联网公司使用,将数据库的表横向拆分为多个库的多个表中,以降低每张分片表的处理负载,整体上提升数据库的访问效率,这就需要通过制定分片路由规则以实现分布式架构下数据的访问。
目前已有的数据分片路由方案在实际业务运行过程中,当数据库表需要进行迁移或数据库表分片结构产生变动时,则需要对相应的分片路由规则进行修改,进而增加分片路由规则运维成本和风险。
所以,现有技术中,存在分片路由规则维护成本高的技术问题。
发明内容
本发明实施例提供一种数据访问方法及设备,用于解决现有技术中,存在分片路由规则维护成本高的技术问题。
本发明实施例提供的具体技术方案如下:
获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;
将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
可选的,所述映射关系为每一个实体库表对应至少一个虚拟库表标识。
可选的,所述sqlid至少映射两个不同类型实体库的sql语句时,所述将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果,具体包括:
确定所述实体库表A所在的实体库类型为B;
从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
可选的,所述sqlid对应的每一条sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。
可选的,所述根据所述分片字段和所述sqlid,确定虚拟库表标识,具体包括:
将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
根据所述路由结果确定出虚拟库表标识。
第二方面,本发明实施例提供了一种数据访问设备,包括:
访问控制模块:用于获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
分片路由模块:用于根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
所述访问控制模块还用于:根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;以及将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
可选的,所述映射关系为每一个实体库表对应至少一个虚拟库表标识。
可选的,所述sqlid至少映射两个不同类型实体库的sql语句时,所述访问控制模块,具体用于:
确定所述实体库表A所在的实体库类型为B;
从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
可选的,所述sqlid对应的每一条sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。
可选的,所分片路由模块,具体用于:
将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
根据所述路由结果确定出虚拟库表标识。
基于上述技术方案,本发明实施例中,采用了获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果的技术,也即在本发明实施例中,通过定义虚拟库表标识,增加虚拟库表标识与实体库表的映射关系,当实体库表迁移或实体库表分片结构产生变动时,只需要修改虚拟库表标识与实体库表的映射关系,从而避免了现有技术中需要对相应的分片路由规则进行修改的情况,所以,有效的解决了现有技术中,存在分片路由规则维护成本高的技术问题,具有减少了分片路由规则的修改,降低了分片路由规则运维成本的有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种数据访问方法的流程图;
图2为本发明实施例提供的数据访问方法中步骤S102的具体实现方式流程图;
图3为本发明实施例提供一种虚拟库表标识与实体库表的映射关系;
图4为本发明实施例提供另一种虚拟库表标识与实体库表的映射关系;
图5为本发明实施例提供的数据访问方法中步骤S104的具体实现方式流程图;
图6为本发明实施例提供的一种数据访问设备结构示意图;
图7为本发明实施例提供的另一种数据访问设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本发明文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。
本发明实施例中,如图1所示,数据访问过程如下:
步骤S101:获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
步骤S102:根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
步骤S103:根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;
步骤S104:将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
在具体实施过程中,数据库访问子系统首先执行上述步骤S101,也即获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数。
在实际应用中,在需要进行数据库访问时,数据库访问子系统就会接收到应用系统发送来的数据库访问请求,该访问请求中包括sqlid、分片字段以及数据请求参数,当然,在实际应用中,可以根据需要在访问请求中配置其他的参数,如数据库物理地址等,在此就不一一列举。
在实际应用中,在数据库访问子系统接收到上述数据库访问请求后,数据库访问子系统就会执行步骤S102:根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
请参考图2,在实际应用中,上述步骤S102还可以按照以下方式实现:
步骤S1021:将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
步骤S1022:根据所述路由结果确定出虚拟库表标识。
具体的,数据库访问子系统会根据接收到的数据库访问请求,确定出该数据库访问请求中包含的sqlid、分片字段以及数据请求参数,然后,数据库访问子系统就会调用第三方程序,然后将分片字段和sqlid作为参数输入该第三方程序进行路由计算,在实际应用中,第三方程序可以为脚本方法,该脚本方法的处理逻辑通过编写脚本语言实现,并在高级语言的脚本引擎中执行,如在java运行环境中执行JavaScript脚本语言的方式等,脚本语言的执行效率与本地二进制代码效率相当,且更容易进行脚本升级、由于脚本语言是图灵完备的,因此,可以实现数据库的各种路由规则逻辑处理,对分片路由的支持更加广泛。
在本实施例中,具体以第三方程序为脚本方法为例,那么,将分片字段和sqlid作为参数输入到脚本方法对应的程序中进行路由计算,这里假设路由结果包括虚拟库表标识,虚拟库表标识为实体库表在系统中的逻辑标识,那么,数据库访问子系统就可以从路由结果中确定出与需要访问的实体库表对应的虚拟库表标识。
在数据库访问子系统确定出与需要访问的实体库表对应的虚拟库表标识之后,本实施例中的方法就会执行步骤S103:根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A。
具体的,在数据库访问子系统确定出与需要访问的数据库所在的实体库对应的虚拟库表标识之后,数据库访问子系统就会根据系统中设置的虚拟库表标识与实体库表的映射关系,获得与上述虚拟库表标识对应的实体库表,该实体库表就为需要访问的实体库表,在具体实践过程中,上述映射关系为每一个实体库表对应至少一个虚拟库表标识,这样,当实体库需要扩充或迁移时,只需要修改实体库表与虚拟库表标识的映射关系,而不需要修改分片路由规则。
例如,当每一个实体库表对应两个虚拟库表标识时,可以如图3所示,虚拟库表标识vid1以及虚拟库表标识vid3均映射节点url=A上的实体库表rdb1,虚拟库表标识vid2以及虚拟库表标识vid4均映射节点url=B上的实体库表rdb2;那么,在实体库需要扩充时,如增加节点url=C上的实体库表rdb3,以及节点ur4=D上的实体库表rdb4,这时,只需要修改映射表即可,例如修改成如图4所示的映射关系,即虚拟库表标识vid1映射节点ur1=A上的实体库表rdb1,虚拟库表标识vid2映射节点url=B上的实体库表rdb2,虚拟库表标识vid3映射节点ur1=C上的实体库表rdb3,虚拟库表标识vid4映射节点ur1=D上的实体库表rdb4。
同样的,当实体库需要迁移时,如图3中的节点url=A上的实体库表rdb1需要迁移到节点url=Z上,这时,只需要将映射关系修改为:虚拟库表标识vid1以及虚拟库表标识vid3均映射节点url=Z上的实体库表rdb1。
在实际应用中,每一个实体库表还可以映射3个或4个或10个等多个数量虚拟库表标识,例如,当每一个实体库表对应三个虚拟库表标识时,可以是虚拟库表标识vid1、虚拟库表标识vid2以及虚拟库表标识vid3均映射节点url=A上的实体库表rdb1,虚拟库表标识vid4、虚拟库表标识vid5以及虚拟库表标识vid6均映射节点url=B上的实体库表rdb2,当然,在实际应用中,可以根据具体需要,选择每一个实体库表对应的虚拟库表标识的个数,在此就不一一列举了。
在本发明实施例中,具体以图3所示的虚拟库表标识与实体库表的映射关系为例,并假设在步骤S102中,根据分片字段和sqlid确定出的虚拟库表标识为vid2,那么,根据图3中所示的虚拟库表标识与实体库表的映射关系,就可以得到虚拟库表标识为vid2映射的实体库表为节点url=B上的实体库表rdb2,该实体库表rdb2即为需要访问的实体库表。
在数据库访问子系统通过虚拟库表标识与实体库表的映射关系,得到需要访问的实体库表为实体库表rdb2之后,本实施例中的方法就会执行步骤S104:将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
在本发明实施例中,数据库访问请求中的sqlid作为sql语句的标识,可以定义sqlid映射一个实体库的sql语句,也可以定义sqlid映射至少两个不同类型实体库的sql语句,同时还可以选择sqlid的字节数为10个字节,也可以选择sqlid的字节数为5个字节,在本发明实施例中,具体以sqlid的字节数为10个字节为例。
具体的,在定义sqlid映射一个实体库的sql语句时,数据库访问子系统在得到需要访问的实体库表为实体库表rdb2之后,就可以将sqlid映射的sql语句以及数据请求参数中的语句参数进行组合后访问实体库表rdb2,得到访问结果。
具体的,在定义sqlid映射至少两个不同类型实体库的sql语句时,sqlid与实体库的sql语句为一对多的对应关系,也即每一个sqlid对应至少两条sql语句,这时,请参考图5,步骤S104还可以按照以下方式实施:
步骤S1041:确定所述实体库表A所在的实体库类型为B;
步骤S1042:从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
步骤S1043:将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
这里假设sqlid映射三个不同类型实体库的sql语句,可以定义sqlid分别对应实体库类型为Db2的实体库A的sql语句,对应实体库类型为Mysql的实体库B的sql语句,以及对应实体库类型为Oracle的实体库C的sql语句。并假设实体库表A所在的实体库为实体库A,那么,数据库访问子系统就可以确定出实体库表rdb2所在的实体库类型为Db2,然后,数据库访问子系统就会从sqlid分别映射的sql语句中确定出与实体库类型Db2对应的sql语句作为对实体库表rdb2进行操作的sql语句,然后,数据库访问子系统就会将数据请求中的语句参数以及类型Db2对应的sql语句进行组合,组合后作为访问实体库表rdb2的参数,然后,就将该组合的参数输入到实体库表rdb2中进行数据访问,获得访问结果,然后将访问结果输出到数据库系统中。
在具体实施过程中,还可以选择性设置sqlid对应的sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。例如,当选择sqlid对应的sql语句为针对实体库的多表关联操作时,也即sqlid对应的实体库A的sql语句为针对实体库A的多表关联操作,sqlid对应的实体库B的sql语句为针对实体库B的多表关联操作,那么,可以通过sqlid对应的sql语句对其对应的实体库中任两个数据表,或两个以上的数据表进行关联操作,在此就不做过多讨论。
所以,通过上述方法,定义虚拟库表标识,增加虚拟库表标识与实体库表的映射关系,当实体库表迁移或实体库表分片结构产生变动时,只需要修改虚拟库表标识与实体库表的映射关系,从而避免了现有技术中需要对相应的分片路由规则进行修改的情况,所以,有效的解决了现有技术中,存在分片路由规则维护成本高的技术问题,具有减少了分片路由规则的修改,降低了分片路由规则运维成本的有益效果。
另,本发明利用数据访问的请求参数使用sqlid,使得数据访问请求的报文中不会出现数据库中表和字段的信息,避免了访问数据库表的耗时操作,所以,能够有效的解决现有技术中,存在分片数据访问效率低的技术问题。具有提高的分片数据访问效率的有益效果。
又由于本发明的实施例中sqlid对应的sql语言可以为针对数据库的两表或多表关联操作,所以实现了数据库多表关联数据操作的分片路由。由于传统数据库是针对表和操作类型进行权限控制,本发明实施例使用sqlid的方式进行数据访问,可以按每一条sql语句操作进行权限控制,所以,权限控制力度比传统数据库更细,同时,数据库访问的请求参数使用sqlid而不是sql语句,这样数据库访问请求报文中不会出现数据库中表和字段的信息,也起到了对数据库结构保护的作用。
另外,数据库访问的请求中参数使用sqlid而直接使用sql语句,且sqlid使用不超过10个字节,远远低于使用sql语句作为参数时所需要的网络流量,所以,也节省网络请求的流量。本发明实施例使用脚本方法作为第三方程序,脚本语言在高级语言的运行环境内部执行,分片路由的计算效率更高,所以,进一步提高了分片数据访问的效率。
基于同一发明构思,本发明实施例中提供了一种数据访问设备,该设备数据访问的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图6所示,该设备主要包括:
访问控制模块11:用于获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
分片路由模块12:用于根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
所述访问控制模块11还用于:根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;以及将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
可选的,所述映射关系为每一个实体库表对应至少一个虚拟库表标识。
可选的,所述sqlid至少映射两个不同类型实体库的sql语句时,所述访问控制模块11,具体用于:
确定所述实体库表A所在的实体库类型为B;
从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
可选的,所述sqlid对应的每一条sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。
可选的,所述分片路由模块12,具体用于:
将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
根据所述路由结果确定出虚拟库表标识。
除此之外,在本发明实施例中的数据访问设备中,其对数据库访问进行统一管理,所有sql语句都在访问控制模块集中管理,因此,便于数据库管理员统一管理,更优化数据库访问,路由规则易于修改和扩展,路由规则独立于数据访问模块部署,路由规则修改后不需要数据访问整个模块进行升级。
基于同一发明构思,本发明实施例提供了一种数据访问设备,该设备的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图7所示,该设备主要包括处理器21和存储器22和,其中,存储器22中保存有预设的程序,处理器21读取存储器22中的程序,按照该程序执行以下过程:
获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;
将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
可选的,所述映射关系为每一个实体库表对应至少一个虚拟库表标识。
可选的,所述sqlid至少映射两个不同类型实体库的sql语句时,所述将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果,具体包括:
确定所述实体库表A所在的实体库类型为B;
从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
可选的,所述sqlid对应的每一条sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。
可选的,所述根据所述分片字段和所述sqlid,确定虚拟库表标识,具体包括:
将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
根据所述路由结果确定出虚拟库表标识。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种数据访问方法,其特征在于,包括:
获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;
将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
2.如权利要求1所述的方法,其特征在于,所述映射关系为每一个实体库表对应至少一个虚拟库表标识。
3.如权利要求2所述的方法,其特征在于,所述sqlid至少映射两个不同类型实体库的sql语句时,所述将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果,具体包括:
确定所述实体库表A所在的实体库类型为B;
从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
4.如权利要求3所述的方法,其特征在于,所述sqlid对应的每一条sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。
5.如权利要求4中所述的方法,其特征在于,所述根据所述分片字段和所述sqlid,确定虚拟库表标识,具体包括:
将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
根据所述路由结果确定出虚拟库表标识。
6.一种数据访问设备,其特征在于,包括:
访问控制模块:用于获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;
分片路由模块:用于根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;
所述访问控制模块还用于:根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;以及将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。
7.如权利要求6所述的设备,其特征在于,所述映射关系为每一个实体库表对应至少一个虚拟库表标识。
8.如权利要求7所述的设备,其特征在于,所述sqlid至少映射两个不同类型实体库的sql语句时,所述访问控制模块,具体用于:
确定所述实体库表A所在的实体库类型为B;
从所述sqlid映射的sql语句中,确定出与类型B对应的sql语句C作为对所述实体库表A进行操作的sql语句;
将所述数据请求参数中的语句参数与所述sql语句C进行组合后访问所述实体库表A,获得访问结果。
9.如权利要求8所述的设备,其特征在于,所述sqlid对应的每一条sql语句为针对实体库的单表操作或为针对实体库的多表关联操作。
10.如权利要求9中所述的设备,其特征在于,所述分片路由模块,具体用于:
将所述分片字段和所述sqlid作为参数输入到预设的第三方程序进行路由计算,获得路由结果;
根据所述路由结果确定出虚拟库表标识。
CN201710547564.0A 2017-07-06 2017-07-06 一种数据访问方法及设备 Pending CN107506369A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710547564.0A CN107506369A (zh) 2017-07-06 2017-07-06 一种数据访问方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710547564.0A CN107506369A (zh) 2017-07-06 2017-07-06 一种数据访问方法及设备

Publications (1)

Publication Number Publication Date
CN107506369A true CN107506369A (zh) 2017-12-22

Family

ID=60679531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710547564.0A Pending CN107506369A (zh) 2017-07-06 2017-07-06 一种数据访问方法及设备

Country Status (1)

Country Link
CN (1) CN107506369A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984620A (zh) * 2018-06-14 2018-12-11 中国科学院重庆绿色智能技术研究院 一种动态可扩展的关系型数据库及其设计方法
CN111931234A (zh) * 2020-08-13 2020-11-13 中国民航信息网络股份有限公司 一种数据访问控制方法及系统
CN112115167A (zh) * 2020-08-21 2020-12-22 苏宁云计算有限公司 缓存系统热点数据访问方法、装置、设备和存储介质
CN111931234B (zh) * 2020-08-13 2024-06-04 中国民航信息网络股份有限公司 一种数据访问控制方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187937A (zh) * 2007-10-30 2008-05-28 北京航空航天大学 网格环境下模式复用的异构数据库访问和集成方法
CN101196926A (zh) * 2007-12-29 2008-06-11 中国建设银行股份有限公司 一种数据库访问平台及其访问方法
CN101958838A (zh) * 2010-10-14 2011-01-26 联动优势科技有限公司 数据访问方法及装置
CN106202441A (zh) * 2016-07-13 2016-12-07 腾讯科技(深圳)有限公司 基于关系型数据库的数据处理方法、装置和系统
CN106294565A (zh) * 2016-07-27 2017-01-04 中国农业银行股份有限公司 一种数据库访问方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187937A (zh) * 2007-10-30 2008-05-28 北京航空航天大学 网格环境下模式复用的异构数据库访问和集成方法
CN101196926A (zh) * 2007-12-29 2008-06-11 中国建设银行股份有限公司 一种数据库访问平台及其访问方法
CN101958838A (zh) * 2010-10-14 2011-01-26 联动优势科技有限公司 数据访问方法及装置
CN106202441A (zh) * 2016-07-13 2016-12-07 腾讯科技(深圳)有限公司 基于关系型数据库的数据处理方法、装置和系统
CN106294565A (zh) * 2016-07-27 2017-01-04 中国农业银行股份有限公司 一种数据库访问方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984620A (zh) * 2018-06-14 2018-12-11 中国科学院重庆绿色智能技术研究院 一种动态可扩展的关系型数据库及其设计方法
CN108984620B (zh) * 2018-06-14 2021-02-05 中国科学院重庆绿色智能技术研究院 一种动态可扩展的关系型数据库的设计方法
CN111931234A (zh) * 2020-08-13 2020-11-13 中国民航信息网络股份有限公司 一种数据访问控制方法及系统
CN111931234B (zh) * 2020-08-13 2024-06-04 中国民航信息网络股份有限公司 一种数据访问控制方法及系统
CN112115167A (zh) * 2020-08-21 2020-12-22 苏宁云计算有限公司 缓存系统热点数据访问方法、装置、设备和存储介质
CN112115167B (zh) * 2020-08-21 2022-11-18 苏宁云计算有限公司 缓存系统热点数据访问方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN103902653B (zh) 一种构建数据仓库表血缘关系图的方法和装置
CN107967316A (zh) 一种数据同步方法、设备及计算机可读存储介质
CN103049271B (zh) 自动生成api接口的描述文档的方法和装置
CN104238963B (zh) 一种数据存储方法、存储装置及存储系统
CN105677904B (zh) 基于分布式文件系统的小文件存储方法及装置
CN107391622A (zh) 一种数据访问方法及设备
CN109408590A (zh) 分布式数据库的扩容方法、装置、设备及存储介质
CN106375425A (zh) 分布式缓存的处理方法和装置
CN107704597A (zh) 关系型数据库至Hive的ETL脚本创建方法
CN106375360A (zh) 一种图数据更新方法、装置及系统
CN104461929B (zh) 基于拦截器的分布式数据缓存方法
CN109814896A (zh) 服务器升级方法、装置、计算机系统及可读存储系统
CN112506486A (zh) 搜索系统建立方法、装置、电子设备及可读存储介质
CN110135184B (zh) 一种静态数据脱敏的方法、装置、设备及存储介质
CN104239412B (zh) 数据存储库中应用至存储库的数据映射及相关方法、系统和计算机可读介质
CN104052626A (zh) 配置网元数据的方法、装置和系统
CN107491700A (zh) 一种数据访问方法及设备
CN107506369A (zh) 一种数据访问方法及设备
US11403026B2 (en) Method, device and computer program product for managing storage system
CN104378394A (zh) 一种服务器集群文件的更新方法及装置
CN106990974A (zh) 一种app应用更新方法、装置及电子设备
CN108241499A (zh) 字段值注释的更新方法、装置及计算机可读存储介质
CN110019229B (zh) 数据库配置系统
CN105549907A (zh) 一种根据业务变量计算所需虚拟机磁盘iops的方法
CN110019177A (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

Application publication date: 20171222

RJ01 Rejection of invention patent application after publication