一种数据存储方法、数据读取方法及其对应的系统的制作方法

文档序号:10553029阅读:600来源:国知局
一种数据存储方法、数据读取方法及其对应的系统的制作方法
【专利摘要】本发明公开了一种数据存储方法、数据读取方法及其对应的系统,其中,数据存储方法包括:在DDL框架层定义分库分表规则;在DDL框架层按照定义的分库分表规则将源数据进行分库分表,并将分库分表后的子数据块存储至对应的主数据库中;每一个主数据库将自身的子数据块同步至该主数据库对应的多个从数据库中;其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。通过本发明,能够对大批量的数据按照一定的规则进行分库分表,减轻了数据库的压力,也能够实现数据的读写分离功能。
【专利说明】
一种数据存储方法、数据读取方法及其对应的系统
技术领域
[0001]本发明涉及数据处理技术领域,具体涉及一种数据存储方法、数据读取方法及其对应的系统。
【背景技术】
[0002]目前J2EE应用开发很多使用Spring+Mybatis框架进行开发,但是Spring+Mybatis本身无法实现分库分表与读写分离的功能,也无法实现动态的切换数据源。当应用系统有大规模的数据时,需要根据一定的规则对数据分库分表,减轻数据库压力。同时也需要能够同时连接多个异构数据库,来实现一定的业务流程。

【发明内容】

