一种数据库数据访问方法及装置制造方法及图纸

技术编号:16874074 阅读:33 留言:0更新日期:2017-12-23 11:57
本发明专利技术公开了一种数据库数据访问方法及装置,方法包括:对下发的数据操作语句进行解析,获得解析数据;根据解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,所述分片规则包括以用户数据的第一区分要素划分库,在库中以用户数据的第二区分要素划分表,对用户数据分片;执行所述数据操作语句,将执行完后获得的数据返回。本发明专利技术数据库数据访问方法及装置,对数据库的分片规则采用分库分表机制,可以提高对数据库中数据的查询速率,可提高数据库数据存取性能,提升数据访问速率。

A method and device for database data access

The invention discloses a device and a database, data access methods include: analysis of the issued data manipulation statements, obtain the analytical data; according to the data analysis and pre configured fragmentation rules, will correspond to the data in the database operation statement is routed to the data source, the fragmentation rules include the first distinction between elements of library user data, user data in the library in order to distinguish second elements table of user data slice; execute the data manipulation statements, will be performed after the data obtained return. The database data access method and device for database fragmentation rules using split table mechanism, can improve the data in the database query rate, can improve the data access performance, improve data access rate.

【技术实现步骤摘要】
一种数据库数据访问方法及装置
本专利技术涉及数据库存储
,特别是涉及一种数据库数据访问方法及装置。
技术介绍
关系型数据库是指采用了关系模型来组织数据的数据库,简单来说,关系模型就是指二维表格模型,一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。随着云计算发展,数据量不断增加,海量数据以及高并发业务处理给采用关系型数据库的应用系统提出了新的考验,虽然有非关系型数据库的问世在解决该类问题时提供了解决方案,但基于关系型数据库具有存储稳定、查询灵活、兼容性好等特性,仍然是大多数应用方的首选数据库。而现有关系型数据库在面对大量数据及并发业务访问时,数据存取性能低。
技术实现思路
本专利技术的目的是提供一种数据库数据访问方法及装置。提高了数据库数据存取性能,提升了数据访问速率。为实现上述目的,本专利技术提供如下技术方案:一种数据库数据访问方法,包括:对下发的数据操作语句进行解析,获得解析数据;根据所述解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,所述分片规则包括以用户数据的第一区分要素划分库,在库中以用户数据的第二区分要素划分表,对用户数据分片;执行所述数据操作语句,将执行完后获得的数据返回。可选地,采用用于大数据实时处理的开源分布式数据处理系统,对下发的数据操作语句进行解析。可选地,采用单表路由方法、关联表路由方法或者笛卡尔积路由方法,利用解析数据将所述数据操作语句路由至数据库中对应的真实数据源。可选地,所述执行所述数据操作语句包括:采用多线程并发执行所述数据操作语句。可选地,还包括:将多个所述数据操作语句一同装载,一次送到数据库执行。一种数据库数据访问装置,包括:解析模块,用于对下发的数据操作语句进行解析,获得解析数据;路由模块,用于根据所述解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,所述分片规则包括以用户数据的第一区分要素划分库,在库中以用户数据的第二区分要素划分表,对用户数据分片;执行模块,用于执行所述数据操作语句,将执行完后获得的数据返回。可选地,所述解析模块采用用于大数据实时处理的开源分布式数据处理系统,对下发的数据操作语句进行解析。可选地,所述路由模块采用单表路由方法、关联表路由方法或者笛卡尔积路由方法,利用解析数据将所述数据操作语句路由至数据库中对应的真实数据源。可选地,所述执行模块具体用于采用多线程并发执行所述数据操作语句。由上述技术方案可知,本专利技术所提供的数据库数据访问方法及装置,首先对下发的数据操作语句进行解析,获得解析数据,然后根据解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,本方法中分片规则包括以用户数据的第一区分要素划分库,在库中以用户数据的第二区分要素划分表,对用户数据分片,最后执行数据操作语句,将执行完后获得的数据返回。本专利技术数据库数据访问方法及装置,对数据库的分片规则采用分库分表机制,可以提高对数据库中数据的查询速率,可提高数据库数据存取性能,提升数据访问速率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种数据库数据访问方法的流程图;图2为本专利技术实施例提供的一种数据库数据访问装置的示意图。具体实施方式为了使本
的人员更好地理解本专利技术中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。请参考图1,本专利技术实施例提供的一种数据库数据访问方法,包括以下步骤:S10:对下发的数据操作语句进行解析,获得解析数据。对下发的数据操作语句SQL进行解析,得到的解析数据包括所述数据操作语句SQL所要访问的数据的信息。在具体实施时,对应于用户对数据库中数据进行查询操作、插入操作或者删除操作等,数据操作语句可以是数据查询指令、数据插入指令或者数据删除指令等。优选的,本方法中采用用于大数据实时处理的开源分布式数据处理系统,对下发的数据操作语句进行解析。由于对数据操作语句SQL的解析是数据库数据访问的核心,是衡量一个应用系统性能和兼容性最重要的指标,本方法中采用开源分布式数据处理系统作为解析器,保证应用系统的性能,比如可采用Druid数据库连接池。S11:根据所述解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,所述分片规则包括以用户数据的第一区分要素划分库,在库中以数据的第二区分要素划分表,对用户数据分片。本方法中,采用的分片规则包括:以用户数据的第一区分要素划分库,在库中以数据的第二区分要素划分表,对用户数据分片。对于用户数据,基于用户数据的第一区分要素先分库,在划分的库中,基于用户数据的第二区分要素划分表。在具体实施时,进行分库分表的第一区分要素和第二区分要素可以根据实际情况灵活设置。比如,对于用户的订单数据,首先可根据用户ID划分库,将属于同一用户的订单数据划分在一个库中;在对应用户ID的库中,可以根据订单ID分表,将对应于同一订单ID的相关数据记录在同一个表中。又比如,对于用户的账单数据,首先可根据年份划分库,将同一年份的账单数据划分在同一库中;然后可以以月份+用户ID划分表,将同一月份的用户账单数据记录在同一表中进行保存。根据对数据操作语句SQL解析得到的数据,根据分片规则将所述数据操作语句SQL路由至数据库中对应的真实数据源。在具体实施时,可采用单表路由方法、关联表路由方法或者笛卡尔积路由方法,根据得到的解析数据将数据操作语句路由至数据库中对应的真实数据源。单表路由最为简单,但路由结果不一定落入唯一库或表,因为支持根据between和in这样的操作符进行分片,所以最终结果仍然可能落入多个库或表中。关联表可理解为分库分表规则完全一致的主从表,举例说明:订单表和订单详情表都根据订单ID作为分片键,任意时刻分片逻辑均相同。这样的关联查询和单表查询难度和性能相当。笛卡尔积查询最为复杂,因为无法根据关联关系定位分片规则的一致性,所以非关联表的关联查询需要拆解为笛卡尔积组合执行。查询性能较低,而且数据库连接数较高,在使用时需要谨慎使用。S12:执行所述数据操作语句,将执行完成后获得的数据返回。在具体实施时,将数据操作语句SQL路由至数据库中真实数据源后,可采用多线程并发执行数据操作语句SQL,可以提高语句执行效率,提高对数据库的访问速率。进一步优选的,可将多个所述数据操作语句SQL一同装载,一次送到数据库执行,实现批量处理和执行,能够提高语句执行速率,提高数据库数据存取性能。数据操作语句执行完后,将查询结果进行归并处理,并返回用户需要的数据。本实施例数据库数据访问方法,数据库分片规则采用分库分表机制。可以提高对数据库中数据的查询速率,提高数据库数据存取性能,提升数据访问速率;通过采用分库分表机制,将海本文档来自技高网
...
一种数据库数据访问方法及装置

