基于bs结构的多分布式数据源管理方法及系统的制作方法

文档序号:9727450阅读:418来源:国知局
基于bs结构的多分布式数据源管理方法及系统的制作方法
【技术领域】
[0001]本发明属于数据处理技术领域,尤其涉及一种基于BS结构的多分布式数据源管理方法及系统。
【背景技术】
[0002]目前,有两种常用的技术方案用于多分布式数据源管理:
[0003]第一种,根据查询所需数据表表名的典型名称,通过固定的HASH算法,命中需要查询的数据源,然后切换到对应的数据源进行操作,所述操作包括数据增、删、改、查等;
[0004]关于上述的典型名称,举例说明:某业务流量统计表,因为其统计数据表的存储随时间变化,例如按天存储,表名为:td_serv ice_d_20151119,其中_d_表示的是天表,即每天一张表,后面的20151119代表日期,这个时候典型名称就是tcLservice;
[0005]第二种,固定分配某些类型的数据表,根据查询所需数据表表名,结合固定分配数据表的规则列表,命中需要查询的数据源,然后切换到对应的数据源进行操作;
[0006]这个分配规则会有很多,可能不同的系统使用的不一样,举两个例子:1)所有数据表名以tm开头的表都分配到数据源1,例如tm_operator(操作员管理表),以tr开头的表都分配到数据源2,例如tr_reg1n(地址资源表),其他依次类推;2)以完整固定表名的方式分配数据源,例如tm_operator表固定分配到数据源1,tm_role表固定分配到数据源2到对应的数据源。
[0007]如上所示,现有技术解决方法归纳起来有两种,一种是通过固定的HASH算法命中数据源,另一种是开发人员根据固定的分表规则在程序中显式的(即将分表规则写在代码里)处理查询的数据源。
[0008]现有的技术存在以下方面的问题:
[0009]1、通过HASH算法命中数据源的方案,可能存在由于HASH算法缺陷导致随着数据表增加会出现数据源命中错误的情况;
[0010]2、开发人员根据固定分表规则处理的方案,在新的类型数据表产生或数据表规则变化时,都需要重新进行开发;
[0011]因此,如何设计出快捷、方便的数据源管理方法及系统,成为技术人员需要考虑的问题。

【发明内容】

