CN105930387A - 一种基于数据路由、分库分表的数据操作系统及方法 - Google Patents

一种基于数据路由、分库分表的数据操作系统及方法 Download PDF

Info

Publication number
CN105930387A
CN105930387A CN201610232349.7A CN201610232349A CN105930387A CN 105930387 A CN105930387 A CN 105930387A CN 201610232349 A CN201610232349 A CN 201610232349A CN 105930387 A CN105930387 A CN 105930387A
Authority
CN
China
Prior art keywords
data
point
storehouse
database
sql statement
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
CN201610232349.7A
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.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology 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 Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201610232349.7A priority Critical patent/CN105930387A/zh
Publication of CN105930387A publication Critical patent/CN105930387A/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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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/25Integrating or interfacing systems involving database management systems

Landscapes

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

Abstract

本发明涉及一种基于数据路由、分库分表的数据操作系统及方法,其中系统包括顶部的客户端层、中部的DaaS层和底部的数据库层,所述客户端层,其用于提供操作数据;所述DaaS层,其用于利用数据路由分析所述操作数据对应的SQL语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,还用于将操作结果返回至客户端层;所述数据库层,其用于通过提供多种类型的分库数据库对所述DaaS层操作后的操作数据提供存储空间。本发明可以降低单台服务器的负载,同时最大限度的降低了宕机造成的损失,可以实现数据库无限横向扩展。

Description

