数据存储装置、转译装置及数据库访问方法制造方法及图纸

技术编号:21658632 阅读:21 留言:0更新日期:2019-07-20 05:38
本公开的一个或多个实施例提供一种数据存储装置、转译装置及数据库访问方法。该数据存储装置有包括有利用关系数据表存储非关系数据模型数据的关系数据库,非关系数据模型符合非结构化查询语言(NoSQL)规范。该存储装置还包括转译模块,将符合所述非结构化查询语言(NoSQL)规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问。

Data Storage Device, Translating Device and Database Access Method

【技术实现步骤摘要】
数据存储装置、转译装置及数据库访问方法
本专利技术涉及数据库领域,尤其涉及一种提供非关系访问的关系数据库。
技术介绍
目前,关系型数据库以其原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))(ACID)的优点在包括金融等各行业得到充足发展与广泛使用。但是由于传统的关系型数据库在应对大数据的存储、查询和分析等需求时,出现了性能和规模上的瓶颈,因此各种非关系型数据库(NoSQL数据库)应运而生,成为数据存储和分析领域的一支新生力量。非关系型数据库的数据存储不需要固定的表结构,因此可以实现灵活存储结构,而且可以无需预先定义表模式,有利于快速原型验证和敏捷开发。然而对于同一客户或同一应用而言,同时部署关系数据库与非关系型数据库不但增加了成本,而且同步地维护二种类型数据库也在技术、数据安全上带来挑战。
技术实现思路
本专利技术期望提供一种同时支持关系型SQL与非关系NoSQL访问的关系型数据库,其利用关系数据表来存储非关系数据库类型的数据,因此不但具有比传统数据库更好的可扩展性,而且让NoSQL应用拥有了关系型数据库所带来的金融级数据安全和高可用的服务。根据本专利技术的一个方面,提供一种数据存储装置,包括:关系数据库,用于存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(SQL)规范;转译模块,用于将与所述符合非结构化查询语言(SQL)规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问。根据本专利技术的一个方面,提供一种用于关系数据库的访问方法,其中所述关系数据库可存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(SQL)规范,该方法包括:接收来自客户端的符合所述非结构化查询语言(SQL)规范的第一访问请求;将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问;将所述第二访问请求转发至所述关系数据库。根据本专利技术的一个方面,提供一种可提供关系数据库访问的转译装置,其中所述关系数据库用于存储与宽表模型对应的关系表模型的关系数据表,该转译装置包括:第一接口,用于接收符合非结构化查询语言(SQL)规范的第一访问请求,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;解析模块,用于对所述第一访问请求进行解析以生成符合所述关系表模型访问规范的第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;数值字段,用于存储所述宽表中的列族下的各列字段的字段值;第二接口,用于将所述第二访问请求转发至所述关系数据库,以实现对所述关系数据表的访问。此外,根据本专利技术,还提供一种具有指令的计算机可读介质,所述指令在被一个或多个计算系统执行时,使所述计算系统执行根据本专利技术的方法。此外,根据本专利技术,还提供一种计算设备,包括:存储有代码的存储器,以及处理器,其中所述处理器配置为执行所述代码以实现本专利技术的方法。利用本专利技术的方案,在成熟的关系数据表基础之上,只需要提供用于宽表接入的服务端即转译模块或接口,结合客户端,就可以把关系数据库转变为一个宽表数据库。当实现在同一个系统中时,根据本专利技术的关系数据库相当于一个同时支持关系模型和宽表模型的多模型数据库。附图说明图1示出可提供非关系数据库类型访问的存储装置100的示意图;图2A和2B示出根据本专利技术一个示例性的宽表与关系数据表的示意图;图3A和3B示出根据本专利技术另一个示例的宽表与关系数据表的示意图;图4示出了根据本专利技术一个实施例的访问数据库的方法流程图;图5示出了根据本专利技术一个实施例的计算设备的示意图。具体实施方式下面详细描述本专利技术的实施例,通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。图1示出了可提供非关系数据库类型访问的存储装置100的示意图。如图所示,该存储装置100包括关系数据库101,转译模块102。在关系数据库101中可维护与非关系数据库模型对应的关系表模型的关系数据表。关系数据库101可以是目前已知的任何类型的数据库,例如oracle,sysbase,MySQL等,均支持关系数据模型存储。目前关系数据库通常支持对关系数据模型的二种访问规范,其中一种是通过标准SQL(结构化查询语言)语言规范,而另一种则是通过提供底层函数即应用编程接口(API)来提供对底层的关系数据表的直接存取。而非关系数据模型,例如现有产品Hbase,bigtable,Cassandra等数据库中广泛支持的宽表模型,作为一种NoSQL数据库模型,它无需预先定义列及其属性,允许同一个表中每一行拥有不同的列,因此具有与关系数据模型完全不同的特性,对非关系数据模型的访问采用的是与关系数据模型完全不同的规范,在此称为非结构化查询语言规范。在本专利技术中,将现有的NoSQL数据库模型所支持的NoSQL标准语言或应用编程接口(API)统一称为非结构化查询语言规范。关系数据库101可以通过转译模块102支持来自用户客户端200的例如宽表类型的数据库访问操作,实现非关系数据库类型的数据在关系数据库101中的存储与访问。同时,该关系数据库101还允许其它的使用关系表模型访问规范的其它客户端300直接对关系数据库101中的数据表的访问,包括以SQL标准语言访问或直接以API函数调用的形式直接访问关系数据表。为了使关系数据库101能支持宽表数据库的访问操作,在该转译模块102内提供一套符合关系数据模型的API或标准SQL语言库,用于提供对关系数据库101中的关系型数据表的访问;还提供有符合多种非结构化查询语言规范的应用程序接口(API)库或NoSQL语言库,从而可以对接收的符合非结构化查询语言规范的访问请求或命令进行解释,进而转译模块102可以将该访问请求转译成符合关系表模型访问规范的访问请求。在以下说明中,以宽表模型作为非关系数据模型的一个示例予以说明。为了在关系数据库中实现对非结构化查询语言规范客户端应用的支持,对于非关系数据库中的具有列族形式的宽表存储结构,在关系数据库101中提供了与其对应的关系型数据表,以支持Non-SQL形式的访问。图2A和图2B示出了宽表与关系型数据表的映射图。图2A示出一个示例性的宽表hbase_100的结构,如图所示,该宽表包括一个主键字段ID,用于存储宽表中作为主键(rowkey)的序号,该宽表还包括一个列族CF1,在该列族CF1下存在多个列字段,分别name(姓名)与gender(性别)。在该示例的宽表中存在二条宽表记录,其中对于第001号,其name(姓名)与gender(性别)字段的字段值分别为”Tom”和“man”(男),对于第002号,其name(姓名)与gender(性别)字段的字段值分别为”June”和“girl”(女)。为了在关系数据库中存储图2A所示的宽表数据,如图2B所示,对于宽表中的列族,定义一个如下形式的关本文档来自技高网...

