一种大量数据的存取方法及系统的制作方法

文档序号:9326902阅读:243来源:国知局
一种大量数据的存取方法及系统的制作方法
【技术领域】
[0001]本发明属于计算机技术领域,涉及一种数据库的存取方法,特别是涉及一种大量数据的存取方法及系统。
【背景技术】
[0002]随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV(page view,页面浏览量)无疑对数据库造成了相当高的负载,对系统的稳定性和扩展性造成了极大的问题。大数据量的存储需要大量的数据库资源。数据量的不断增长要求数据库存储具有可扩展性,而且在保证大数据量的情况下,还要保证性能、高可用性等质量要求。
[0003]通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度提高了应用中读取(Read)数据的速度和并发量。
[0004]现有的方案有:
[0005]1)商业版数据库Sharding :MySQL Proxy,提供MySQL协议接口(非JDBC),主从结构,可以负载平衡,读写分离,failover等,lua语法复杂,不支持大数据量的分库分表。
[0006]2) Amoeba :支持分数据库实例,每个数据相同的表,不支持事务;类似MySQLProxy,设计上抛弃lua,更简单。
[0007]3)阿里集团研究院开发的CobarClient,主要面向小规模的数据库sharding集群访问,基于ibatis,需要规划数据规模,缺乏扩展性;另外有Cobar,阿里集团内部的一个完整DAL层,实现完整JDBC代理。
[0008]4)HibernateShards, Hibernate提供的sharding,支持分数据库实例,比较复杂,事先规划数据规模,和框架不符。
[0009]5)guZZ,多库(虚拟的数据库,实际数据库的路由规则仍然自定义)、表分切、读写分离,以及多台数据库之间透明的分布式事务支持,设计目标是支持大型在线生产应用;需完全替换ibatis ;完全和框架不符。
[0010]6) TDDL,淘宝的DAL,很强的分库分表能力,仍然需要数据量实现规划,动态扩展有限。
[0011]现有技术要么只能实现某个功能点,要么使用复杂,不易扩展。也就是说,现有框架中没有彻底解决大数据量的存储问题。

【发明内容】

[0012]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种大量数据的存取方法及系统,用于解决现有大量数据的存储方式使用复杂,不易扩展,成本高的问题。
[0013]为实现上述目的及其他相关目的,本发明提供一种大量数据的存取方法,所述大量数据的存取方法包括以下步骤:设置数据路由规则;根据所述路由规则对数据库中存储的大量数据进行拆分存储。
[0014]可选地,当所述数据路由规则为读写分离时,则按照原有数据库拆分复制出一个写库和一个读库。
[0015]可选地,当所述数据路由规则为分库分表时,则在原有数据库中选择至少I张表进行拆分,将被选择的表复制出N个库,每个库拆分出M张表,并记录拆分后相应的路由规则;N和M为大于等于I的正整数。
[0016]可选地,所述数据路由规则包括规则名称、数据真实地址、真实库名、真实表名、记录开始编号、记录结束编号、记录开始时间、和记录结束时间。
[0017]可选地,所述大量数据的存取方法还包括:利用通用的数据库连接方法和操作方法直接调用接口,根据所述数据路由规则对拆分存储后的数据进行操作或/和查询。
[0018]本发明还提供一种大量数据的存取系统,所述大量数据的存取系统包括:规则设置模块,设置数据路由规则;拆分存储模块,与所述规则设置模块相连,根据所述路由规则对数据库中存储的大量数据进行拆分存储。
[0019]可选地,所述大量数据的存取系统还包括:读取模块,与所述拆分存储模块相连,利用通用的数据库连接方法和操作方法直接调用接口,根据所述数据路由规则对拆分存储后的数据进行操作或/和查询。
[0020]可选地,所述规则设置模块包括:读写分离规则设置单元,以读写分离的方式设置数据的路由规则;分库分表规则设置单元,以分库分表的方式设置数据的路由规则。
[0021]可选地,所述拆分存储模块包括:读库复制单元,与所述读写分离规则设置单元相连,按照原有数据库拆分复制出一个读库;写库复制单元,与所述读写分离规则设置单元相连,按照原有数据库拆分复制出一个写库。
[0022]可选地,所述拆分存储模块还包括:分库复制单元,与所述分库分表规则设置单元相连,在原有数据库中选择至少I张表进行拆分,将被选择的表复制出N个库#为大于等于I的正整数;分表复制单元,与所述分库复制单元相连,将每个库拆分出M张表;M为大于等于I的正整数;路由规则记录单元,与所述分库复制单元和分表复制单元分别相连,记录拆分后相应的分库分表路由规则。
[0023]如上所述,本发明的大量数据的存取方法及系统,具有以下有益效果:
[0024]本发明既能实现读写分离式存储,也能实现分库分表式存储,在功能上更齐全,在使用上更加简单,而且易扩展,更不需要事先规划数据规模,很容易做二次开发,且成本低。
【附图说明】
[0025]图1a显示为本发明实施例所述的大量数据的存取方法的一种实现流程示意图。
[0026]图1b显示为本发明实施例所述的大量数据的存取方法的另一种实现流程示意图。
[0027]图2显示为本发明实施例所述的大量数据的存取方法的再一种实现流程示意图。
[0028]图3显示为本发明实施例所述的大量数据的存取系统的一种实现结构示意图。
[0029]图4显示为本发明实施例所述的大量数据的存取系统的规则设置模块的一种实现结构示意图。
[0030]图5显示为本发明实施例所述的大量数据的存取系统的拆分存储模块的一种实现结构示意图。
[0031]元件标号说明
[0032]100大量数据的存取系统
[0033]110规则设置模块
[0034]111读写分离规则设置单元
[0035]112分库分表规则设置单兀
[0036]120拆分存储模块
[0037]121读库复制单元
[0038]122写库复制单元
[0039]123分库复制单元
[0040]124分表复制单元
[0041]125路由规则记录单元
[0042]130读取模块
[0043]S1 ?S3 步骤
[0044]S21 ?S22 步骤
【具体实施方式】
[0045]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0046]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0047]请参阅图la和图lb所示,本发明提供一种大量数据的存取方法,所述大量数据的存取方法包括以下步骤:
[0048]S1,设置数据路由规则。所述数据路由规则包括规则名称、数据真实地址、真实库名、真实表名、记录开始编号、记录结束编号、记录开始时间、和记录结束时间。
[0049]S2,根据所述路由规则对数据库中存储的大量数据进行拆分存储。或
[0050]S3,利用通用的数据库连接方法和操作方法直接调用接口,根据所述数据路由规则对拆分存储后的数据进行操作或/和查询。
[0051]进一步,参见图2所示,所述大量数据的存取方法的一种实现过程为:
[0052]S21,当所述数据路由规则为读写分离时,则按照原有数据库拆分复制出一个写库和一个读库。
[0053]S22,当所述数据路由规则为分库分表时,则在原有数据库中选择至少1张表进行拆分,将被选择的表复制出N个库,每个库拆分出M张表,并记录拆分后相应的路由规则;N和M为大于等于I的正整数。本发明通过一系列的切分规则(即路由规则)可以将数据分布到不同的数据库(DB)服务器上,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台数据库服务器了,而是N台数据库服务器,这样就可以降低单台机器的负载压力。本发明还通过一系列的切分规则,将数据分布到一个数据库的不同表中,比如将article分为article_001,article_002等子表,若干个子表水平拼合又组成了逻辑上一个完整的article表,这样做的目的其实也是很简单的。举个例子说明,比如arti
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1