一种基于数据路由、分库分表的数据操作系统及方法
技术领域
本发明涉及一种数据操作系统及方法,具体的涉及一种基于基于数据路由、分库分表的数据操作系统及方法。
背景技术
在一个应用系统中,对数据读取、存储、更新、删除等是不可缺少的组成部分,首先我们先从以下几个方面理解:1.随着互联网广泛普及,应用系统不间断的运行,应用业务数据也随之增长,海量数据的存储与访问提出新的要求;2.应用系统在保证高效的响应能力时,对数据的查询、插入、更新、删除等操作就显得非常重要;3.单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。从上面可以看出数据操作的重要性及实际问题,通常我们记录数据的方法是:将数据存储单台数据库的表中,数据库提供插入、查询、更新、删除等数据操作,而数据库低层操作时需要进行内存与磁盘文件的读写操作,应用系统中业务处理在内存中进行,而磁盘操作比内存要慢很多。数据操作又是每个业务功能必须的,因此业务功能的处理效率就会受到数据操作影响比较大,在高并发、系统繁忙时,数据操作是应用系统服务的性能瓶颈,制约业务系统处理的吞吐量。当单台服务器中数据库的处理能力达不到应用系统要求时,通常做法是购买一台更强劲、运算效率更快的服务器进行替换实现,而这种成本很大,且原服务器就不会被同时利用支持数据操作。因此需要解决一个技术问题是:在应用系统业务功能及数据,随着时间推移不断扩展增加的情况,如何让数据操作也同样扩展保持且能提高效率,并且能很好地利用原有的服务器,以一种低成本的方式横向扩展。
发明内容
本发明所要解决的技术问题是提供一种基于数据路由、分库分表的数据操作系统及方法,可以满足数据操作的扩展保持且能提高效率。
本发明解决上述技术问题的技术方案如下:一种基于数据路由、分库分表的数据操作系统,包括顶部的客户端层、中部的DaaS层和底部的数据库层,
所述客户端层,其用于提供操作数据;
所述DaaS层,其用于利用数据路由分析所述操作数据对应的SQL语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,还用于将操作结果返回至客户端层;
所述数据库层,其用于通过提供多种类型的分库数据库对所述DaaS层操作后的操作数据提供存储空间。
本发明的有益效果是:本发明一种基于数据路由、分库分表的数据操作系统通过解析传入的SQL语句与相应的分库分表规则实现数据路由,通过切分数据由各个分库数据库分担数据操作来提高整体数据库性能;水平切分数据,可以降低单台服务器的负载,同时最大限度的降低了宕机造成的损失,让数据操作也同样扩展保持且能提高效率,并且能很好地利用原有的服务器,通过数据路由及分库分表规则,数据可以被合理切分到各个数据库中,基于此规则,当数据在不断增长时,只要合理的配合规则与实际规则对应关系,则可以实现数据库无限横向扩展。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述DaaS层包括JDBC模块、SQL解析模块、数据路由模块、JDBC驱动模块和分布式事务管理模块,
所述JDBC模块,其用于将客户端层提供的操作数据传送给SQL解析模块;
所述SQL解析模块,其用于为所述操作数据提供相应的SQL语句;
所述数据路由模块,其用于利用数据路由分析SQL语句取得所述操作数据在所述数据库层中对应的分区,从而从分区中定位出对应的分库分表规则,且根据分库分表规则定位出所述操作数据在分区中对应的分库数据库,还用于执行相应的SQL语句将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作;
所述JDBC驱动模块,其用于为所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作提供JDBC驱动连接,并将操作结果存储至所述数据库层对应的分库数据库中;
所述分布式事务管理模块,其用于通过JDBC驱动模块将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作的结果进行结束集合并、排列和分组,并通过所述JDBC模块将存储、更新、查询和/或删除操作的结果返回给所述客户端层。
采用上述进一步方案的有益效果是:本发明一种基于数据路由、分库分表的数据操作系统中的JDBC模块以JDBC3.0规范切入应用系统中使用,同时可以与客户端层配合;SQL解析模块在运行时通过解析传入SQL语句与相应的分库分表规则实现数据路由,其中SQL必须符合规范,从而可以实现异构数据库的数据操作;数据路由模块可以支持各种提供JDBC驱动规范的数据库,由此可以实现异构数据库,在同一时间进行数据库查询时,支持从不同实现数据库中查询获取数据;分布式事务管理模块由实际的数据库进行数据存储与查询,当对数据被数据切分(分库分表)后,数据被分别存储到各个独立的数据库中,此时需要一个机制保证其事务的ACID,因此系统中用到了分布式事务管理模块进行协调处理。
进一步,所述DaaS层还包括连接管理模块,所述连接管理模块用于控制所述JDBC模块分别与所述SQL解析模块和分布式事务管理模块之间的连接。
进一步,所述DaaS层还包括对象监控模块,所述对象监控模块用于对DaaS层中的当前数据库连接对象、运行中事务对象、语句执行通道对象、语句预编译执行通道对象和数据结果集对象进行监控。
进一步,所述DaaS层还包括在线运行SQL语句模块,所述在线运行SQL语句模块用于通过提供在线SQL语句执行来检测SQL模块提供的SQL语句是否符合分库分表的规则要求。
进一步,所述分库分表规则为字段取模规则,所述字段取模规则具体为对SQL语句中的预设数值字段的值进行取余后从而进行分库。
进一步,所述分库分表规则为字段值列表规则,所述字段值列表规则具体为根据SQL语句中的预设字段的值与分库关系进行数据路由的规则。
基于上述一种基于数据路由、分库分表的数据操作系统,本发明还提供一种基于数据路由、分库分表的数据操作方法。
一种基于数据路由、分库分表的数据操作方法,包括以下步骤,
S1,提供操作数据;
S2,利用数据路由分析所述操作数据对应的SQL语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,并返回操作结果。
本发明的有益效果是:本发明一种基于数据路由、分库分表的数据操作方法通过解析传入的SQL语句与相应的分库分表规则实现数据路由,通过切分数据由各个分库数据库分担数据操作来提高整体数据库性能;水平切分数据,可以降低单台服务器的负载,同时最大限度的降低了了宕机造成的损失,让数据操作也同样扩展保持且能提高效率,并且能很好地利用原有的服务器,通过数据路由及分库分表规则,数据可以被合理切分到各个数据库中,基于此规则,当数据在不断增长时,只要合理的配合规则与实际规则对应关系,则可以实现数据库无限横向扩展。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述S2具体为,
S21,提供操作数据;
S22,为所述操作数据提供相应的SQL语句;
S23,利用数据路由分析SQL语句取得所述操作数据在所述数据库层中对应的分区,从而从分区中定位出对应的分库分表规则,且根据分库分表规则定位出所述操作数据在分区中对应的分库数据库;
S24,所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作提供JDBC驱动连接,并执行相应的SQL语句将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作;
S25,将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作的结果进行结束集合并、排列和分组,并将存储、更新、查询和/或删除操作的结果返回。
进一步,所述分库分表规则为字段取模规则或字段值列表规则,所述字段取模规则具体为对SQL语句中的预设数值字段的值进行取余后从而进行分库,所述字段值列表规则具体为根据SQL语句中的预设字段的值与分库关系进行数据路由的规则。
附图说明
图1为本发明一种基于数据路由、分库分表的数据操作系统的结构框图;
图2为本发明一种基于数据路由、分库分表的数据操作系统的数据路由分库分表结构图;
图3为本发明一种基于数据路由、分库分表的数据操作系统的异构数据库结构图;
图4为本发明一种基于数据路由、分库分表的数据操作系统的异构数据库的横向扩展结构图;
图5为本发明一种基于数据路由、分库分表的数据操作方法的流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种基于数据路由、分库分表的数据操作系统,包括顶部的客户端层、中部的DaaS层(DaaS是Data-as-a-service的缩写,意思是数据即服务,DaaS层也可称为服务层)和底部的数据库层,所述客户端层,其用于提供操作数据;所述DaaS层,其用于利用数据路由分析所述操作数据对应的SQL(Structured Query Language,即结构化查询语言)语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,还用于将操作结果返回至客户端层;所述数据库层,其用于通过提供多种类型的分库数据库对所述DaaS层操作后的操作数据提供存储空间。所述DaaS层包括JDBC模块(JDBC:Java Data Base Connectivity,即java数据库连接,是一种用于执行SQL语句的Java API)、SQL解析模块、数据路由模块、JDBC驱动模块和分布式事务管理模块,所述JDBC模块,其用于将客户端层提供的操作数据传送给SQL解析模块;所述SQL解析模块,其用于为所述操作数据提供相应的SQL语句;所述数据路由模块,其用于利用数据路由分析SQL语句取得所述操作数据在所述数据库层中对应的分区,从而从分区中定位出对应的分库分表规则,且根据分库分表规则定位出所述操作数据在分区中对应的分库数据库,还用于执行相应的SQL语句将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作;所述JDBC驱动模块,其用于为所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作提供JDBC驱动连接,并将操作结果存储至所述数据库层对应的分库数据库中;所述分布式事务管理模块,其用于通过JDBC驱动模块将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作的结果进行结束集合并、排列和分组,并通过所述JDBC模块将存储、更新、查询和/或删除操作的结果返回给所述客户端层。在本具体实施例中,所述数据库层由Oracle RAC,Mysql和Nosql三种类型的数据库组成。所述DaaS层还包括连接管理模块,所述连接管理模块用于控制所述JDBC模块分别与所述SQL解析模块和分布式事务管理模块之间的连接。所述DaaS层还包括对象监控模块,所述对象监控模块用于对DaaS层中的当前数据库连接对象、运行中事务对象、语句执行通道对象、语句预编译执行通道对象和数据结果集对象进行监控。所述DaaS层还包括在线运行SQL语句模块,所述在线运行SQL语句模块用于通过提供在线SQL语句执行来检测SQL模块提供的SQL语句是否符合分库分表的规则要求。所述分库分表规则为字段取模规则或字段值列表规则,所述字段取模规则具体为对SQL语句中的预设数值字段的值进行取余后从而进行分库,所述字段值列表规则具体为根据SQL语句中的预设字段的值与分库关系进行数据路由的规则。
本发明一种基于数据路由、分库分表的数据操作系统中的JDBC模块以JDBC3.0规范切入应用系统中使用,同时可以与客户端层配合;数据路由模块可以支持各种提供JDBC驱动规范的数据库,由此可以实现异构数据库,在同一时间进行数据库查询时,支持从不同实现数据库中查询获取数据;分布式事务管理模块由实际的数据库进行数据存储与查询,当对数据被数据切分(分库分表)后,数据被分别存储到各个独立的数据库中,此时需要一个机制保证其事务的ACID,因此系统中用到了分布式事务管理模块进行协调处理。
在本具体实施例中,SQL解析模块在运行时通过解析传入SQL语句与相应的分库分表规则实现数据路由,其中SQL必须符合规范,从而可以实现异构数据库的数据操作,数据路由分库分表结构如图2所示,其中,路由表示数据路由;分区表示对应数据库中的表;规则表示分库分表规则,即字段取模规则与字段值列表规则;分片表示由分库分表规则切分后的数据;数据库表示实际用于存储数据的分库数据库,支持所有JDBC规范的数据库。
其中,字段取模规则即算术中的取余,此规则主要是根据SQL语句中的某数值字段的值,进行取余后从而进行分库。
例如:数据库层有三个独立分库数据库,每个分库数据库中都有员工表,主键ID根据字段取模规则分库,分库数据库对应关系如下:
余值0对应数据库A;
余值1对应数据库B;
余值2对应数据库C;
当进行数据存储操作时,首先数据路由分析SQL语句,从中取得员工主表名称是员工表(分区),从而定位出其分库分表规则是字段取模规则,规则从分析SQL语句中取得主键ID及其值,并将值与3取余,定位出其实现的分库数据库,从获取其数据库JDBC驱动连接,执行此SQL语句,当余为0的存储在数据库A中、余为1的存储在数据库B中、余为2的存储在数据库C中,从而实现了分库分表。
当进行数据更新、查询、删除时操作时,首先数据路由分析SQL语句,从中取得主表名称是员工表(分区),从而定位出其分库分表规则是字段取模规则,规则从分析SQL语句中取得主表的主键ID及其值,并将值与3取余,定位出其实现的分库数据库,从获取其数据库JDBC驱动连接,执行此SQL语句,达到路由数据库更新、查询、删除功能,最终将结果返回给调用者。
字段值列表规则即根据SQL语句中的某字段的值与分库关系进行数据路由。
例如:数据库层有三个独立分库数据库,每个分库数据库都有员工表,员工表中部门字段信息,其值有:开发部、测试部、后勤部等,根据字段值列表规则分库,分别对应关系如下:
开发部对应数据库A;
业务部对应数据库B;
后勤部对应数据库C;
当进行数据存储操作时,首先数据路由分析SQL语句,从中取得主表名称是员工表(分区),从而定位出其分库分表规则是字段值列表规则,规则从分析SQL语句中取得部门字段及其值,假设值为:开发部,根据字段值对应数据库关系,定位出其对应的是数据库A,从而取得此数据库的JDBC驱动连接,执行此SQL语句,从而达到路由数据存储的作用。
当进行数据进行更新、查询、删除操作时,首先数据路由分析SQL语句,从中取得主表名称是员工表(分区),从而定位出其分库分表规则是字段值列表规则,规则从分析SQL语句中取得部门字段及其值,假设值为:开发部,根据字段值与数据库对应关系,定位出其对应的数据库A,从而取得此数据库的JDBC驱动连接,执行此SQL语句,达到路由数据库更新、查询、删除功能,最终将结果返回给调用者。
在本具体实施例中,数据库层可以支持各种提供JDBC驱动规范的数据库,由此可以实现异构数据库,在同一时间进行数据库查询时,支持从不同实现数据库中查询获取数据,其它数据操作也支持,只需要SQL符合规范,即可形成异构数据库,异构数据库结构如图3所示,图3中最低层的分库数据库分别由不同类型的数据库组成。通过数据路由及分库分表规则,数据可以被合理切分到各个数据库中,基于此规则,当数据在不断增长时,只要合理的配合规则与实际规则对应关系,则可以实现数据库无限横向扩展,其横向扩展结构如图4所示,图4中相对图3新增分片(新)且其对应DB2-表A(新),只通过相应的配置即可以实现横向扩。
基于上述一种基于数据路由、分库分表的数据操作系统,本发明还提供一种基于数据路由、分库分表的数据操作方法。
一种基于数据路由、分库分表的数据操作方法,包括以下步骤,
S1,提供操作数据;
S2,利用数据路由分析所述操作数据对应的SQL语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,并返回操作结果。
具体流程如图5所示,
S21,提供操作数据;
S22,为所述操作数据提供相应的SQL语句;
S23,利用数据路由分析SQL语句取得所述操作数据在所述数据库层中对应的分区,从而从分区中定位出对应的分库分表规则,且根据分库分表规则定位出所述操作数据在分区中对应的分库数据库;
S24,所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作提供JDBC驱动连接,并执行相应的SQL语句将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作;
S25,将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作的结果进行结束集合并、排列和分组,并将存储、更新、查询和/或删除操作的结果返回。
所述分库分表规则为字段取模规则或字段值列表规则,所述字段取模规则具体为对SQL语句中的预设数值字段的值进行取余后从而进行分库,所述字段值列表规则具体为根据SQL语句中的预设字段的值与分库关系进行数据路由的规则。
本发明一种基于数据路由、分库分表的数据操作方法通过解析传入的SQL语句与相应的分库分表规则实现数据路由,通过切分数据由各个分库数据库分担数据操作来提高整体数据库性能;水平切分数据,可以降低单台服务器的负载,同时最大限度的降低了宕机造成的损失,让数据操作也同样扩展保持且能提高效率,并且能很好地利用原有的服务器,通过数据路由及分库分表规则,数据可以被合理切分到各个数据库中,基于此规则,当数据在不断增长时,只要合理的配合规则与实际规则对应关系,则可以实现数据库无限横向扩展。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于数据路由、分库分表的数据操作系统,其特征在于:包括顶部的客户端层、中部的DaaS层和底部的数据库层,
所述客户端层,其用于提供操作数据;
所述DaaS层,其用于利用数据路由分析所述操作数据对应的SQL语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,还用于将操作结果返回至客户端层;
所述数据库层,其用于通过提供多种类型的分库数据库对所述DaaS层操作后的操作数据提供存储空间。
2.根据权利要求1所述的一种基于数据路由、分库分表的数据操作系统,其特征在于:所述DaaS层包括JDBC模块、SQL解析模块、数据路由模块、JDBC驱动模块和分布式事务管理模块,
所述JDBC模块,其用于将客户端层提供的操作数据传送给SQL解析模块;
所述SQL解析模块,其用于为所述操作数据提供相应的SQL语句;
所述数据路由模块,其用于利用数据路由分析SQL语句取得所述操作数据在所述数据库层中对应的分区,从而从分区中定位出对应的分库分表规则,且根据分库分表规则定位出所述操作数据在分区中对应的分库数据库,还用于执行相应的SQL语句将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作;
所述JDBC驱动模块,其用于为所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作提供JDBC驱动连接,并将操作结果存储至所述数据库层对应的分库数据库中;
所述分布式事务管理模块,其用于通过JDBC驱动模块将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作的结果进行结束集合并、排列和分组,并通过所述JDBC模块将存储、更新、查询和/或删除操作的结果返回给所述客户端层。
3.根据权利要求2所述的一种基于数据路由、分库分表的数据操作系统,其特征在于:所述DaaS层还包括连接管理模块,所述连接管理模块用于控制所述JDBC模块分别与所述SQL解析模块和分布式事务管理模块之间的连接。
4.根据权利要求2所述的一种基于数据路由、分库分表的数据操作系统,其特征在于:所述DaaS层还包括对象监控模块,所述对象监控模块用于对DaaS层中的当前数据库连接对象、运行中事务对象、语句执行通道对象、语句预编译执行通道对象和数据结果集对象进行监控。
5.根据权利要求2所述的一种基于数据路由、分库分表的数据操作系统,其特征在于:所述DaaS层还包括在线运行SQL语句模块,所述在线运行SQL语句模块用于通过提供在线SQL语句执行来检测SQL模块提供的SQL语句是否符合分库分表的规则要求。
6.根据权利要求1至5任一项所述的一种基于基于数据路由、分库分表的数据操作系统,其特征在于:所述分库分表规则为字段取模规则,所述字段取模规则具体为对SQL语句中的预设数值字段的值进行取余后从而进行分库。
7.根据权利要求1至5任一项所述的一种基于基于数据路由、分库分表的数据操作系统,其特征在于:所述分库分表规则为字段值列表规则,所述字段值列表规则具体为根据SQL语句中的预设字段的值与分库关系进行数据路由的规则。
8.一种基于数据路由、分库分表的数据操作方法,其特征在于:包括以下步骤,
S1,提供操作数据;
S2,利用数据路由分析所述操作数据对应的SQL语句得出分库分表规则,并按分库分表规则定位出所述操作数据在所述数据库层中相应的分库数据库,通过执行相应的SQL语句将所述操作数据在分库数据库中进行操作,并返回操作结果。
9.根据权利要求8所述的一种基于数据路由、分库分表的数据操作方法,其特征在于:所述S2具体为,
S21,提供操作数据;
S22,为所述操作数据提供相应的SQL语句;
S23,利用数据路由分析SQL语句取得所述操作数据在所述数据库层中对应的分区,从而从分区中定位出对应的分库分表规则,且根据分库分表规则定位出所述操作数据在分区中对应的分库数据库;
S24,所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除的操作提供JDBC驱动连接,并执行相应的SQL语句将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作;
S25,将所述操作数据在对应的分库数据库中进行存储、更新、查询和/或删除操作的结果进行结束集合并、排列和分组,并将存储、更新、查询和/或删除操作的结果返回。
10.根据权利要求8或9所述的一种基于数据路由、分库分表的数据操作方法,其特征在于:所述分库分表规则为字段取模规则或字段值列表规则,所述字段取模规则具体为对SQL语句中的预设数值字段的值进行取余后从而进行分库,所述字段值列表规则具体为根据SQL语句中的预设字段的值与分库关系进行数据路由的规则。
CN201610232349.7A 2016-04-14 2016-04-14 一种基于数据路由、分库分表的数据操作系统及方法 Pending CN105930387A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610232349.7A CN105930387A (zh) 2016-04-14 2016-04-14 一种基于数据路由、分库分表的数据操作系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610232349.7A CN105930387A (zh) 2016-04-14 2016-04-14 一种基于数据路由、分库分表的数据操作系统及方法

