混合存储架构下的数据访问方法【专利摘要】本发明公开了混合存储架构下的数据访问方法,克服混合存储架构下数据库管理和数据访问复杂性及数据库系统变更和故障缺乏统一管理的问题,混合存储架构下的数据访问方法步骤如下:1)数据请求处理:(1)验证用户的访问请求:请求验证模块通过查询元数据信息项的缓存完成验证;给验证模块分配一个元数据信息的针对数据库或集群状态标志位以及代理模块的激活位的一个部分缓存,利用缓存即加快验证速度;(2)数据访问请求添加至访问缓存;(3)请求的路由处理;(4)转换代理的处理;(5)请求的执行;(6)产生统一格式的结果或者报告;2)软件变更与故障处理:(1)元数据信息的周期性检测与响应;(2)软件变更处理;(3)故障处理。【专利说明】混合存储架构下的数据访问方法
技术领域:
[0001]本发明设及一种数据的访问方法,更确切地说,本发明设及一种基于非关系型数据库系统与关系型数据库系统混合存储架构下的数据访问方法。【
背景技术:
】[0002]近年来,许多公司根据实际场景,使用了多种更适于在集群上运行的数据存储技术,运些技术基本上不使用SQL(结构化查询语言),而是开源的数据库技术称之为非关系型数据库技术(NoS化技术)。[0003]然而,关系型数据库系统在联机事务处理方面的能力仍是非关系型数据库系统难W企及的,特别是在特定的银行W及电信等行业领域,数据的存储离不开关系型数据库。因此,混合非关系型数据库系统与关系型数据库系统的数据存储解决方案,利用二者各自的优势,使利益最大化是企业的一个明智的选择,也是目前的发展趋势。[0004]非关系型数据库系统所采用的数据模型(有键值对模型,列族模型,文档模型,图数据库模型)与关系型数据库系统的数据模型(关系模型)不同,从本质上讲导致它们诸多不同之处的主因是两个系统在用户请求上的不同或者说是数据访问的方式的不同,而非关系型数据库系统的引入和关系型数据库系统的继续使用,也导致混合存储架构下数据的访问仍存在一定的问题:[0005]1.参阅图1,数据库管理和数据访问的复杂性,不同的数据库要使用不用的数据库管理工具或者访问接口访问,缺乏一个统一的数据库管理的平台和数据访问途径。[0006]2.非关系型数据库系统和关系型数据库系统的增加、删除和故障缺乏统一的监控管理,缺乏统一的应对策略。[0007]3.若使用数据仓库技术,可使用的用于收集非关系型数据库系统数据的工具有限,缺乏一个可W统一使用的工具。[000引4.数据库管理员将不同的数据库封装为服务,不同存储系统引入的复杂性容易导致出现缺乏对服务进行有效管理的情况。【
发明内容】[0009]本发明所要解决的技术问题是克服了混合存储架构下面临的数据库管理和数据访问的复杂性问题,W及克服了数据库系统变更和故障缺乏统一管理的问题,提供了一种混合存储架构下的数据访问方法。[0010]为解决上述技术问题,本发明是采用如下技术方案实现的:所述的混合存储架构下的数据访问方法步骤如下:[0011]1)数据请求处理:[001^(1)验证用户的访问请求:[0013](2)数据访问请求添加至访问缓存;[0014](3)请求的路由处理;[0015](4)转换代理的处理;[0016](5)请求的执行;[0017](6)产生统一格式的结果或者报告;[0018]2)软件变更与故障处理:[0019](1)元数据信息的周期性检测与响应;[0020](2)软件变更处理;[0021](3)故障处理。[0022]技术方案中所述的验证用户的访问请求是指:[0023]1)验证用户请求的合法性[0024]用户的每一个请求将带有所请求的NoSql集群系统或者RDBMS系统的唯一标识ID,运里主要验证的合法性是用户请求的ID代表的系统元数据项Ii是否存在W及该项的状态位标记是否为正常Normal,同时代理可用,即标记为Activated;用户授权等检测任务为非关系型数据库系统或者关系型数据库系统自带的任务功能,本技术方案则将不设及,而是直接传递给响应的非关系型数据库系统或者关系型数据库系统让其内部自行进行处理,并将处理结果反馈给用户;[0025]2)加快验证速度[0026]为了加快验证速度,请求验证模块通过查询元数据信息项的缓存完成验证;运里给验证模块分配一个元数据信息的针对数据库或集群状态标志位W及代理模块的激活位的一个部分缓存;运样利用缓存即可加快验证速度。[0027]技术方案中所述的请求的路由处理是指:[0028]1)视用户访问模块为用户请求的生产者,路由模块为用户请求的消费者,从而使用生产者消费者问题的解决策略来处理访问缓存中的用户请求;[0029]2)路由模块检测访问缓存中存在待处理的访问请求,就根据路由信息,将请求发送给相应的非关系型数据库系统或者关系型数据库系统的请求转换模块Ai;[0030]3)Ai设有第二级缓存,请求放入其缓存[0031]其中路由信息需要按照一定周期T进行维护,路由信息的维护通过周期性查询元数据信息项来完成,需要注意的是,运里的请求的路由类似一种内容的路由策略,只是将具有某个非关系型数据库系统或者关系型数据库系统的标识ID的请求发送给与运个ID代表的非关系型数据库系统或者关系型数据库系统相应的代理模块Ai。[0032]技术方案中所述的转换代理的处理是指:[0033]1)代理模块Al对相应二级缓存中的请求进行解析,编译,得到可W被非关系型数据库系统或者关系型数据库系统处理的请求,主要实现的是用户请求形式的转换,即由统一封装的请求转换为各个非关系型数据库系统或者关系型数据库系统能够处理的的具体的请求格式;[0034]2)代理模块Al将处理过的结果发送给相应的非关系型数据库系统或者关系型数据库系统系统。[0035]技术方案中所述的请求的执行是指:[0036]1)非关系型数据库系统或者关系型数据库系统执行请求后,如果产生需要返回给用户的数据结果,或者产生请求执行报告,将返回结果或者报告返回给结果接受模块Al;[0037]2)Ai将结果封装为统一的格式,并发送封装后的结果封装模块。[0038]技术方案中所述的元数据信息的周期性检测与响应是指:[0039]1)R非关系型数据库系统或者关系型数据库系统每间隔一个查询周期T2向元数据信息列表中的每一项所代表的非关系型数据库系统或者关系型数据库系统发送一个检测消息Ml;[0040]2)收到Ml的非关系型数据库系统或者关系型数据库系统发送相应的响应消息M2;[0041]3)非关系型数据库系统或者关系型数据库系统在一个预计的得到响应的时间T3内没有收到M2,则在响应列表项Ii的状态处标记为故障F;[0042]4)记录发生故障的时间等情况的存储系统故障管理日志[0043]运里的查询周期T2取值可W根据预测或者根据经验选取一个的平均可能发生故障或变更的时间,运个时间和非关系型数据库系统或者关系型数据库系统的总数目有关。另一方面,预计得到响应的时间T3与实际非关系型数据库系统或者关系型数据库系统的分布等因素有关,它是一个可W经过若干次反复的测试得到的平均响应时间,反映了正常状态下的非关系型数据库系统或者关系型数据库系统响应能力。[0044]技术方案中所述的软件变更处理是指:[0045]1)每新增一个非关系型数据库系统或者关系型数据库系统就向数据库&集群信息注册管理模块注册该非关系型数据库系统或者关系型数据库系统的元数据信息,元数据信息项设置故障标识位,并且新加入的元数据信息项Yi的故障标记位标记为正常Normal;记录存储系统变更管理日志,将增加系统成功与否的结果写入日志;[0046]2)每减少一个非关系型数据库系统或者关系型数据库系统在非关系型数据库系统或者关系型数据库系统中删除对应的元数据信息;记录存储系统变更管理日志,将删除系统成功与否的结果写入日志;[0047]其中,不同类型的非关系型数据库系统或者关系型数据库系统元数据信息都W统一的形式进行存储和管理;[0048]3)请求转换模块的处理与维护:[0049](1)每有新响应列表项Ii增加,就集成或者调用一个请求转换代理模块,并标记为激活Activated;[0050](2)每有响应列表项Ii被标记为故障F,则其代理模块Al被标记为失效NotActivated;运里的代理模块Al是为相应的非关系型数据库系统或者关系型数据库系统专有的。[0051]技术方案中所述的故障处理是指:[0052]1)如果为非关系型数据库系统或者关系型数据库系统临时故障则:[0053](1)每个发生故障的闲自关系型数据库系统或者关系型数据库系统设有一个相应的故障恢复时间T4,若某个发生故障的非关系型数据库系统或者关系型数据库系统在其恢复时间T4内恢复正常,则向非关系型数据库系统或者关系型数据库系统发送一个故障恢复消息M3;[0054](2)非关系型数据库系统或者关系型数据库系统收到该消息后,将相应的元数据项的故障标记位改为正常,即F-〉Normal,同时相应的Ai的激活位改为激活的,即NotActivated-〉Activated;[0055](3)恢复的时间W及结果写入到存储系统故障管理日志;[0056]运里的故障恢复时间T4为特定非关系型数据库系统或者关系型数据库系统的平均短期故障恢复值,可由经验获得;[0057]2)如果为长久故障则:[0058](1)若在故障恢复时间T3内没有收到相应项的恢复消息M3,则假定该非关系型数据库系统或者关系型数据库系统将长期不可用;[0059](2)删除R&NRMM中不可用的数据库或者集群对应的元数据项Yi,然后删除或者撤销与代理模块Al的链接;[0060](3)删除的时间W及相关信息写入存储系统变更管理日志。[0061]与现有技术相比本发明的有益效果是:[0062]1.非结构化数据的分析处理难题一直困扰着企业的运转,比如购物网站拥有海量的数据,它们当中有结构化数据(即行数据,存储在数据库里,可W用二维表结构来逻辑表达实现的数据)也有非结构化数据(各种文档、图片、视频等无法用传统方法处理的数据),利用二者的结合可W挖掘出很多商业价值,但是目前的数据库管理系统要么只支持关系型数据库系统,要么只能管理非关系型数据库系统,十分不方便而且没有效率,本发明提供了对混合存储架构下的非关系型数据库系统与关系型数据库系统的统一的有效管理,一定程度上方便了数据库管理员和数据库使用的用户对存储架构的管理和使用,降低了复杂性,为企业成功引入非关系型数据库系统提供便利。[0063]2.现有的数据管理系统体系大多数死板,对于相应模块的限制极为苛刻,而本发明对混和存储架构下,非关系型数据库系统与关系型数据库系统的动态加入提供了管理方法,增强了混合存储架构的可扩展性。[0064]3.在设及到数据库服务器集群的问题中,故障处理问题W及处理的响应时间的问题是比较重要的问题,本发明对服务器集群W及数据库的短期故障处理提供了有效管理,方便找出发生故障的系统,提供解决方案,降低了故障发现和处理的成本。[0065]4.现有的非关系型数据库系统与关系型数据库系统的管理方式区别很多,没有一个统一的模式进行管理,本发明提供了数据混合存储架构下,用户请求的统一封装访问的方法和步骤,W及方法所需要的功能模块。[0066]5.我国目前的数据库服务器集群的现状是单一节点规模小,分布于不同的地理地点,所W需要一个便于管理具有多个非关系型数据库系统与关系型数据库系统的地理分布的存储架构。本发明就满足了运种需求。【附图说明】[0067]下面结合附图对本发明作进一步的说明:[0068]图1为目前的混合存储架构下的数据库管理状况的示意图。[0069]图2为本发明所述的混合存储架构下的数据访问方法中的数据库管理状况的示意图。[0070]图3为本发明所述的混合存储架构下的数据访问方法中的用户访问模块、响应模块、非关系型数据库系统与关系型数据库系统注册管理模块、路由模块、请求转换的代理模块等功能模块的总体架构图。[0071]图4为本发明所述的混合存储架构下的数据访问方法的请求转换代理模块的内部功能模块的架构的示意图。[0072]图5为本发明所述的混合存储架构下的数据访问方法的用户访问模块的用户界面和封装功能模块的逻辑图。[0073]图6为本发明所述的混合存储架构下的数据访问方法中非关系型数据库系统与关系型数据库系统注册管理模块的内部功能模块的架构示意图。[0074]图7为本发明所述的混合存储架构下的数据访问方法的流程图。【具体实施方式】[0075]下面结合附图对本发明作详细的描述:[0076]参阅图1,单独的关系型数据库系统已经不能满足数据存储与访问的需要,新兴的非关系型数据库集群系统与传统的关系型数据库系统相结合已是趋势,但是目前不论是传统的关系型数据库系统还是新兴的非关系型数据库系统都有各自独立的访问方式,目前传统的方式就是对非关系型数据库系统与关系型数据库系统进行分开处理,运样不利于统一地进行数据访问与管理,所W本发明致力于实现混合存储架构下的数据统一访问方法。[0077]参阅图2,本发明提供了一种适合于电子商务企业和其他使用混合存储架构的企业的数据统一访问系统。该系统提供了混合存储架构下的数据访问和数据库管理的功能。设及到的企业的特征是具有多种类的数据存储需求,并且W非关系型数据库系统和关系型数据库系统混合存储架构为基本存储架构。[0078]不同于传统的分开处理的方式(如图1所示),本发明所述的混合存储架构下的数据访问方法基于对化ase(是一个分布式的、面向列的开源数据库)与MongoDB(目前在IT行业非常流行的一种非关系型数据库)等非关系型数据库系统系统的研究,对键值对存储、列式存储、文档存储和图数据库的数据存储模型等非关系型数据模型的研究,对混合存储架构的理解和对目前使用web(互联网)服务的方法的研究,在对不同数据需求应采取不同的存储策略的认识的基础上,针对引入不同类型存储系统带来的复杂性,数据操作形式多样性,系统短期故障等问题,给出了一种有效管理方法和系统架构的设计。本方法旨在用统一的方式管理非关系型数据库系统与关系型数据库系统的混合数据。[0079]参阅图3,混合存储架构下的数据访问系统应包括如下部分:用户访问端,后台辅助端,响应端。[0080]1.用户访问端包括用户界面模块和请求验证模块[0081]用户访问端的用户界面的作用为让软件程序与使用者进行交互,本专利提供的用户访问模块是用W显示集群W及数据库信息、封装请求、提供用户访问接口与显示接收请求结果的用户访问模块。而请求验证的作用是验证请求的发起者的权限。[0082]2.后台辅助端包括访问缓存模块W及用户管理模块[0083]用户管理要想实现统一地访问管理,那么"管理者"需要知道管理着谁,它们都做了些什么,本方法要实现混合存储架构下的数据访问就需要一个模块,它存储与管理混合架构的元数据信息(元数据信息即描述数据属性的信息)。它也能生成记录存储系统情况的日志并进行数据库系统的信息注册和管理。[0084]1)数据库的日志文件用来记录数据的修改操作,其中的每条日志记录或者记录所执行的逻辑操作,或者记录已修改数据的前像和后像。前像是操作执行前的数据复本;后像是操作执行后的数据复本;[0085]2)由于混合架构是有不同类型的数据库组成,进行访问与管理必须知道混合架构的组成信息,数据库&集群信息注册和管理模块就是为了对架构的组成统一管理;[0086]此外由于可能同时有多个用户请求访问混合架构下的非关系型数据库系统中的同一个非关系型数据库系统或者关系型数据库系统中的某个数据库,所W需要一个缓存用户访问模块分发用户请求的用户访问缓存模块。[0087]3.响应端包括路由模块与请求转换模块[0088]路由模块作用是分发用户请求到不同的数据库系统。[0089]现有的数据访问请求不会同时访问非关系型数据库系统与关系型数据库系统,当一个请求出现时,需要一个代理模块,将用户请求与非关系型数据库系统或关系型数据库系统对应起来,路由模块就是为了实现运个对应的功能。[0090]请求转换模块有很多,每一请求转换模块都专口对应一个非关系型数据库或者一个关系型数据库,所W运个请求转换模块的个数与混合存储架构下非关系型数据库数量和关系型数据库的数量的总和相同。[0091]当上述提到的路由模块将用户请求与非关系型数据库系统与关系型数据库系统对应起来后,某一个模块只专口处理其对应的请求,运就是混合存储架构的若干个请求转换模块。[0092]具体说明如下:[0093]1.参阅图4,软件程序包括若干个请求转换模块,模块的个数与混合存储架构下非关系型数据库数量和关系型数据库的数量的总和相同。[0094]每一个请求转换模块的内部包括:[00M]1)二级请求缓存模块[0096]二级请求缓存模块缓存路由模块发送过来的用户统一格式的请求。[0097]2)请求解析编译模块[0098]请求解析编译模块作为处理请求的模块,将请求转换成系统中某一个数据库对应的查询接口或者转换成某种规范格式(比如S化语句)。[0099]请求解析编译模块根据特定的解析编译规则来解析和编译,运套规则是根据某一个非关系型数据库和某一个关系型数据库而特别制定的,用来将统一的用户请求转换为其对应的查询接口或者转换成某种规范格式(比如S化语句),称之为解析规则1。[0100]3)请求发送模块[0101]由(请求解析编译模块)转换完成的请求将会由请求发送模块根据数据库标识W及管理节点的IP地址,即(IDJP)数据对,将请求发送到相应的某一个非关系型数据库或者某一个关系型数据库。[0102]4)结果接受模块[0103]数据库在接收请求后,将相应的请求的执行结果发送给结果接收模块[0104]5)结果封装模块[0105]结果接收模块将其交给结果封装模块,结果封装模块根据封装规则1将其封装为统一的格式。[0106]运里解析规则I与封装规则I是相互对应的一套规则,规定了特定数据请求格式与统一封装的格式之间的转换规则,两套规则应该是可逆的,并且要求使用同样的统一格式。最后,结果封装模块将封装好的结果发送至响应缓存模块。[0107]2.参阅图5,本发明的一个实施例包括一个用户界面,用W显示集群W及数据库信息、封装请求、展示用户访问接口、显示请求结果。[0108]用户访问模块主要由用户界面和请求验证模块组成,可WW脚本(计算机的脚本程序是确定一系列控制计算机进行运算操作动作的组合)的形式存在。[0109]用户界面由W下部分构成:[0110]1)集群&数据库信息选择区域。[0111]2)可用APIW及当前集群&数据库信息检视区域。[0112]3)查询请求区域。[011引4)请求封装器。[0114]5)结果展示区域[0115]非关系型数据库系统和关系型数据库系统的信息通过验证模块确定正常工作后,就将其信息显示在用户界面的集群&数据库信息选择区域,供用户选择想要发送请求的非关系型数据库系统和关系型数据库系统。[0116]用户当前选择的非关系型数据库系统和关系型数据库系统信息显示在可用APIW及当前集群&数据库信息检视区域中,供用户参阅。[0117]用户的请求由请求封装器根据封装规则1,将特定非关系型数据库系统和关系型数据库系统请求封装成统一格式的请求,发送给用户访问缓存。[0118]3.参阅图6,本发明的一个实施例包括一个存储不同数据库与集群元数据信息,管理元数据信息和数据库W及记录存储系统情况的日志的非关系型数据库系统和关系型数据库系统信息注册和管理模块。[0119]非关系型数据库系统和关系型数据库系统信息注册和管理模块由W下部分构成:[0120]1)元数据信息维护模块。[0121]2)日志管理模块。[0122]3)集群&数据库元数据记录。[0123]4)存储系统故障管理日志。[0124]5)存储系统变更管理日志。[0125]元数据的信息至少包括W下内容:[id,name,type,抓L,s1:ate,agent,a],其中id为存储系统的唯一标识,name属性指定了存储系统的名称,URL为存储系统的管理节点的位置,S化te说明了存储系统的状态,agent指定了转换代理的标识,a为代理的激活标识,下面表格是一组模拟的系统元数据的实例。[0126]表1元数据信息实例[0127][0128]元数据信息的建立,更新,删除和查找操作都由元数据信息维护模块完成,每当有存储系统故障或恢复,或者存储系统的增加或伤处,元数据信息维护模块还要通知系统日志管理模块完成对相应的日志的管理。[0129]故障管理日志和系统变更日志需要记录发生故障或恢复,W及存储系统变更的时间,相应变动的系统的情况。[0130]4.软件程序包括一个分发用户请求到不同的非关系型数据库系统和关系型数据库系统访问的代理的路由模块。[0131]路由模块主要维护一张(id,agent)的对应关系表,该表表示了特定系统到特定转换代理的内容路由规则。路由模块负责根据路由规则表来分发请求到不同的用户请求转换代理。[0132]5.-个缓存用户访问模块分发的用户请求的用户访问缓存。[0133]6.-个缓存请求转换代理返回的查询结果或报告的响应缓存。[0134]本发明所述的混合存储架构下的数据访问方法[0135]参阅图7,本发明所述的混合存储架构下的数据访问方法包含两大部分即数据请求处理部分和软件程序变更与故障处理部分。[0136]-个全面的混合存储架构下的数据访问方法必须既能完成数据访问任务又能实时的处理出现的异常情况。如图所示,在按右侧步骤提供数据访问服务的同时,本方法同时在线实时监听软件运行,一旦发生异常情况按左侧的软件变更与故障处理部分的步骤实时处理。[0137]本发明所述的混合存储架构下的数据访问方法的步骤如下:[0138]本方法包含两个部分:[0139]一.数据请求处理[0140]1.验证用户的访问请求:[0141]1)验证用户请求的合法性[0142]用户的每一个请求将带有所请求的NoSql集群系统或者RDBMS系统的唯一标识ID,运里主要验证的合法性是用户请求的ID代表的系统元数据项Ii是否存在W及该项的状态位标记是否为正常Normal,同时代理可用,即标记为Activated。用户授权等检测任务为非关系型数据库系统或者关系型数据库系统自带的任务功能,本专利软件则将不设及,而是直接传递给响应的非关系型数据库系统或者关系型数据库系统让其内部自行进行处理,并将处理结果反馈给用户。[0143]2)加快验证速度[0144]为了加快验证速度,请求验证模块可W通过查询元数据信息项的缓存完成验证。运里可W给验证模块分配一个元数据信息的针对数据库或集群状态标志位W及代理模块的激活位的一个部分缓存,即UcU集群或数据库系统状态标记为,代理激活位}。运样利用缓存即可加快验证速度。[0145]2.数据访问请求添加至访问缓存;[0146]3.请求的路由处理:[0147]1)可W视用户访问模块为用户请求的生产者,路由模块为用户请求的消费者,从而使用生产者消费者问题的解决策略来处理访问缓存中的用户请求。[0148]2)路由模块检测访问缓存中存在待处理的访问请求,就根据路由信息,将请求发送给相应的非关系型数据库系统或者关系型数据库系统的请求转换模块Ai。[0149]3)Ai设有第二级缓存,请求放入其缓存。[0150]其中路由信息需要按照一定周期T进行维护,路由信息的维护通过周期性查询元数据信息项来完成。需要注意的是,运里的请求的路由类似一种内容的路由策略,只是将具有某个非关系型数据库系统或者关系型数据库系统的标识ID的请求发送给与运个ID代表的非关系型数据库系统或者关系型数据库系统相应的代理模块Ai。[0151]4.转换代理的处理:[0152]1)代理模块Al对相应二级缓存中的请求进行解析,编译,得到可W被非关系型数据库系统或者关系型数据库系统处理的请求,主要实现的是用户请求形式的转换,即由统一封装的请求转换为各个非关系型数据库系统或者关系型数据库系统能够处理的的具体的请求格式(API)。[0153]2)代理模块Al将处理过的结果发送给相应的非关系型数据库系统或者关系型数据库系统系统。[0154]5.请求的执行:[0155]1)非关系型数据库系统或者关系型数据库系统执行请求后,如果产生需要返回给用户的数据结果,或者产生请求执行报告,将返回结果或者报告返回给结果接受模块Ai。[0156]2)Ai将结果封装为统一的格式,并发送封装后的结果封装模块。[0157]6.产生统一格式的结果或者报告:[0158]方法进行1至6步骤中的任一步骤时数据访问出现了问题,方法将转入第二部分即进入系统变更与故障处理部分;[0159]二.软件变更与故障处理[0160]1.元数据信息的周期性检测与响应:[0161]1)R非关系型数据库系统或者关系型数据库系统每间隔一个查询周期T2向元数据信息列表中的每一项所代表的非关系型数据库系统或者关系型数据库系统发送一个检测消息Ml。[0162]2)收到Ml的非关系型数据库系统或者关系型数据库系统发送相应的响应消息M2。[0163]3)非关系型数据库系统或者关系型数据库系统在一个预计的得到响应的时间T3内没有收到M2,则在响应列表项Ii(Item,第i个表项简记为Ii)的状态处标记为故障F(failed)。[0164]4)记录发生故障的时间等情况的存储系统故障管理日志。[0165]运里的查询周期T2取值可W根据预测或者根据经验选取一个的平均可能发生故障或变更的时间,运个时间和非关系型数据库系统或者关系型数据库系统的总数目有关。另一方面,预计得到响应的时间T3与实际非关系型数据库系统或者关系型数据库系统的分布等因素有关,它是一个可W经过若干次反复的测试得到的平均响应时间,反映了正常状态下的非关系型数据库系统或者关系型数据库系统响应能力。[0166]2.软件变更处理:[0167]软件如果检测到发生的是软件变更,则按照企业的存储系统中新的变更方法管理。[0168]1)每新增一个非关系型数据库系统或者关系型数据库系统就向数据库&集群信息注册管理模块(畑BMS&NoSqlclusterregisterandmanagemodule,W下简称R&NRMM)注册该非关系型数据库系统或者关系型数据库系统的元数据信息,元数据信息项设置故障标识位,并且新加入的元数据信息项Yi的故障标记位标记为正常Normal。记录存储系统变更管理日志,将增加系统成功与否的结果写入日志。[0169]2)每减少一个非关系型数据库系统或者关系型数据库系统在非关系型数据库系统或者关系型数据库系统中删除对应的元数据信息。记录存储系统变更管理日志,将删除系统成功与否的结果写入日志。[0170]其中,不同类型的非关系型数据库系统或者关系型数据库系统元数据信息都W统一的形式进行存储和管理。[0171]3)请求转换模块的处理与维护:[0172](1)每有新响应列表项Ii增加,就集成或者调用一个请求转换代理模块(Agent,第i个代理模块简记为Ai),并标记为激活Activated;[0173](2)每有响应列表项Ii被标记为故障F,则其代理模块Al被标记为失效NotActivated。运里的代理模块Al是为相应的非关系型数据库系统或者关系型数据库系统专有的。[0174]3.故障处理:[0175]如果检测到发生的是故障,则判断是否为长久故障。[0176]1)如果为非关系型数据库系统或者关系型数据库系统临时故障则:[0177](1)每个发生故障的闲自关系型数据库系统或者关系型数据库系统设有一个相应的故障恢复时间T4,若某个发生故障的非关系型数据库系统或者关系型数据库系统在其恢复时间T4内恢复正常,则向非关系型数据库系统或者关系型数据库系统发送一个故障恢复消息M3。[0178](2)非关系型数据库系统或者关系型数据库系统收到该消息后,将相应的元数据项的故障标记位改为正常,即F-〉Normal,同时相应的Ai的激活位改为激活的,即NotActivated-〉Activated。[0179](3)恢复的时间W及结果写入到存储系统故障管理日志。[0180]运里的故障恢复时间T4为特定非关系型数据库系统或者关系型数据库系统的平均短期故障恢复值,可由经验获得。[0181]2)如果为长久故障则:[0182](1)若在故障恢复时间T3内没有收到相应项的恢复消息M3,则假定该非关系型数据库系统或者关系型数据库系统将长期不可用。[0183](2)删除R&NRMM中不可用的数据库或者集群对应的元数据项Yi,然后删除或者撤销与代理模块Al的链接。[0184](3)删除的时间W及相关信息写入存储系统变更管理日志。[01化]实施例:[0186]本发明实施例的混合存储架构下的数据访问方法,包括如下步骤:[0187]步骤1:构建混合架构的数据库系统(至少包括一个关系型数据库和一个非关系型数据库)。[0188]步骤2:提供一个用户界面,用户利用界面向系统发送请求。[0189]步骤3:系统根据用户的请求,将该请求转发给对应的数据库。[0190]步骤4:对应的数据库接收到请求后响应该请求,并将结果封装转发给系统。[0191]步骤5:系统将结果返还给用户。[0192]举例说明:[0193]实施例1:用户1在用户端输入请求:selec巧打omtablel化2后,系统验证用户1是否具有权限,如果用户1不具有权限则不支持此请求,如果用户1具有该权限则将该请求转发给数据访问系统。系统根据用户1的请求将该请求转发给DB2数据库(IBM公司的关系型数据库),DB2数据库接收到该请求后执行该请求生成结果集,并将结果集转发给系统。最后系统将结果集展示给用户1。访问没有采取统一格式的混合存储架构需要用户自己找寻对应的数据库节点,并且要求用户了解每一种类型的数据库,不仅操作复杂对工作人员的要求也较高。通过此例可W明显看到本方法基于统一的查询格式,简化了混合存储架构下数据访问方法的复杂度。[0194]实施例2:用户2在用户端输入请求:db.users.find(nul1,{"name":true,"country":t;rue,"_id":false})mongoDB后,系统验证用户2是否具有权限,如果用户2不具有权限则不支持此请求,如果用户2具有该权限则将该请求转发给数据访问系统。系统根据用户2的请求将该请求转发给mongoDB数据库(热口的非关系型数据库),mongoDB数据库接收到该请求后执行该请求生成结果集,并将结果集转发给系统。最后系统将结果集展示给用户2。[01巧]实施例3:用户3在用户端输入select*f;rom化ble3oracle后,系统验证用户3是否具有权限,如果用户3不具有权限则不支持此请求,如果用户3具有该权限则将该请求转发给数据访问系统。系统根据用户3的请求将该请求转发给化acle数据库(甲骨文公司的关系型数据库),但是此时化acle数据库节点服务器发生了故障,请求无法传达,系统将错误发送给故障处理模块。故障处理模块进行判断此时化acle数据库节点服务器发生了故障,故障处理模块发出警告并返回给用户3错误信息。【主权项】1.一种混合存储架构下的数据访问方法,其特征在于,所述的混合存储架构下的数据访问方法步骤如下:1)数据请求处理:(1)验证用户的访问请求;(2)数据访问请求添加至访问缓存;(3)请求的路由处理;(4)转换代理的处理;(5)请求的执行;(6)产生统一格式的结果或者报告;2)软件变更与故障处理:(1)元数据信息的周期性检测与响应;(2)软件变更处理;(3)故障处理。2.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的验证用户的访问请求是指:1)验证用户请求的合法性用户的每一个请求将带有所请求的NoSql集群系统或者RDBMS系统的唯一标识ID,这里主要验证的合法性是用户请求的ID代表的系统元数据项^是否存在以及该项的状态位标记是否为正常Normal,同时代理可用,即标记为Activated;用户授权等检测任务为非关系型数据库系统或者关系型数据库系统自带的任务功能,本技术方案则将不涉及,而是直接传递给响应的非关系型数据库系统或者关系型数据库系统让其内部自行进行处理,并将处理结果反馈给用户;2)加快验证速度为了加快验证速度,请求验证模块通过查询元数据信息项的缓存完成验证;这里给验证模块分配一个元数据信息的针对数据库或集群状态标志位以及代理模块的激活位的一个部分缓存;这样利用缓存即可加快验证速度。3.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的请求的路由处理是指:1)视用户访问模块为用户请求的生产者,路由模块为用户请求的消费者,从而使用生产者消费者问题的解决策略来处理访问缓存中的用户请求;2)路由模块检测访问缓存中存在待处理的访问请求,就根据路由信息,将请求发送给相应的非关系型数据库系统或者关系型数据库系统的请求转换模块Ai;3)Ai设有第二级缓存,请求放入其缓存其中路由信息需要按照一定周期T进行维护,路由信息的维护通过周期性查询元数据信息项来完成,需要注意的是,这里的请求的路由类似一种内容的路由策略,只是将具有某个非关系型数据库系统或者关系型数据库系统的标识ID的请求发送给与这个ID代表的非关系型数据库系统或者关系型数据库系统相应的代理模块A1134.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的转换代理的处理是指:1)代理模块仏对相应二级缓存中的请求进行解析,编译,得到可以被非关系型数据库系统或者关系型数据库系统处理的请求,主要实现的是用户请求形式的转换,即由统一封装的请求转换为各个非关系型数据库系统或者关系型数据库系统能够处理的的具体的请求格式;2)代理模块仏将处理过的结果发送给相应的非关系型数据库系统或者关系型数据库系统系统。5.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的请求的执行是指:1)非关系型数据库系统或者关系型数据库系统执行请求后,如果产生需要返回给用户的数据结果,或者产生请求执行报告,将返回结果或者报告返回给结果接受模块A1;2.M将结果封装为统一的格式,并发送封装后的结果封装模块。6.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的元数据信息的周期性检测与响应是指:1.R非关系型数据库系统或者关系型数据库系统每间隔一个查询周期T2向元数据信息列表中的每一项所代表的非关系型数据库系统或者关系型数据库系统发送一个检测消息Ml;2)收到Ml的非关系型数据库系统或者关系型数据库系统发送相应的响应消息M2;3)非关系型数据库系统或者关系型数据库系统在一个预计的得到响应的时间T3内没有收到M2,则在响应列表项Ii的状态处标记为故障F;4)记录发生故障的时间等情况的存储系统故障管理日志这里的查询周期T2取值可以根据预测或者根据经验选取一个的平均可能发生故障或变更的时间,这个时间和非关系型数据库系统或者关系型数据库系统的总数目有关。另一方面,预计得到响应的时间T3与实际非关系型数据库系统或者关系型数据库系统的分布等因素有关,它是一个可以经过若干次反复的测试得到的平均响应时间,反映了正常状态下的非关系型数据库系统或者关系型数据库系统响应能力。7.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的软件变更处理是指:1)每新增一个非关系型数据库系统或者关系型数据库系统就向数据库&集群信息注册管理模块注册该非关系型数据库系统或者关系型数据库系统的元数据信息,元数据信息项设置故障标识位,并且新加入的元数据信息项¥1的故障标记位标记为正常Normal;记录存储系统变更管理日志,将增加系统成功与否的结果写入日志;2)每减少一个非关系型数据库系统或者关系型数据库系统在非关系型数据库系统或者关系型数据库系统中删除对应的元数据信息;记录存储系统变更管理日志,将删除系统成功与否的结果写入日志;其中,不同类型的非关系型数据库系统或者关系型数据库系统元数据信息都以统一的形式进行存储和管理;3)请求转换模块的处理与维护:(1)每有新响应列表项I1增加,就集成或者调用一个请求转换代理模块,并标记为激活Activated;(2)每有响应列表项Ii被标记为故障F,则其代理模块Ai被标记为失效NotActivated;这里的代理模块仏是为相应的非关系型数据库系统或者关系型数据库系统专有的。8.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的故障处理是指:1)如果为非关系型数据库系统或者关系型数据库系统临时故障则:(1)每个发生故障的N非关系型数据库系统或者关系型数据库系统设有一个相应的故障恢复时间T4,若某个发生故障的非关系型数据库系统或者关系型数据库系统在其恢复时间T4内恢复正常,则向非关系型数据库系统或者关系型数据库系统发送一个故障恢复消息M3;(2)非关系型数据库系统或者关系型数据库系统收到该消息后,将相应的元数据项的故障标记位改为正常,即F->Normal,同时相应的Ai的激活位改为激活的,即NotActivated->Activated;(3)恢复的时间以及结果写入到存储系统故障管理日志;这里的故障恢复时间T4为特定非关系型数据库系统或者关系型数据库系统的平均短期故障恢复值,可由经验获得;2)如果为长久故障则:(1)若在故障恢复时间T3内没有收到相应项的恢复消息M3,则假定该非关系型数据库系统或者关系型数据库系统将长期不可用;(2)删除R&NRMM中不可用的数据库或者集群对应的元数据项1,然后删除或者撤销与代理模块仏的链接;(3)删除的时间以及相关信息写入存储系统变更管理日志。【文档编号】G06F17/30GK105956029SQ201610261353【公开日】2016年9月21日【申请日】2016年4月25日【发明人】康辉,包涵,余大洲,王凯,于跃,魏达【申请人】吉林大学