【技术保护点】
1.一种数据存储装置,包括:关系数据库,用于存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(NoSQL)规范;转译模块,用于将符合所述非结构化查询语言(NoSQL)规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问。

【技术特征摘要】
1.一种数据存储装置,包括:关系数据库,用于存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(NoSQL)规范;转译模块,用于将符合所述非结构化查询语言(NoSQL)规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问。2.如权利要求1的数据存储装置,其中所述非关系数据模型为宽表模型,所述转译模块包括:第一接口,用于接收所述第一访问请求,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;解析模块,用于对所述第一访问请求进行解析以生成所述第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;数值字段,用于存储所述宽表中的列族下的各列字段的字段值;第二接口,用于将所述第二访问请求转发至所述关系数据库。3.如权利要求2的数据存储装置,其中所述第一访问请求还包括第一数值特征,该数值特征包括所述宽表中的列族下的各列字段的字段值。4.如权利要求2或3的数据存储装置,其中所述第一属性特征包括所述宽表模型的行键特征与时间维度特征,所述第二属性特征包括用于存储所述宽表模型的行键的行键字段和用于存储所述宽表模型的时间维度值的时间字段;其中所述关系数据库以所述行键字段、列族字段以及时间字段作为组合索引主键。5.如权利要求2或3的数据存储装置,其中所述第一属性特征包括所述宽表模型的第一列族与第二列族特征,其中所述解析模块基于所述第一访问请求生成分别与所述第一列族与第二列族对应的二个第二访问请求;所述第二接口将所述至少二个第二访问请求转发至所述关系数据库,以访问与所述第一列族与第二列族对应的第一关系表与第二关系表。6.如权利要求1-5之一的数据存储装置,其中所述第二接口接收来自所述关系数据库对所述第二访问请求的响应,所述解析模块按照所述非关系数据模型将所述响应转译成对所述第一请求的响应并通过所述第一接口发送。7.如权利要求2-6之一的数据存储装置,其中所述第一事件特征包括对所述宽表的每行记录的创建以及修改和读取;所述第二事件特征包括对所述关系数据表的创建以及与所述多个列字段的数量对应的多行记录的修改和读取。8.如权利要求7的数据存储装置,其中所述关系数据库按照所述行键字段对所述关系数据表进行分区。9.如权利要求7的数据存储装置,其中所述关系数据库按照所述行键的前缀对所述关系数据表进行分区。10.如权利要求7的数据存储装置,其中所述关系数据库按照对所述行键的分布进行估计而确定的分割点来对所述关系数据表进行分区。11.如权利要求5的数据存储装置,其中所述第一与第二关系数据表相关联地聚集在所述存储装置上。12.如权利要求7的数据存储装置,还包括另一转译模块,用于将与另一个数据存储模型相关的访问请求转译为符合所述关系表模型访问规范的访问请求,以实现对所述关系数据表的访问。13.一种用于关系数据库的访问方法,其中所述关系数据库可存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(NoSQL)规范,该方法包括:接收来自客户端的符合所述非结构化查询语言(NoSQL)规范的第一访问请求;将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问;将所述第二访问请求转发至所述关系数据库。14.如权利要求13的访问方法,其中所述非关系数据模型为宽表模型,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;其中所述将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求包括:对所述第一访问请求进行解析以生成所述第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:与所述宽表的列族对应的列族字段,用于存储所述宽表中...

【专利技术属性】
技术研发人员:杨志丰
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1