Publications (1)

Publication Number Publication Date
CN105930387A true CN105930387A (zh) 2016-09-07

Family

ID=56838190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610232349.7A Pending CN105930387A (zh) 2016-04-14 2016-04-14 一种基于数据路由、分库分表的数据操作系统及方法

Country Status (1)

Country Link
CN (1) CN105930387A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446268A (zh) * 2016-10-19 2017-02-22 中国工商银行股份有限公司 一种数据库横向扩展系统及方法
CN106547870A (zh) * 2016-10-31 2017-03-29 天脉聚源(北京)科技有限公司 数据库的分表方法及装置
CN106897409A (zh) * 2017-02-16 2017-06-27 北京致远互联软件股份有限公司 数据分库存储方法及装置
CN107220265A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 一种数据库语句编译和执行方法及装置
CN107229688A (zh) * 2017-05-12 2017-10-03 上海前隆金融信息服务有限公司 一种数据库水平分库分表方法及系统、服务器
CN107402950A (zh) * 2017-04-28 2017-11-28 阿里巴巴集团控股有限公司 基于分库分表的文件处理方法和装置
CN107423387A (zh) * 2017-07-19 2017-12-01 北京北信源软件股份有限公司 一种基于中间件的分库分表的方法与装置
CN107451201A (zh) * 2017-07-06 2017-12-08 联动优势科技有限公司 一种数据访问方法及设备
CN107506497A (zh) * 2017-09-28 2017-12-22 郑州云海信息技术有限公司 一种数据库数据访问方法及装置
CN107590257A (zh) * 2017-09-20 2018-01-16 郑州云海信息技术有限公司 一种数据库管理方法及装置
CN107729370A (zh) * 2017-09-12 2018-02-23 上海艾融软件股份有限公司 微服务多数据源连接实现方法
CN108509636A (zh) * 2018-04-10 2018-09-07 浙江知水信息技术有限公司 一种基于分区表技术实现读写分离的大数据管理容灾方法
CN108875003A (zh) * 2018-06-14 2018-11-23 广州谱道网络科技有限公司 一种数据定位方法及装置
CN109271376A (zh) * 2018-11-30 2019-01-25 北京锐安科技有限公司 数据库升级方法、装置、设备及存储介质
CN110019342A (zh) * 2017-12-13 2019-07-16 中兴通讯股份有限公司 分区表访问方法、装置及设备、计算机可读存储介质
CN110532268A (zh) * 2019-08-29 2019-12-03 深圳前海环融联易信息科技服务有限公司 海量数据分库存储的方法、装置、计算机设备及存储介质
CN110866002A (zh) * 2018-08-27 2020-03-06 北京京东尚科信息技术有限公司 分表数据处理的方法和装置
CN110955664A (zh) * 2019-12-03 2020-04-03 中国建设银行股份有限公司 分库分表消息路由方法及装置
CN111190898A (zh) * 2019-11-25 2020-05-22 泰康保险集团股份有限公司 一种数据处理的方法及装置、电子设备、存储介质
CN111199386A (zh) * 2019-12-27 2020-05-26 天阳宏业科技股份有限公司 一种工作流引擎及其实现方法
CN111209280A (zh) * 2019-12-31 2020-05-29 上海钧正网络科技有限公司 一种分库分表方法及设备
CN111309704A (zh) * 2018-12-12 2020-06-19 北京沃东天骏信息技术有限公司 数据库操作方法和数据库操作系统
CN112380276A (zh) * 2021-01-15 2021-02-19 四川新网银行股份有限公司 一种分布式系统分库分表后非分片键字段查询数据的方法
CN113127568A (zh) * 2021-05-11 2021-07-16 中国电信股份有限公司江西分公司 一种分布式内存数据库数据路由和分库分表的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999526A (zh) * 2011-09-16 2013-03-27 阿里巴巴集团控股有限公司 一种数据库关系表的拆分、查询方法及系统
CN104408174A (zh) * 2014-12-12 2015-03-11 用友软件股份有限公司 数据库路由装置和方法
CN104794249A (zh) * 2015-05-15 2015-07-22 乐得科技有限公司 一种数据库的实现方法和设备
US9104674B1 (en) * 2010-04-14 2015-08-11 Inmar, Inc. System, method and computer program product for time sharing access control to data
CN105045816A (zh) * 2015-06-26 2015-11-11 上海斐讯数据通信技术有限公司 一种大量数据的存取方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104674B1 (en) * 2010-04-14 2015-08-11 Inmar, Inc. System, method and computer program product for time sharing access control to data
CN102999526A (zh) * 2011-09-16 2013-03-27 阿里巴巴集团控股有限公司 一种数据库关系表的拆分、查询方法及系统
CN104408174A (zh) * 2014-12-12 2015-03-11 用友软件股份有限公司 数据库路由装置和方法
CN104794249A (zh) * 2015-05-15 2015-07-22 乐得科技有限公司 一种数据库的实现方法和设备
CN105045816A (zh) * 2015-06-26 2015-11-11 上海斐讯数据通信技术有限公司 一种大量数据的存取方法及系统

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220265A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 一种数据库语句编译和执行方法及装置
CN106446268A (zh) * 2016-10-19 2017-02-22 中国工商银行股份有限公司 一种数据库横向扩展系统及方法
CN106547870A (zh) * 2016-10-31 2017-03-29 天脉聚源(北京)科技有限公司 数据库的分表方法及装置
CN106897409A (zh) * 2017-02-16 2017-06-27 北京致远互联软件股份有限公司 数据分库存储方法及装置
CN107402950A (zh) * 2017-04-28 2017-11-28 阿里巴巴集团控股有限公司 基于分库分表的文件处理方法和装置
CN107402950B (zh) * 2017-04-28 2020-05-29 阿里巴巴集团控股有限公司 基于分库分表的文件处理方法和装置
CN107229688A (zh) * 2017-05-12 2017-10-03 上海前隆金融信息服务有限公司 一种数据库水平分库分表方法及系统、服务器
CN107451201A (zh) * 2017-07-06 2017-12-08 联动优势科技有限公司 一种数据访问方法及设备
CN107451201B (zh) * 2017-07-06 2020-12-04 联动优势科技有限公司 一种数据访问方法及设备
CN107423387A (zh) * 2017-07-19 2017-12-01 北京北信源软件股份有限公司 一种基于中间件的分库分表的方法与装置
CN107729370A (zh) * 2017-09-12 2018-02-23 上海艾融软件股份有限公司 微服务多数据源连接实现方法
CN107590257A (zh) * 2017-09-20 2018-01-16 郑州云海信息技术有限公司 一种数据库管理方法及装置
CN107506497A (zh) * 2017-09-28 2017-12-22 郑州云海信息技术有限公司 一种数据库数据访问方法及装置
CN110019342A (zh) * 2017-12-13 2019-07-16 中兴通讯股份有限公司 分区表访问方法、装置及设备、计算机可读存储介质
CN110019342B (zh) * 2017-12-13 2023-03-28 金篆信科有限责任公司 分区表访问方法、装置及设备、计算机可读存储介质
CN108509636A (zh) * 2018-04-10 2018-09-07 浙江知水信息技术有限公司 一种基于分区表技术实现读写分离的大数据管理容灾方法
CN108875003A (zh) * 2018-06-14 2018-11-23 广州谱道网络科技有限公司 一种数据定位方法及装置
CN110866002A (zh) * 2018-08-27 2020-03-06 北京京东尚科信息技术有限公司 分表数据处理的方法和装置
CN109271376A (zh) * 2018-11-30 2019-01-25 北京锐安科技有限公司 数据库升级方法、装置、设备及存储介质
CN111309704A (zh) * 2018-12-12 2020-06-19 北京沃东天骏信息技术有限公司 数据库操作方法和数据库操作系统
CN111309704B (zh) * 2018-12-12 2023-06-23 北京沃东天骏信息技术有限公司 数据库操作方法和数据库操作系统
CN110532268A (zh) * 2019-08-29 2019-12-03 深圳前海环融联易信息科技服务有限公司 海量数据分库存储的方法、装置、计算机设备及存储介质
CN110532268B (zh) * 2019-08-29 2023-04-28 深圳前海环融联易信息科技服务有限公司 海量数据分库存储的方法、装置、计算机设备及存储介质
CN111190898A (zh) * 2019-11-25 2020-05-22 泰康保险集团股份有限公司 一种数据处理的方法及装置、电子设备、存储介质
CN110955664A (zh) * 2019-12-03 2020-04-03 中国建设银行股份有限公司 分库分表消息路由方法及装置
CN111199386A (zh) * 2019-12-27 2020-05-26 天阳宏业科技股份有限公司 一种工作流引擎及其实现方法
CN111209280A (zh) * 2019-12-31 2020-05-29 上海钧正网络科技有限公司 一种分库分表方法及设备
CN112380276A (zh) * 2021-01-15 2021-02-19 四川新网银行股份有限公司 一种分布式系统分库分表后非分片键字段查询数据的方法
CN113127568A (zh) * 2021-05-11 2021-07-16 中国电信股份有限公司江西分公司 一种分布式内存数据库数据路由和分库分表的方法及装置