[0003]本发明所要解决的技术问题是提供一种数据存储方法、数据读取方法及其对应的系统,能够解决现有技术的不足。
[0004]本发明解决上述技术问题的技术方案如下:
[0005]—方面,本发明提供了一种数据存储方法,包括:
[0006]Sla、在DDL框架层定义分库分表规则;
[0007]S2a、在DDL框架层按照定义的分库分表规则将源数据进行分库分表,形成多个子数据快,并将每一个子数据块存储至对应的主数据库中;
[0008]S3a、每一个主数据库将自身的子数据块同步至该主数据库对应的多个从数据库中;
[0009]其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。
[0010]另一方面,本发明提供了一种数据读取方法,包括:
[0011 ] Slb、在DDL框架层定义每个主数据库对应的多个从数据库的数据查询路由规则;
[0012]S2b、当接收到数据读取请求时,根据数据读取请求中的请求数据标识,查找对应的主数据库;
[0013]S3b、根据该主数据库对应的多个从数据库的数据查询路由规则,从从数据库中查找与数据读取请求对应的数据。
[0014]再一方面,本发明提供了一种数据存储系统,包括:
[0015]第一规则定义单元,用于在DDL框架层定义分库分表规则;
[0016]分库存储单元,用于在DDL框架层按照定义的分库分表规则将源数据进行分库分表,形成多个子数据块,并将每一个子数据块存储至对应的主数据库中;
[0017]数据同步单元,用于将每一个主数据库中的子数据块同步至对应的多个从数据库中;
[0018]其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。
[0019]又一方面,本发明提供了一种数据读取系统,包括:
[0020]第二规则定义单元,用于在DDL框架层定义每个主数据库对应的多个从数据库的数据查询路由规则;
[0021 ]第一查找单元,用于当接收到数据读取请求时,根据数据读取请求中的请求数据标识,查找对应的主数据库;
[0022]第二查找单元,用于根据该主数据库对应的多个从数据库的数据查询路由规则,从从数据库中查找与数据读取请求对应的数据。
[0023]本发明提供的一种数据存储方法、数据读取方法及其对应的系统,对大批量的数据按照一定的分库分表规则进行分库形成多个子数据块,并将子数据块存储至对应的主数据库中,且每一个主数据库对应有多个从数据库,每一个主数据库中的数据同步至多个从数据库中,将主数据库作为写数据库,将多个从数据库作为读数据库,在实现数据读取时,首先定位到主数据库,在按照一定的查询路由规则从从数据库中查找对应的数据,实现读写分离的功能。
【附图说明】
[0024]图1为本发明实施例一的一种数据存储方法流程图;
[0025]图2为在DDL框架中定义数据存储规则示意图;
[0026]图3为数据存储流程图;
[0027]图4为本发明实施例二的一种数据读取方法流程图;
[0028]图5为本发明实施例三的一种数据存储系统示意图;
[0029]图6为本发明实施例四的一种数据读取系统示意图。
【具体实施方式】
[0030]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0031]实施例一、一种数据存储方法。下面结合图1-图3对本实施例提供的数据存储方法进行说明。
[0032]参见图1,本实施例提供的数据存储方法包括:Sla、在DDL框架层定义分库分表规则。
[0033]S2a、在DDL框架层按照定义的分库分表规则将源数据进行分库分表,形成多个子数据块,并将每一个子数据块存储至对应的主数据库中。
[0034]S3a、每一个主数据库将自身的子数据块同步至对应的多个从数据库中;
[0035]其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。
[0036]具体的,当有大量数据需要存储时,应用程序在DDL(Distributed Data Layer,分布式数据层)框架层定义数据的分库分表规则,具体主要是定义源数据的数据划分规则以及将源数据划分后形成的每一个子数据块对应存储的数据库类型,比如,哪些子数据块存储在Oracle数据库中,哪些子数据块存户在Mysql数据库中。
[0037]在DDL框架层,按照定义的划分规则,将源数据划分为多个子数据块,并且按照定义的每一个子数据块对应存储的数据库类型,将多个子数据块存储至对应类型数据库的主数据库中。其中,可参见图2,J2EE应用层的Web层将源数据发送给服务层,服务层又将源数据发送给DDL框架层的分布式数据层(Distributed Data Layer),分布式数据层定义源数据的分库分表规则,将分库分表后的每一个子数据块存储至对应的主数据库中,每一个主数据库对应有多个从数据库,每一个主数据库将存储在自身的子数据块同步存储至该主数据库对应的多个从数据库中,即每一个从数据库中的数据与主数据库中的数据一致。参见图3,J2EE层将源数据发送给DDL框架层,在DDL框架层定义源数据的分库分表规则以及每一个主数据库对应的多个从数据库的数据查询路由规则,按照分库分表规则将源数据划分为多个子数据块,将每一个子数据块存储至对应的主数据库中,所有的主数据库作为写数据库,所有对应的从数据库作为读数据库,因此,将主数据库中的数据同步至从数据库之后,将所有的从数据库的属性设置为read-only(只读)属性。比如,现需要将各个省市的身份证信息存储于数据库中,可以按照身份证所属省市进行划分,并将划分后的各个省市的身份证信息存储至对应类型的主数据库中,例如,北京地区的身份证信息存储于Orale数据的主数据库中,上海地区的身份证信息存储于Mysql数据库的主数据库中。每一个主数据库对应多个从数据库,将每一个主数据库中的数据同步至对应的多个从数据库中,主数据库作为写数据库,多个从数据库作为读数据库。
[0038]另外,数据分库分表规则是可以动态调整变化的,本实施例可使用注解ShardingRule的方式能动态改变分库分表规则。
[0039]实施例二、一种数据读取方法。下面结合图4对本实施例提供的数据读取方法进行描述。
[0040]参见图4,本实施例提供的数据读取方法包括:Slb、在DDL框架层定义每个主数据库对应的多个从数据库的数据查询路由规则。
[0041 ] S2b、当接收到数据读取请求时,根据数据读取请求中的请求数据标识,查找对应的主数据库。
[0042]S3b、根据该主数据库对应的多个从数据库的数据查询路由规则,从从数据库中查找与数据读取请求对应的数据。
[0043]具体的,上述实施例一将大批量的数据分库分表存储至对应的数据库中后,应用程序可以在DDL框架中定义每个主数据库对应的多个从数据库的数据查询路由规则,即在同一个主数据库下,查询每一个从数据库的顺序,具体可以为轮询查询,也可以为每一个从数据库设置优先级,先查询优先级高的从数据库,再查询优先级低的从数据库。
[0044]当接收到数据读取请求时,首先根据数据读取请求中的请求数据标识,查找对应的主数据库,比如,数据读取请求中请求读取上海的身份证信息时,先查找对应存储上海身份证信息的主数据库,然后根据该主数据库对应的多个从数据库的数据查询路由规则,从该主数据库对应的从数据库中查找与数据读取请求对应的数据。
[0045]实施例三、一种数据存储系统。下面结合图5对本实施例提供的数据存储系统进行说明。
[0046]参见图5,本实施例提供的数据存储系统包括第一规则定义单元51、分库存储单元52、数据同步单元53和属性设置单元54。
[0047]其中,第一规则定义单元51,主要用于在DDL框架层定义分库分表规则。
[0048]分库存储单元52,主要用于在DDL框架层按照第一规则定义单元51定义的分库分表规则将源数据进行分库分表,形成多个子数据块,并将每一个子数据块存储至对应的主数据库中。
[0049]数据同步单元53,主要用于将每一个主数据库中的子数据块同步至对应的多个从数据库中,其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。
[0050]其中,第一规则定义单元51具体用于:
[0051]在DDL框架层定义源数据的分库分表规则以及划分后的每一子数据块对应存储的数据库类型;
[0052]分库存储单元52具体用于:
[0053]在DDL框架层按照定义的数据源的分库分表规则,将源数据划分为多个子数据块,并将每一个子数据块存储至对应类型数据库的主数据库中。
[0054]本实施例提供的数据存储系统还包括属性设置单元54,主要用于将所有的从数据库的属性设置为read-only属性。
[0055]实施例四、一种数据读取系统。下面结合图6对本实施例提供的数据读取系统进行描述。
[0056]参见图6,本实施例提供的数据读取系统包括第二规则定义单元61、第一查找单元62和第二查找单元63。
[0057]其中,第二规则定义单元61,主要用于用于在DDL框架层定义每个主数据库对应的多个从数据库的数据查询路由规则。
[0058]第一查找单元62,主要用于当接收到数据读取请求时,根据数据读取请求中的请求数据标识,查找对应的主数据库。
[0059]第二查找单元63,主要用于根据该主数据库对应的多个从数据库的数据查询路由规则,从从数据库中查找与数据读取请求对应的数据。
[0060]本发明提供的一种数据存储方法、数据读取方法及其对应的系统,对大批量的数据按照一定的分库分表规则进行分库形成多个子数据块,并将子数据块存储至对应的主数据库中,且每一个主数据库对应有多个从数据库,每一个主数据库中的数据同步至多个从数据库中,将主数据库作为写数据库,将多个从数据库作为读数据库,在实现数据读取时,首先定位到主数据库,在按照一定的查询路由规则从从数据库中查找对应的数据,实现读写分离的功能;另外,多个主数据库可能会属于异构数据库,只需要在DDL框架层定义好分库分表的路由规则即可将分库分表后的数据存储至对应类型的主数据库中,实现了异构数据库之间的同时使用。
[0061]在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0062]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种数据存储方法,其特征在于,包括: Sla、在DDL框架层定义分库分表规则; S2a、在DDL框架层按照定义的分库分表规则将源数据进行分库分表,形成多个子数据快,并将每一个子数据块存储至对应的主数据库中; S3a、每一个主数据库将自身的子数据块同步至该主数据库对应的多个从数据库中; 其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。2.如权利要求1所述的一种数据存储方法,其特征在于,所述步骤Sla具体包括: 在DDL框架层定义源数据的分库分表规则以及划分后的每一个子数据块对应存储的数据库类型; 所述步骤S2a具体包括: 在DDL框架层按照定义的数据源的分库分表规则,将源数据划分为多个子数据块,并将每一个子数据块存储至对应类型数据库的主数据库中。3.如权利要求1所述的一种数据存储方法,其特征在于,将所有的从数据库的属性设置为只读read-only属性。4.如权利要求2所述的一种数据存储方法,其特征在于,使用注解ShardingRule的方式动态定义分库分表规则。5.一种数据读取方法,其特征在于,包括: Slb、在DDL框架层定义每个主数据库对应的多个从数据库的数据查询路由规则; S2b、当接收到数据读取请求时,根据数据读取请求中的请求数据标识,查找对应的主数据库; S3b、根据该主数据库对应的多个从数据库的数据查询路由规则,从从数据库中查找与数据读取请求对应的数据。6.如权利要求5所述的一种数据读取方法,其特征在于,使用注解ShardingRule的方式动态定义每一个主数据库对应的多个从数据库的数据查询路由规则。7.一种数据存储系统,其特征在于,包括: 第一规则定义单元,用于在DDL框架层定义分库分表规则; 分库存储单元,用于在DDL框架层按照定义的分库分表规则将源数据进行分库分表,形成多个子数据块,并将每一个子数据块存储至对应的主数据库中; 数据同步单元,用于将每一个主数据库中的子数据块同步至对应的多个从数据库中;其中,所有的主数据库作为写数据库,所有的从数据库作为读数据库。8.如权利要求7所述的一种数据存储系统,其特征在于,所述第一规则定义单元具体用于: 在DDL框架层定义源数据的分库分表规则以及划分后的每一个子数据块对应存储的数据库类型; 所述分库存储单元具体用于: 在DDL框架层按照定义的数据源的分库分表规则,将源数据划分为多个子数据块,并将每一个子数据块存储至对应类型数据库的主数据库中。9.如权利要求7所述的一种数据存储系统,其特征在于,还包括: 属性设置单元,用于将所有的从数据库的属性设置为只读read-only属性。10.一种数据读取系统,其特征在于,包括: 第二规则定义单元,用于在DDL框架层定义每个主数据库对应的多个从数据库的数据查询路由规则; 第一查找单元,用于当接收到数据读取请求时,根据数据读取请求中的请求数据标识,查找对应的主数据库; 第二查找单元,用于根据该主数据库对应的多个从数据库的数据查询路由规则,从从数据库中查找与数据读取请求对应的数据。
【文档编号】G06F17/30GK105912678SQ201610228439
【公开日】2016年8月31日
【申请日】2016年4月13日
【发明人】张少峰
【申请人】北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1