【技术保护点】
一种数据库数据访问方法,其特征在于,包括:对下发的数据操作语句进行解析,获得解析数据;根据所述解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,所述分片规则包括以用户数据的第一区分要素划分库,在库中以用户数据的第二区分要素划分表,对用户数据分片;执行所述数据操作语句,将执行完后获得的数据返回。

【技术特征摘要】
1.一种数据库数据访问方法,其特征在于,包括:对下发的数据操作语句进行解析,获得解析数据;根据所述解析数据以及预配置的分片规则,将所述数据操作语句路由至数据库中对应的数据源,所述分片规则包括以用户数据的第一区分要素划分库,在库中以用户数据的第二区分要素划分表,对用户数据分片;执行所述数据操作语句,将执行完后获得的数据返回。2.根据权利要求1所述的数据库数据访问方法,其特征在于,采用用于大数据实时处理的开源分布式数据处理系统,对下发的数据操作语句进行解析。3.根据权利要求1所述的数据库数据访问方法,其特征在于,采用单表路由方法、关联表路由方法或者笛卡尔积路由方法,利用解析数据将所述数据操作语句路由至数据库中对应的真实数据源。4.根据权利要求1-3任一项所述的数据库数据访问方法,其特征在于,所述执行所述数据操作语句包括:采用多线程并发执行所述数据操作语句。5.根据权利要求4所述的数据库数据访问方法,其特征在于,还包括:将多个所述数据操作语句...

【专利技术属性】
技术研发人员:郭涛
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1