一种数据访问方法及设备技术

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

A data access method and equipment

The invention discloses a data access method and device, the method includes: obtaining a database access request, the request including sqlid, patch and field data request parameters to access the database; according to the divided field and the sqlid, to determine the virtual table logo, the logo is a logical virtual table identifies the entity in the system database; according to the mapping relationship between the virtual table identification and entity library table, obtain the need to access the entity library table A; the SQL statement to the data request statement parameters in sqlid and the corresponding combination of access to the entity database table A, access results. Therefore, it effectively solves the technical problems of high maintenance cost of fragmentation routing rules in existing technology, and has the beneficial effect of reducing the modification of fragmentation routing rules and reducing the operation cost of fragmentation routing rules.

【技术实现步骤摘要】
一种数据访问方法及设备
本专利技术涉及电子
,尤其涉及一种数据访问方法及设备。
技术介绍
随着互联网业务的发展,交易系统的业务量指数增长。同时,互联网业务经常进行促销活动,会导致某一时间段内交易量激增,出现交易高峰。交易系统目前普遍依赖数据库作为数据持久化的工具,一旦发生交易高峰的情况,数据库操作会成为瓶颈。因此,分布式数据库的方案普遍被互联网公司使用,将数据库的表横向拆分为多个库的多个表中,以降低每张分片表的处理负载,整体上提升数据库的访问效率,这就需要通过制定分片路由规则以实现分布式架构下数据的访问。目前已有的数据分片路由方案在实际业务运行过程中,当数据库表需要进行迁移或数据库表分片结构产生变动时,则需要对相应的分片路由规则进行修改,进而增加分片路由规则运维成本和风险。所以,现有技术中,存在分片路由规则维护成本高的技术问题。
技术实现思路
本专利技术实施例提供一种数据访问方法及设备,用于解决现有技术中,存在分片路由规则维护成本高的技术问题。本专利技术实施例提供的具体技术方案如下:获得数据库访问请求,所述数据库访问请求中包括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作为参数输入到预设的第三方程序本文档来自技高网...
一种数据访问方法及设备

【技术保护点】
一种数据访问方法,其特征在于,包括:获得数据库访问请求,所述数据库访问请求中包括sqlid、分片字段以及数据请求参数;根据所述分片字段和所述sqlid,确定虚拟库表标识,所述虚拟库表标识为实体库表在系统中的逻辑标识;根据虚拟库表标识与实体库表的映射关系,获得需要访问的实体库表A;将所述数据请求参数中的语句参数与所述sqlid对应的sql语句进行组合后访问所述实体库表A,获得访问结果。

【技术特征摘要】
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作为参数输入到预设的第三方程序进行路由计算,获得路由结果;根据...

【专利技术属性】
技术研发人员:殷舒刘胜陈正祝晓潭汤成山任慧玲
申请(专利权)人:联动优势科技有限公司
类型:发明
国别省市:北京,11

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

1