CN105956029B - 混合存储架构下的数据访问方法 - Google Patents
混合存储架构下的数据访问方法 Download PDFInfo
- Publication number
- CN105956029B CN105956029B CN201610261353.6A CN201610261353A CN105956029B CN 105956029 B CN105956029 B CN 105956029B CN 201610261353 A CN201610261353 A CN 201610261353A CN 105956029 B CN105956029 B CN 105956029B
- Authority
- CN
- China
- Prior art keywords
- request
- relational database
- user
- module
- database system
- 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.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000007726 management method Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 38
- 230000004913 activation Effects 0.000 claims abstract description 11
- 230000008859 change Effects 0.000 claims abstract description 11
- 238000013519 translation Methods 0.000 claims abstract description 11
- 238000013024 troubleshooting Methods 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 24
- 238000011084 recovery Methods 0.000 claims description 20
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000012423 maintenance Methods 0.000 claims description 10
- 238000013070 change management Methods 0.000 claims description 8
- 238000005538 encapsulation Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 4
- 230000004888 barrier function Effects 0.000 claims description 3
- 230000007774 longterm Effects 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本发明公开了混合存储架构下的数据访问方法,克服混合存储架构下数据库管理和数据访问复杂性及数据库系统变更和故障缺乏统一管理的问题,混合存储架构下的数据访问方法步骤如下:1)数据请求处理:(1)验证用户的访问请求:请求验证模块通过查询元数据信息项的缓存完成验证;给验证模块分配一个元数据信息的针对数据库或集群状态标志位以及代理模块的激活位的一个部分缓存,利用缓存即加快验证速度;(2)数据访问请求添加至访问缓存;(3)请求的路由处理;(4)转换代理的处理;(5)请求的执行;(6)产生统一格式的结果或者报告;2)软件变更与故障处理:(1)元数据信息的周期性检测与响应;(2)软件变更处理;(3)故障处理。
Description
技术领域
本发明涉及一种数据的访问方法,更确切地说,本发明涉及一种基于非关系型数据库系统与关系型数据库系统混合存储架构下的数据访问方法。
背景技术
近年来,许多公司根据实际场景,使用了多种更适于在集群上运行的数据存储技术,这些技术基本上不使用SQL(结构化查询语言),而是开源的数据库技术称之为非关系型数据库技术(NoSQL技术)。
然而,关系型数据库系统在联机事务处理方面的能力仍是非关系型数据库系统难以企及的,特别是在特定的银行以及电信等行业领域,数据的存储离不开关系型数据库。因此,混合非关系型数据库系统与关系型数据库系统的数据存储解决方案,利用二者各自的优势,使利益最大化是企业的一个明智的选择,也是目前的发展趋势。
非关系型数据库系统所采用的数据模型(有键值对模型,列族模型,文档模型,图数据库模型)与关系型数据库系统的数据模型(关系模型)不同,从本质上讲导致它们诸多不同之处的主因是两个系统在用户请求上的不同或者说是数据访问的方式的不同,而非关系型数据库系统的引入和关系型数据库系统的继续使用,也导致混合存储架构下数据的访问仍存在一定的问题:
1.参阅图1,数据库管理和数据访问的复杂性,不同的数据库要使用不用的数据库管理工具或者访问接口访问,缺乏一个统一的数据库管理的平台和数据访问途径。
2.非关系型数据库系统和关系型数据库系统的增加、删除和故障缺乏统一的监控管理,缺乏统一的应对策略。
3.若使用数据仓库技术,可使用的用于收集非关系型数据库系统数据的工具有限,缺乏一个可以统一使用的工具。
4.数据库管理员将不同的数据库封装为服务,不同存储系统引入的复杂性容易导致出现缺乏对服务进行有效管理的情况。
发明内容
本发明所要解决的技术问题是克服了混合存储架构下面临的数据库管理和数据访问的复杂性问题,以及克服了数据库系统变更和故障缺乏统一管理的问题,提供了一种混合存储架构下的数据访问方法。
为解决上述技术问题,本发明是采用如下技术方案实现的:所述的混合存储架构下的数据访问方法步骤如下:
1)数据请求处理:
(1)验证用户的访问请求;
(2)数据访问请求添加至访问缓存;
(3)请求的路由处理;
(4)转换代理的处理;
(5)请求的执行;
(6)产生统一格式的结果或者报告;
2)软件变更与故障处理:
(1)元数据信息的周期性检测与响应;
(2)软件变更处理;
(3)故障处理
所述的故障处理是指:
1)如果为非关系型数据库系统或者关系型数据库系统临时故障则:
(1)每个发生故障的N非关系型数据库系统或者关系型数据库系统设有一个相应的故障恢复时间T4,若某个发生故障的非关系型数据库系统或者关系型数据库系统在其恢复时间T4内恢复正常,则向非关系型数据库系统或者关系型数据库系统发送一个故障恢复消息M3;
(2)非关系型数据库系统或者关系型数据库系统收到该消息后,将相应的元数据项的故障标记位改为正常,即F->Normal,同时相应的Ai的激活位改为激活的,即NotActivated->Activated;
(3)恢复的时间以及结果写入到存储系统故障管理日志;
这里的故障恢复时间T4为特定非关系型数据库系统或者关系型数据库系统的平均短期故障恢复值,可由经验获得;
2)如果为长久故障则:
(1)若在故障恢复时间T3内没有收到相应项的恢复消息M3,则假定该非关系型数据库系统或者关系型数据库系统将长期不可用;
(2)删除数据库&集群信息注册管理模块中不可用的数据库或者集群对应的元数据项Yi,然后删除或者撤销与代理模块Ai的链接;
(3)删除的时间以及相关信息写入存储系统变更管理日志。
技术方案中所述的验证用户的访问请求是指:
1)验证用户请求的合法性
用户的每一个请求将带有所请求的NoSql集群系统或者RDBMS系统的唯一标识ID,这里验证的合法性是用户请求的ID代表的系统元数据项Ii是否存在以及该项的状态位标记是否为正常Normal,同时代理可用,即标记为Activated;用户授权检测任务为非关系型数据库系统或者关系型数据库系统自带的任务功能,本技术方案则将不涉及,而是直接传递给响应的非关系型数据库系统或者关系型数据库系统让其内部自行进行处理,并将处理结果反馈给用户;
2)加快验证速度
为了加快验证速度,请求验证模块通过查询元数据信息项的缓存完成验证;这里给验证模块分配一个元数据信息的针对数据库或集群状态标志位以及代理模块的激活位的一个部分缓存;这样利用缓存即可加快验证速度。
技术方案中所述的请求的路由处理是指:
1)视用户访问模块为用户请求的生产者,路由模块为用户请求的消费者,从而使用生产者消费者问题的解决策略来处理访问缓存中的用户请求;
2)路由模块检测访问缓存中存在待处理的访问请求,就根据路由信息,将请求发送给相应的非关系型数据库系统或者关系型数据库系统的请求转换模块Ai;
3)Ai设有第二级缓存,请求放入其缓存
其中路由信息需要按照一定周期T进行维护,路由信息的维护通过周期性查询元数据信息项来完成,需要注意的是,这里的请求的路由类似一种内容的路由策略,只是将具有某个非关系型数据库系统或者关系型数据库系统的标识ID的请求发送给与这个ID代表的非关系型数据库系统或者关系型数据库系统相应的代理模块Ai。
技术方案中所述的转换代理的处理是指:
1)代理模块Ai对相应二级缓存中的请求进行解析,编译,得到可以被非关系型数据库系统或者关系型数据库系统处理的请求,实现的是用户请求形式的转换,即由统一封装的请求转换为各个非关系型数据库系统或者关系型数据库系统能够处理的的具体的请求格式;
2)代理模块Ai将处理过的结果发送给相应的非关系型数据库系统或者关系型数据库系统系统。
技术方案中所述的请求的执行是指:
1)非关系型数据库系统或者关系型数据库系统执行请求后,如果产生需要返回给用户的数据结果,或者产生请求执行报告,将返回结果或者报告返回给结果接受模块Ai;
2)Ai将结果封装为统一的格式,并发送封装后的结果封装模块。
技术方案中所述的元数据信息的周期性检测与响应是指:
1)R非关系型数据库系统或者关系型数据库系统每间隔一个查询周期T2向元数据信息列表中的每一项所代表的非关系型数据库系统或者关系型数据库系统发送一个检测消息M1;
2)收到M1的非关系型数据库系统或者关系型数据库系统发送相应的响应消息M2;
3)非关系型数据库系统或者关系型数据库系统在一个预计的得到响应的时间T3内没有收到M2,则在响应列表项Ii的状态处标记为故障F;
4)记录发生故障的时间情况的存储系统故障管理日志
这里的查询周期T2取值可以根据预测或者根据经验选取一个平均可能发生故障或变更的时间,这个时间和非关系型数据库系统或者关系型数据库系统的总数目有关;另一方面,预计得到响应的时间T3与实际非关系型数据库系统或者关系型数据库系统的分布因素有关,它是一个可以经过若干次反复的测试得到的平均响应时间,反映了正常状态下的非关系型数据库系统或者关系型数据库系统响应能力。
技术方案中所述的软件变更处理是指:
1)每新增一个非关系型数据库系统或者关系型数据库系统就向数据库&集群信息注册管理模块注册该非关系型数据库系统或者关系型数据库系统的元数据信息,元数据信息项设置故障标识位,并且新加入的元数据信息项Yi的故障标记位标记为正常Normal;记录存储系统变更管理日志,将增加系统成功与否的结果写入日志;
2)每减少一个非关系型数据库系统或者关系型数据库系统在非关系型数据库系统或者关系型数据库系统中删除对应的元数据信息;记录存储系统变更管理日志,将删除系统成功与否的结果写入日志;
其中,不同类型的非关系型数据库系统或者关系型数据库系统元数据信息都以统一的形式进行存储和管理;
3)请求转换模块的处理与维护:
(1)每有新响应列表项Ii增加,就集成或者调用一个请求转换代理模块,并标记为激活Activated;
(2)每有响应列表项Ii被标记为故障F,则其代理模块Ai被标记为失效NotActivated;这里的代理模块Ai是为相应的非关系型数据库系统或者关系型数据库系统专有的。
与现有技术相比本发明的有益效果是:
1.非结构化数据的分析处理难题一直困扰着企业的运转,比如购物网站拥有海量的数据,它们当中有结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)也有非结构化数据(各种文档、图片、视频等无法用传统方法处理的数据),利用二者的结合可以挖掘出很多商业价值,但是目前的数据库管理系统要么只支持关系型数据库系统,要么只能管理非关系型数据库系统,十分不方便而且没有效率,本发明提供了对混合存储架构下的非关系型数据库系统与关系型数据库系统的统一的有效管理,一定程度上方便了数据库管理员和数据库使用的用户对存储架构的管理和使用,降低了复杂性,为企业成功引入非关系型数据库系统提供便利。
2.现有的数据管理系统体系大多数死板,对于相应模块的限制极为苛刻,而本发明对混和存储架构下,非关系型数据库系统与关系型数据库系统的动态加入提供了管理方法,增强了混合存储架构的可扩展性。
3.在涉及到数据库服务器集群的问题中,故障处理问题以及处理的响应时间的问题是比较重要的问题,本发明对服务器集群以及数据库的短期故障处理提供了有效管理,方便找出发生故障的系统,提供解决方案,降低了故障发现和处理的成本。
4.现有的非关系型数据库系统与关系型数据库系统的管理方式区别很多,没有一个统一的模式进行管理,本发明提供了数据混合存储架构下,用户请求的统一封装访问的方法和步骤,以及方法所需要的功能模块。
5.我国目前的数据库服务器集群的现状是单一节点规模小,分布于不同的地理地点,所以需要一个便于管理具有多个非关系型数据库系统与关系型数据库系统的地理分布的存储架构。本发明就满足了这种需求。
附图说明
下面结合附图对本发明作进一步的说明:
图1为目前的混合存储架构下的数据库管理状况的示意图。
图2为本发明所述的混合存储架构下的数据访问方法中的数据库管理状况的示意图。
图3为本发明所述的混合存储架构下的数据访问方法中的用户访问模块、响应模块、非关系型数据库系统与关系型数据库系统注册管理模块、路由模块、请求转换的代理模块等功能模块的总体架构图。
图4为本发明所述的混合存储架构下的数据访问方法的请求转换代理模块的内部功能模块的架构的示意图。
图5为本发明所述的混合存储架构下的数据访问方法的用户访问模块的用户界面和封装功能模块的逻辑图。
图6为本发明所述的混合存储架构下的数据访问方法中非关系型数据库系统与关系型数据库系统注册管理模块的内部功能模块的架构示意图。
图7为本发明所述的混合存储架构下的数据访问方法的流程图。
具体实施方式
下面结合附图对本发明作详细的描述:
参阅图1,单独的关系型数据库系统已经不能满足数据存储与访问的需要,新兴的非关系型数据库集群系统与传统的关系型数据库系统相结合已是趋势,但是目前不论是传统的关系型数据库系统还是新兴的非关系型数据库系统都有各自独立的访问方式,目前传统的方式就是对非关系型数据库系统与关系型数据库系统进行分开处理,这样不利于统一地进行数据访问与管理,所以本发明致力于实现混合存储架构下的数据统一访问方法。
参阅图2,本发明提供了一种适合于电子商务企业和其他使用混合存储架构的企业的数据统一访问系统。该系统提供了混合存储架构下的数据访问和数据库管理的功能。涉及到的企业的特征是具有多种类的数据存储需求,并且以非关系型数据库系统和关系型数据库系统混合存储架构为基本存储架构。
不同于传统的分开处理的方式(如图1所示),本发明所述的混合存储架构下的数据访问方法基于对Hbase(是一个分布式的、面向列的开源数据库)与MongoDB(目前在IT行业非常流行的一种非关系型数据库)等非关系型数据库系统系统的研究,对键值对存储、列式存储、文档存储和图数据库的数据存储模型等非关系型数据模型的研究,对混合存储架构的理解和对目前使用web(互联网)服务的方法的研究,在对不同数据需求应采取不同的存储策略的认识的基础上,针对引入不同类型存储系统带来的复杂性,数据操作形式多样性,系统短期故障等问题,给出了一种有效管理方法和系统架构的设计。本方法旨在用统一的方式管理非关系型数据库系统与关系型数据库系统的混合数据。
参阅图3,混合存储架构下的数据访问系统应包括如下部分:用户访问端,后台辅助端,响应端。
1.用户访问端包括用户界面模块和请求验证模块
用户访问端的用户界面的作用为让软件程序与使用者进行交互,本专利提供的用户访问模块是用以显示集群以及数据库信息、封装请求、提供用户访问接口与显示接收请求结果的用户访问模块。而请求验证的作用是验证请求的发起者的权限。
2.后台辅助端包括访问缓存模块以及用户管理模块
用户管理要想实现统一地访问管理,那么“管理者”需要知道管理着谁,它们都做了些什么,本方法要实现混合存储架构下的数据访问就需要一个模块,它存储与管理混合架构的元数据信息(元数据信息即描述数据属性的信息)。它也能生成记录存储系统情况的日志并进行数据库系统的信息注册和管理。
1)数据库的日志文件用来记录数据的修改操作,其中的每条日志记录或者记录所执行的逻辑操作,或者记录已修改数据的前像和后像。前像是操作执行前的数据复本;后像是操作执行后的数据复本;
2)由于混合架构是有不同类型的数据库组成,进行访问与管理必须知道混合架构的组成信息,数据库&集群信息注册和管理模块就是为了对架构的组成统一管理;
此外由于可能同时有多个用户请求访问混合架构下的非关系型数据库系统中的同一个非关系型数据库系统或者关系型数据库系统中的某个数据库,所以需要一个缓存用户访问模块分发用户请求的用户访问缓存模块。
3.响应端包括路由模块与请求转换模块
路由模块作用是分发用户请求到不同的数据库系统。
现有的数据访问请求不会同时访问非关系型数据库系统与关系型数据库系统,当一个请求出现时,需要一个代理模块,将用户请求与非关系型数据库系统或关系型数据库系统对应起来,路由模块就是为了实现这个对应的功能。
请求转换模块有很多,每一请求转换模块都专门对应一个非关系型数据库或者一个关系型数据库,所以这个请求转换模块的个数与混合存储架构下非关系型数据库数量和关系型数据库的数量的总和相同。
当上述提到的路由模块将用户请求与非关系型数据库系统与关系型数据库系统对应起来后,某一个模块只专门处理其对应的请求,这就是混合存储架构的若干个请求转换模块。
具体说明如下:
1.参阅图4,软件程序包括若干个请求转换模块,模块的个数与混合存储架构下非关系型数据库数量和关系型数据库的数量的总和相同。
每一个请求转换模块的内部包括:
1)二级请求缓存模块
二级请求缓存模块缓存路由模块发送过来的用户统一格式的请求。
2)请求解析编译模块
请求解析编译模块作为处理请求的模块,将请求转换成系统中某一个数据库对应的查询接口或者转换成某种规范格式(比如SQL语句)。
请求解析编译模块根据特定的解析编译规则来解析和编译,这套规则是根据某一个非关系型数据库和某一个关系型数据库而特别制定的,用来将统一的用户请求转换为其对应的查询接口或者转换成某种规范格式(比如SQL语句),称之为解析规则1。
3)请求发送模块
由(请求解析编译模块)转换完成的请求将会由请求发送模块根据数据库标识以及管理节点的IP地址,即(ID,IP)数据对,将请求发送到相应的某一个非关系型数据库或者某一个关系型数据库。
4)结果接受模块
数据库在接收请求后,将相应的请求的执行结果发送给结果接收模块
5)结果封装模块
结果接收模块将其交给结果封装模块,结果封装模块根据封装规则1将其封装为统一的格式。
这里解析规则1与封装规则1是相互对应的一套规则,规定了特定数据请求格式与统一封装的格式之间的转换规则,两套规则应该是可逆的,并且要求使用同样的统一格式。最后,结果封装模块将封装好的结果发送至响应缓存模块。
2.参阅图5,本发明的一个实施例包括一个用户界面,用以显示集群以及数据库信息、封装请求、展示用户访问接口、显示请求结果。
用户访问模块主要由用户界面和请求验证模块组成,可以以脚本(计算机的脚本程序是确定一系列控制计算机进行运算操作动作的组合)的形式存在。
用户界面由以下部分构成:
1)集群&数据库信息选择区域。
2)可用API以及当前集群&数据库信息检视区域。
3)查询请求区域。
4)请求封装器。
5)结果展示区域
非关系型数据库系统和关系型数据库系统的信息通过验证模块确定正常工作后,就将其信息显示在用户界面的集群&数据库信息选择区域,供用户选择想要发送请求的非关系型数据库系统和关系型数据库系统。
用户当前选择的非关系型数据库系统和关系型数据库系统信息显示在可用API以及当前集群&数据库信息检视区域中,供用户参阅。
用户的请求由请求封装器根据封装规则1,将特定非关系型数据库系统和关系型数据库系统请求封装成统一格式的请求,发送给用户访问缓存。
3.参阅图6,本发明的一个实施例包括一个存储不同数据库与集群元数据信息,管理元数据信息和数据库以及记录存储系统情况的日志的非关系型数据库系统和关系型数据库系统信息注册和管理模块。
非关系型数据库系统和关系型数据库系统信息注册和管理模块由以下部分构成:
1)元数据信息维护模块。
2)日志管理模块。
3)集群&数据库元数据记录。
4)存储系统故障管理日志。
5)存储系统变更管理日志。
元数据的信息至少包括以下内容:[id,name,type,URL,state,agent,a],其中id为存储系统的唯一标识,name属性指定了存储系统的名称,URL为存储系统的管理节点的位置,state说明了存储系统的状态,agent指定了转换代理的标识,a为代理的激活标识,下面表格是一组模拟的系统元数据的实例。
表1元数据信息实例
元数据信息的建立,更新,删除和查找操作都由元数据信息维护模块完成,每当有存储系统故障或恢复,或者存储系统的增加或伤处,元数据信息维护模块还要通知系统日志管理模块完成对相应的日志的管理。
故障管理日志和系统变更日志需要记录发生故障或恢复,以及存储系统变更的时间,相应变动的系统的情况。
4.软件程序包括一个分发用户请求到不同的非关系型数据库系统和关系型数据库系统访问的代理的路由模块。
路由模块主要维护一张(id,agent)的对应关系表,该表表示了特定系统到特定转换代理的内容路由规则。路由模块负责根据路由规则表来分发请求到不同的用户请求转换代理。
5.一个缓存用户访问模块分发的用户请求的用户访问缓存。
6.一个缓存请求转换代理返回的查询结果或报告的响应缓存。
本发明所述的混合存储架构下的数据访问方法
参阅图7,本发明所述的混合存储架构下的数据访问方法包含两大部分即数据请求处理部分和软件程序变更与故障处理部分。
一个全面的混合存储架构下的数据访问方法必须既能完成数据访问任务又能实时的处理出现的异常情况。如图所示,在按右侧步骤提供数据访问服务的同时,本方法同时在线实时监听软件运行,一旦发生异常情况按左侧的软件变更与故障处理部分的步骤实时处理。
本发明所述的混合存储架构下的数据访问方法的步骤如下:
本方法包含两个部分:
一.数据请求处理
1.验证用户的访问请求:
1)验证用户请求的合法性
用户的每一个请求将带有所请求的NoSql集群系统或者RDBMS系统的唯一标识ID,这里主要验证的合法性是用户请求的ID代表的系统元数据项Ii是否存在以及该项的状态位标记是否为正常Normal,同时代理可用,即标记为Activated。用户授权等检测任务为非关系型数据库系统或者关系型数据库系统自带的任务功能,本专利软件则将不涉及,而是直接传递给响应的非关系型数据库系统或者关系型数据库系统让其内部自行进行处理,并将处理结果反馈给用户。
2)加快验证速度
为了加快验证速度,请求验证模块可以通过查询元数据信息项的缓存完成验证。这里可以给验证模块分配一个元数据信息的针对数据库或集群状态标志位以及代理模块的激活位的一个部分缓存,即{id,集群或数据库系统状态标记为,代理激活位}。这样利用缓存即可加快验证速度。
2.数据访问请求添加至访问缓存;
3.请求的路由处理:
1)可以视用户访问模块为用户请求的生产者,路由模块为用户请求的消费者,从而使用生产者消费者问题的解决策略来处理访问缓存中的用户请求。
2)路由模块检测访问缓存中存在待处理的访问请求,就根据路由信息,将请求发送给相应的非关系型数据库系统或者关系型数据库系统的请求转换模块Ai。
3)Ai设有第二级缓存,请求放入其缓存。
其中路由信息需要按照一定周期T进行维护,路由信息的维护通过周期性查询元数据信息项来完成。需要注意的是,这里的请求的路由类似一种内容的路由策略,只是将具有某个非关系型数据库系统或者关系型数据库系统的标识ID的请求发送给与这个ID代表的非关系型数据库系统或者关系型数据库系统相应的代理模块Ai。
4.转换代理的处理:
1)代理模块Ai对相应二级缓存中的请求进行解析,编译,得到可以被非关系型数据库系统或者关系型数据库系统处理的请求,主要实现的是用户请求形式的转换,即由统一封装的请求转换为各个非关系型数据库系统或者关系型数据库系统能够处理的的具体的请求格式(API)。
2)代理模块Ai将处理过的结果发送给相应的非关系型数据库系统或者关系型数据库系统系统。
5.请求的执行:
1)非关系型数据库系统或者关系型数据库系统执行请求后,如果产生需要返回给用户的数据结果,或者产生请求执行报告,将返回结果或者报告返回给结果接受模块Ai。
2)Ai将结果封装为统一的格式,并发送封装后的结果封装模块。
6.产生统一格式的结果或者报告:
方法进行1至6步骤中的任一步骤时数据访问出现了问题,方法将转入第二部分即进入系统变更与故障处理部分;
二.软件变更与故障处理
1.元数据信息的周期性检测与响应:
1)R非关系型数据库系统或者关系型数据库系统每间隔一个查询周期T2向元数据信息列表中的每一项所代表的非关系型数据库系统或者关系型数据库系统发送一个检测消息M1。
2)收到M1的非关系型数据库系统或者关系型数据库系统发送相应的响应消息M2。
3)非关系型数据库系统或者关系型数据库系统在一个预计的得到响应的时间T3内没有收到M2,则在响应列表项Ii(Item,第i个表项简记为Ii)的状态处标记为故障F(failed)。
4)记录发生故障的时间等情况的存储系统故障管理日志。
这里的查询周期T2取值可以根据预测或者根据经验选取一个的平均可能发生故障或变更的时间,这个时间和非关系型数据库系统或者关系型数据库系统的总数目有关。另一方面,预计得到响应的时间T3与实际非关系型数据库系统或者关系型数据库系统的分布等因素有关,它是一个可以经过若干次反复的测试得到的平均响应时间,反映了正常状态下的非关系型数据库系统或者关系型数据库系统响应能力。
2.软件变更处理:
软件如果检测到发生的是软件变更,则按照企业的存储系统中新的变更方法管理。
1)每新增一个非关系型数据库系统或者关系型数据库系统就向数据库&集群信息注册管理模块(RDBMS&NoSql cluster register and manage module,以下简称R&N RMM)注册该非关系型数据库系统或者关系型数据库系统的元数据信息,元数据信息项设置故障标识位,并且新加入的元数据信息项Yi的故障标记位标记为正常Normal。记录存储系统变更管理日志,将增加系统成功与否的结果写入日志。
2)每减少一个非关系型数据库系统或者关系型数据库系统在非关系型数据库系统或者关系型数据库系统中删除对应的元数据信息。记录存储系统变更管理日志,将删除系统成功与否的结果写入日志。
其中,不同类型的非关系型数据库系统或者关系型数据库系统元数据信息都以统一的形式进行存储和管理。
3)请求转换模块的处理与维护:
(1)每有新响应列表项Ii增加,就集成或者调用一个请求转换代理模块(Agent,第i个代理模块简记为Ai),并标记为激活Activated;
(2)每有响应列表项Ii被标记为故障F,则其代理模块Ai被标记为失效NotActivated。这里的代理模块Ai是为相应的非关系型数据库系统或者关系型数据库系统专有的。
3.故障处理:
如果检测到发生的是故障,则判断是否为长久故障。
1)如果为非关系型数据库系统或者关系型数据库系统临时故障则:
(1)每个发生故障的N非关系型数据库系统或者关系型数据库系统设有一个相应的故障恢复时间T4,若某个发生故障的非关系型数据库系统或者关系型数据库系统在其恢复时间T4内恢复正常,则向非关系型数据库系统或者关系型数据库系统发送一个故障恢复消息M3。
(2)非关系型数据库系统或者关系型数据库系统收到该消息后,将相应的元数据项的故障标记位改为正常,即F->Normal,同时相应的Ai的激活位改为激活的,即NotActivated->Activated。
(3)恢复的时间以及结果写入到存储系统故障管理日志。
这里的故障恢复时间T4为特定非关系型数据库系统或者关系型数据库系统的平均短期故障恢复值,可由经验获得。
2)如果为长久故障则:
(1)若在故障恢复时间T3内没有收到相应项的恢复消息M3,则假定该非关系型数据库系统或者关系型数据库系统将长期不可用。
(2)删除R&N RMM中不可用的数据库或者集群对应的元数据项Yi,然后删除或者撤销与代理模块Ai的链接。
(3)删除的时间以及相关信息写入存储系统变更管理日志。
实施例:
本发明实施例的混合存储架构下的数据访问方法,包括如下步骤:
步骤1:构建混合架构的数据库系统(至少包括一个关系型数据库和一个非关系型数据库)。
步骤2:提供一个用户界面,用户利用界面向系统发送请求。
步骤3:系统根据用户的请求,将该请求转发给对应的数据库。
步骤4:对应的数据库接收到请求后响应该请求,并将结果封装转发给系统。
步骤5:系统将结果返还给用户。
举例说明:
实施例1:用户1在用户端输入请求:select*from table1db2后,系统验证用户1是否具有权限,如果用户1不具有权限则不支持此请求,如果用户1具有该权限则将该请求转发给数据访问系统。系统根据用户1的请求将该请求转发给DB2数据库(IBM公司的关系型数据库),DB2数据库接收到该请求后执行该请求生成结果集,并将结果集转发给系统。最后系统将结果集展示给用户1。访问没有采取统一格式的混合存储架构需要用户自己找寻对应的数据库节点,并且要求用户了解每一种类型的数据库,不仅操作复杂对工作人员的要求也较高。通过此例可以明显看到本方法基于统一的查询格式,简化了混合存储架构下数据访问方法的复杂度。
实施例2:用户2在用户端输入请求:db.users.find(null,{“name”:true,“country”:true,“_id”:false})mongoDB后,系统验证用户2是否具有权限,如果用户2不具有权限则不支持此请求,如果用户2具有该权限则将该请求转发给数据访问系统。系统根据用户2的请求将该请求转发给mongoDB数据库(热门的非关系型数据库),mongoDB数据库接收到该请求后执行该请求生成结果集,并将结果集转发给系统。最后系统将结果集展示给用户2。
实施例3:用户3在用户端输入select*from table3oracle后,系统验证用户3是否具有权限,如果用户3不具有权限则不支持此请求,如果用户3具有该权限则将该请求转发给数据访问系统。系统根据用户3的请求将该请求转发给Oracle数据库(甲骨文公司的关系型数据库),但是此时Oracle数据库节点服务器发生了故障,请求无法传达,系统将错误发送给故障处理模块。故障处理模块进行判断此时Oracle数据库节点服务器发生了故障,故障处理模块发出警告并返回给用户3错误信息。
Claims (7)
1.一种混合存储架构下的数据访问方法,其特征在于,所述的混合存储架构下的数据访问方法步骤如下:
1)数据请求处理:
(1)验证用户的访问请求;
(2)数据访问请求添加至访问缓存;
(3)请求的路由处理;
(4)转换代理的处理;
(5)请求的执行;
(6)产生统一格式的结果或者报告;
2)软件变更与故障处理:
(1)元数据信息的周期性检测与响应;
(2)软件变更处理;
(3)故障处理;
所述的故障处理是指:
a.如果为非关系型数据库系统或者关系型数据库系统临时故障则:
a)每个发生故障的N非关系型数据库系统或者关系型数据库系统设有一个相应的故障恢复时间T4,若某个发生故障的非关系型数据库系统或者关系型数据库系统在其恢复时间T4内恢复正常,则向非关系型数据库系统或者关系型数据库系统发送一个故障恢复消息M3;
b)非关系型数据库系统或者关系型数据库系统收到该消息后,将相应的元数据项的故障标记位改为正常,即F->Normal,同时相应的Ai的激活位改为激活的,即Not Activated->Activated;
c)恢复的时间以及结果写入到存储系统故障管理日志;
这里的故障恢复时间T4为特定非关系型数据库系统或者关系型数据库系统的平均短期故障恢复值,可由经验获得;
b.如果为长久故障则:
a)若在故障恢复时间T3内没有收到相应项的恢复消息M3,则假定该非关系型数据库系统或者关系型数据库系统将长期不可用;
b)删除数据库&集群信息注册管理模块中不可用的数据库或者集群对应的元数据项Yi,然后删除或者撤销与代理模块Ai的链接;
c)删除的时间以及相关信息写入存储系统变更管理日志。
2.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的验证用户的访问请求是指:
1)验证用户请求的合法性
用户的每一个请求将带有所请求的NoSql集群系统或者RDBMS系统的唯一标识ID,这里验证的合法性是用户请求的ID代表的系统元数据项Ii是否存在以及该项的状态位标记是否为正常Normal,同时代理可用,即标记为Activated;用户授权检测任务为非关系型数据库系统或者关系型数据库系统自带的任务功能,本技术方案则将不涉及,而是直接传递给响应的非关系型数据库系统或者关系型数据库系统让其内部自行进行处理,并将处理结果反馈给用户;
2)加快验证速度
为了加快验证速度,请求验证模块通过查询元数据信息项的缓存完成验证;这里给验证模块分配一个元数据信息的针对数据库或集群状态标志位以及代理模块的激活位的一个部分缓存;这样利用缓存即可加快验证速度。
3.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的请求的路由处理是指:
1)视用户访问模块为用户请求的生产者,路由模块为用户请求的消费者,从而使用生产者消费者问题的解决策略来处理访问缓存中的用户请求;
2)路由模块检测访问缓存中存在待处理的访问请求,就根据路由信息,将请求发送给相应的非关系型数据库系统或者关系型数据库系统的请求转换模块Ai;
3)Ai设有第二级缓存,请求放入其缓存
其中路由信息需要按照一定周期T进行维护,路由信息的维护通过周期性查询元数据信息项来完成,需要注意的是,这里的请求的路由类似一种内容的路由策略,只是将具有某个非关系型数据库系统或者关系型数据库系统的标识ID的请求发送给与这个ID代表的非关系型数据库系统或者关系型数据库系统相应的代理模块Ai。
4.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的转换代理的处理是指:
1)代理模块Ai对相应二级缓存中的请求进行解析,编译,得到可以被非关系型数据库系统或者关系型数据库系统处理的请求,实现的是用户请求形式的转换,即由统一封装的请求转换为各个非关系型数据库系统或者关系型数据库系统能够处理的的具体的请求格式;
2)代理模块Ai将处理过的结果发送给相应的非关系型数据库系统或者关系型数据库系统系统。
5.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的请求的执行是指:
1)非关系型数据库系统或者关系型数据库系统执行请求后,如果产生需要返回给用户的数据结果,或者产生请求执行报告,将返回结果或者报告返回给结果接受模块Ai;
2)Ai将结果封装为统一的格式,并发送封装后的结果封装模块。
6.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的元数据信息的周期性检测与响应是指:
1)R非关系型数据库系统或者关系型数据库系统每间隔一个查询周期T2向元数据信息列表中的每一项所代表的非关系型数据库系统或者关系型数据库系统发送一个检测消息M1;
2)收到M1的非关系型数据库系统或者关系型数据库系统发送相应的响应消息M2;
3)非关系型数据库系统或者关系型数据库系统在一个预计的得到响应的时间T3内没有收到M2,则在响应列表项Ii的状态处标记为故障F;
4)记录发生故障的时间情况的存储系统故障管理日志
这里的查询周期T2取值可以根据预测或者根据经验选取一个平均可能发生故障或变更的时间,这个时间和非关系型数据库系统或者关系型数据库系统的总数目有关;另一方面,预计得到响应的时间T3与实际非关系型数据库系统或者关系型数据库系统的分布因素有关,它是一个可以经过若干次反复的测试得到的平均响应时间,反映了正常状态下的非关系型数据库系统或者关系型数据库系统响应能力。
7.按照权利要求1所述的混合存储架构下的数据访问方法,其特征在于,所述的软件变更处理是指:
1)每新增一个非关系型数据库系统或者关系型数据库系统就向数据库&集群信息注册管理模块注册该非关系型数据库系统或者关系型数据库系统的元数据信息,元数据信息项设置故障标识位,并且新加入的元数据信息项Yi的故障标记位标记为正常Normal;记录存储系统变更管理日志,将增加系统成功与否的结果写入日志;
2)每减少一个非关系型数据库系统或者关系型数据库系统在非关系型数据库系统或者关系型数据库系统中删除对应的元数据信息;记录存储系统变更管理日志,将删除系统成功与否的结果写入日志;
其中,不同类型的非关系型数据库系统或者关系型数据库系统元数据信息都以统一的形式进行存储和管理;
3)请求转换模块的处理与维护:
(1)每有新响应列表项Ii增加,就集成或者调用一个请求转换代理模块,并标记为激活Activated;
(2)每有响应列表项Ii被标记为故障F,则其代理模块Ai被标记为失效Not Activated;这里的代理模块Ai是为相应的非关系型数据库系统或者关系型数据库系统专有的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610261353.6A CN105956029B (zh) | 2016-04-25 | 2016-04-25 | 混合存储架构下的数据访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610261353.6A CN105956029B (zh) | 2016-04-25 | 2016-04-25 | 混合存储架构下的数据访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105956029A CN105956029A (zh) | 2016-09-21 |
CN105956029B true CN105956029B (zh) | 2019-06-07 |
Family
ID=56915257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610261353.6A Expired - Fee Related CN105956029B (zh) | 2016-04-25 | 2016-04-25 | 混合存储架构下的数据访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105956029B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280097B (zh) * | 2017-01-06 | 2022-09-09 | 阿里云计算有限公司 | 一种数据库系统的故障处理方法和装置 |
CN107491544B (zh) * | 2017-08-25 | 2020-12-29 | 上海德拓信息技术股份有限公司 | 一种增强非关系型数据库分析能力的数据处理平台 |
CN108040045B (zh) * | 2017-12-07 | 2021-05-07 | 百度在线网络技术(北京)有限公司 | 访问流量文件的生成方法、装置、服务器及存储介质 |
CN108829803A (zh) * | 2018-06-06 | 2018-11-16 | 上海钰登互联网科技有限公司 | 一种基于数据采集的数据分发和处理方法 |
CN110290035B (zh) * | 2019-06-27 | 2021-05-11 | 四川长虹电器股份有限公司 | 一种基于k3s的智慧家庭数据存储访问方法及系统 |
CN110764700B (zh) * | 2019-10-12 | 2023-02-07 | 未鲲(上海)科技服务有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN111415014B (zh) * | 2020-03-20 | 2023-10-20 | 中国建设银行股份有限公司 | 一种模型预测的结果数据管理系统及方法 |
CN113495921B (zh) * | 2020-04-02 | 2023-09-26 | 北京京东振世信息技术有限公司 | 一种数据库集群的路由方法和装置 |
CN112637293B (zh) * | 2020-12-14 | 2023-03-24 | 北京爱奇艺科技有限公司 | 数据修复系统、方法、装置、电子设备及存储介质 |
CN113138963A (zh) * | 2021-04-28 | 2021-07-20 | 东北大学 | 铝/铜板带材工业大数据平台人机交互系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794247A (zh) * | 2015-05-14 | 2015-07-22 | 东南大学 | 一种多结构数据库集成查询方法 |
CN105512167A (zh) * | 2015-10-30 | 2016-04-20 | 广东广信通信服务有限公司 | 一种基于混合数据库的多业务用户数据管理系统及其方法 |
-
2016
- 2016-04-25 CN CN201610261353.6A patent/CN105956029B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794247A (zh) * | 2015-05-14 | 2015-07-22 | 东南大学 | 一种多结构数据库集成查询方法 |
CN105512167A (zh) * | 2015-10-30 | 2016-04-20 | 广东广信通信服务有限公司 | 一种基于混合数据库的多业务用户数据管理系统及其方法 |
Non-Patent Citations (2)
Title |
---|
NoSQL背景下的混合存储解决方案研究与实现;王凯;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150915(第09(2015)期);第I138-1267页 |
混合数据存储的对象关系映射框架的设计与实现;陈诚;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140415(第04(2014)期);第I138-164页 |
Also Published As
Publication number | Publication date |
---|---|
CN105956029A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105956029B (zh) | 混合存储架构下的数据访问方法 | |
US20200183932A1 (en) | Optimizing write operations in object schema-based application programming interfaces (apis) | |
US11711420B2 (en) | Automated management of resource attributes across network-based services | |
CA3025493C (en) | Optimizing read and write operations in object schema-based application programming interfaces (apis) | |
CN106776780B (zh) | 一种云环境中数据交换与共享方法及系统 | |
US7523130B1 (en) | Storing and retrieving objects on a computer network in a distributed database | |
US9116946B2 (en) | System and method for interacting with a plurality of data sources | |
CN111507709B (zh) | 一种数据溯源系统 | |
CN107315776A (zh) | 一种基于云计算的数据管理系统 | |
CN111680041B (zh) | 面向异构数据的安全高效存取方法 | |
CN102033912A (zh) | 一种分布式数据库访问方法及系统 | |
CN101803284A (zh) | 在网络管理系统中传播加速事件的方法和设备 | |
US11362912B2 (en) | Support ticket platform for improving network infrastructures | |
CN107800808A (zh) | 一种基于Hadoop架构的数据存储系统 | |
CN110188132B (zh) | 一种数据交换方法及系统 | |
Jeong et al. | An IoT platform for civil infrastructure monitoring | |
CN107277086A (zh) | 业务处理系统、业务处理方法以及业务更新方法 | |
CN112860777B (zh) | 数据处理方法、装置及设备 | |
CN101360123A (zh) | 一种网络系统及其管理方法 | |
CN103561083B (zh) | 一种物联网数据处理方法 | |
US10425335B2 (en) | Reconstructing message flows based on hash values | |
CN113067717A (zh) | 网络请求日志链式跟踪方法、全链路调用监控系统和介质 | |
CN111427869A (zh) | 一种基于区块链的日志系统 | |
US8626716B1 (en) | Service broker enhancements | |
CN103853612A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190607 |