Similar Documents

Publication Publication Date Title
CN105930387A (zh) 一种基于数据路由、分库分表的数据操作系统及方法
JP5792594B2 (ja) 仮想パーティションを用いたデータベース再分配
CN104903894B (zh) 用于分布式数据库查询引擎的系统和方法
CN104050250B (zh) 一种分布式键-值查询方法和查询引擎系统
CN108509437B (zh) 一种ElasticSearch查询加速方法
CN106599043A (zh) 用于多级数据库的中间件和多级数据库系统
CN102033882B (zh) 一种性能数据的存储方法及系统
CN104239377A (zh) 跨平台的数据检索方法及装置
CN103810219B (zh) 一种基于行存储数据库的数据处理方法及装置
KR20170024039A (ko) 유연한 스키마를 사용한 데이터 관리
US9229961B2 (en) Database management delete efficiency
CN102629247A (zh) 一种数据处理方法、装置和系统
CN102982186B (zh) 基于oracle数据库系统的range分区表的维护方法和系统
CN102779138B (zh) 实时数据的硬盘存取方法
CN105159845A (zh) 存储器读取方法
CN114490527B (zh) 元数据检索方法、系统、终端及存储介质
WO2016192496A1 (zh) 数据迁移处理方法及装置
CN111046041B (zh) 数据处理方法和装置、存储介质及处理器
CN109684282A (zh) 一种构建元数据缓存的方法及装置
CN108959538A (zh) 全文检索系统及方法
CN106484694B (zh) 基于分布式数据库的全文搜索方法及系统
CN106649602A (zh) 业务对象数据处理方法、装置和服务器
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
CN107220287A (zh) 用于日志查询的索引管理方法、装置、存储介质及设备
CN106250501B (zh) 报表处理方法及报表系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20160907