[0012]本发明所要解决的技术问题是提供一种基于BS结构的多分布式数据源管理方法及系统,快捷、方便的实现对数据源管理。
[0013]为了解决上述技术问题,本发明提供了一种基于BS结构的多分布式数据源管理方法,其特征在于,所述方法包括以下步骤:
[0014]将数据源与代码包对应关系存储于第一管理表中,和/或将数据表与数据源对应关系存储于第二管理表中;
[0015]执行数据库操作,检查执行数据库操作所涉及的代码包和/或数据表,根据所述代码包和/或所述数据表,在第一管理表和第二管理表中查找到对应数据源;
[0016]对所述数据源进行操作。
[0017]优选的,所述方法还包括以下步骤:
[0018]接收对于数据源本身的调整或者数据源与代码包对应关系的调整,或者接收数据表与数据源对应关系的调整,根据所述调整修改所述第一管理表或者第二管理表的对应内容。
[0019]优选的,所述在第一管理表和第二管理表中查找到对应数据源的步骤,进一步包括:
[0020]检查执行数据库操作程序所在代码包;
[0021]在默认数据源第一管理表中查询代码包对应中心数据源;
[0022]判断代码包对应中心数据源是否存在,如果存在,切换到代码包对应第一数据源,如果不存在,在默认数据源第二管理表中查询数据表对应数据源;
[0023]判断数据表对应数据源是否存在,如果存在,切换到数据表对应第二数据源,结束;如果不存在,使用默认数据源,结束。
[0024]优选的,所述切换到代码包对应第一数据源的步骤,进一步包括:
[0025]检查执行数据库操作涉及到的数据表;
[0026]在第一数据源对应的第二管理表中查询数据表对应数据源;
[0027]判断数据表对应数据源是否存在,如果存在,切换到对应第三数据源,结束;如果不存在,使用第一数据源,结束。
[0028]为了解决上述技术问题,本发明还提供了一种基于BS结构的多分布式数据源管理系统,所述系统包括:
[0029]存储模块,用于将数据源与代码包对应关系存储于第一管理表中,和/或将数据表与数据源对应关系存储于第二管理表中;
[0030]查找模块,用于执行数据库操作,检查执行数据库操作所涉及的代码包和/或数据表,根据所述代码包和/或所述数据表,在第一管理表和第二管理表中查找到对应数据源;
[0031]处理模块,用于对所述数据源进行操作。
[0032]优选的,所述系统还包括:
[0033]修改模块,用于接收对于数据源本身的调整或者数据源与代码包对应关系的调整,或者接收数据表与数据源的对应关系的调整,根据所述调整修改所述第一管理表或者第二管理表的对应内容。
[0034]优选的,所述查找模块,进一步包括:
[0035]第一检查模块,用于检查执行数据库操作程序所在代码包;在默认数据源第一管理表中查询代码包对应中心数据源,或者在默认数据源第二管理表中查询数据表对应数据源;
[0036]第一判断模块,用于判断代码包对应中心数据源是否存在,或者数据表对应数据源是否存在;
[0037]第一切换模块,用于当代码包或者数据表对应数据源存在,切换到代码包对应第一数据源,或者切换到数据表对应第二数据源;如果不存在对应数据源,使用默认数据源。
[0038]优选的,所述查找模块,进一步包括:
[0039]第二检查模块,用于检查执行数据库操作涉及到的数据表;在第一数据源对应的第二管理表中查询数据表对应数据源;
[0040]第二判断模块,判断数据表对应数据源是否存在;
[0041 ]第二切换模块,用于当数据表对应数据源存在,切换到对应第三数据源,如果不存在,使用第一数据源。
[0042]本本发明的方法及系统与目前常用的两种方案相比,具有以下优点:
[0043]1、本发明不需要依赖于固定的HASH算法,可以避免因算法缺陷导致的BUG;
[0044]2、在数据源对应关系做调整时,不需要对代码进行修改,只需要修改数据源与数据表、数据源和代码包之间的关系即可,维护起来更加方便。
[0045]可见,本发明可以快捷、方便的实现对数据源管理。
【附图说明】
[0046]图1为本发明的基于BS结构的多分布式数据源管理方法流程图。
[0047]图2为本发明的管理表结构示意图。
[0048]图3为本发明的执行数据库操作方法流程图。
[0049]图4为本发明的基于BS结构的多分布式数据源管理系统结构示意图。
【具体实施方式】
[0050]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]本发明的主要思想是:通过在服务器端存储管理表,将数据源与数据表对应关系维护在一个管理表,数据源与代码包关系维护在另一管理表;这样通过配置数据源与数据表关联关系、配置数据源与代码包关联关系两种方式,将数据表、数据源和代码包关联起来,可以通过代码包查找数据源,或者通过数据表查找数据源。在代码开发阶段,开发人员无需显式处理数据表与数据源对应关系,完全由系统自动完成,只需通过修改配置即可达到目的。
[0052]参照图1所示,为本发明的基于BS结构的多分布式数据源管理方法流程图。所述数据源管理方法包括以下步骤:
[0053]步骤101,将数据源与代码包对应关系存储于第一管理表中,和/或将数据表与数据源对应关系存储于第二管理表中;
[0054]步骤102,执行数据库操作,检查执行数据库操作所涉及的代码包和/或数据表,根据所述代码包和/或所述数据表,在第一管理表和第二管理表中查找到对应数据源;
[0055]步骤103,对所述数据源进行操作。
[0056]在本发明的一个优选实施例中,所述方法还包括以下步骤:
[0057]接收对于数据源本身的调整或者数据源与代码包对应关系的调整,或者接收数据表与数据源的对应关系的调整,根据所述调整修改所述第一管理表或者第二管理表的对应内容。
[0058]参照图2所示,为本发明的管理表结构示意图。
[0059]图中的数据源A本身对应的中心数据源,因此它后面还有对应的第二管理表,而数据源B和数据源C 一样都是一般的数据源,此类数据源中不包含后续的数据表与数据源对应关系。
[0060]参照图2所示的管理表结构,图1中所述在第一管理表和第二管理表中查找到对应数据源的步骤,进一步包括:
[0061 ]检查执行数据库操作程序所在代码包;
[0062]在默认数据源第一管理表中查询代码包对应中心数据源;
[0063]判断代码包对应中心数据源是否存在,如果存在,切换到代码包对应第一数据源,如果不存在,在默认数据源第二管理表中查询数据表对应数据源;
[0064]判断数据表对应数据源是否存在,如果存在,切换到数据表对应第二数据源,结束;如果不存在,使用默认数据源,结束。
[0065]在本发明的一个优选实施例中,所述切换到代码包对应第一数据源的步骤,进一步包括:
[0066]检查执行数据库操作涉及到的数据表;
[0067]在第一数据源对应的第二管理表中查询数据表对应数据源;
[0068]判断数据表对应数据源是否存在,如果存在,切换到对应第三数据源,结束;如果不存在,使用第一数据源,结束。
[0069]参照图3所示,为本发明的执行数据库操作方法流程图的一个详细描述。由
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1