一种基于行存储数据库的数据处理方法及装置制造方法及图纸

技术编号:10072772 阅读:123 留言:0更新日期:2014-05-23 19:15
本发明专利技术公开了一种基于行存储数据库的数据处理方法及装置,涉及数据处理领域,解决了现有技术中列存储数据库访问特定几列时查询效率较低,难以与行存储数据库的优点相兼容等问题。该方法包括:数据库系统接收到用户提交的在行存储数据库中创建目标数据表的建表SQL语句后,创建与目标数据表对应的数个列表,将该表SQL语句中包括的分组标识符所指示的多个列创建在同一列表中,并创建对应数个列表的统一视图;当数据库系统接收到用户提交的对行存储数据库中的目标数据表中的数据进行处理的请求时,数据库系统根据所请求处理的目标数据表所对应的统一视图,对相应列表中的数据进行相应处理。本发明专利技术主要用于数据处理。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,特别涉及一种基于行存储数据库的数据处理方法及装置
技术介绍
行存储方式是目前主流的关系数据库存储技术实现方式,其基本思路是:将数据按照行为单位进行存储,并通过索引技术提高查询的效率。该方式很适合OLTP(On-Line Transaction Processing,联机事务处理)的场景,在频繁的插入、删除、更新操作,以及小数据量(若干行)的查询方面优势较为突出。但是,随着PB(PetaByte,千万亿字节)级别的超大型数据仓库的出现,行存储方式的不足逐渐显现。由于传统的数据仓库产品是以行为单位进行存储的,且数据仓库查询操作多而更新和插入操作较少,而多数查询分析都是基于某些特定列进行操作。因此,通过行存储方式实现的数据仓库不可避免的会带来非必要的IO(Input/Output,输出/输入)操作。同时,行存储方式实现的数据仓库存储单元中的数据的共性较少,不利于数据压缩。正是针对上述行存储数据仓库的不足,列存储数据仓库应运而生。其基本实现思路是将数据按照列为单位进行存储,并通过链接表示不同的列值之间的关系。因为它是基于列进行存储的,可以很好的克服上述行存储数据仓库的缺陷。但是,列存储数据仓库同样也有不足:首先,虽然数据仓库的多数OLAP操作是针对某些特定的列而非全部列,但是多数的操作是针对某几列而非某一列,因此往往需要访问某几个列才能得到分析结果,这些操作在以单个列为单位进行存储的列存储数据仓库产品中,必然会增加更多的查询开销。其次,由于列存储数据仓库出现的时间较短,虽然基本的数据仓库功能已经很好的满足,但是很多传统的行存储数据仓库功能比如存储过程等,还无法兼容,这增加了用户迁移数据仓库系统的难度。另外,让用户放弃多年的数据仓库产品投资,而转向全新的列存储数据仓库产品,本身也是一个艰难的抉择。
技术实现思路
为了解决现有技术中列存储数据库访问特定几列时查询效率较低,难以与行存储数据库的优点相兼容等问题,本专利技术的提出一种基于行存储数据库的数据处理方法及装置。一种基于行存储数据库的数据处理方法,包括:数据库系统接收到用户提交的在行存储数据库中创建目标数据表的建表结构化查询语言SQL语句后,创建与所述目标数据表对应的数个列表,其中,所述建表SQL语句中包括分组标识符;数据库系统将所述分组标识符指示的多个列创建在同一列表中,并创建对应所述数个列表的统一视图;当所述数据库系统接收到用户提交的对所述行存储数据库中的所述目标数据表中的数据进行处理的请求时,所述数据库系统根据所请求处理的目标数据表所对应的统一视图,对相应列表中的数据进行相应处理。一种基于行存储数据库的数据处理装置,包括:接收模块,用于接收用户提交的在行存储数据库中创建目标数据表的建表结构化查询语言SQL语句以及对所述行存储数据库中的所述目标数据表中的数据进行处理的请求,该建表SQL语句中包括分组标识符;模拟器模块,用于当所述接收模块接收到用户提交的在行存储数据库中创建目标数据表的建表结构化查询语言SQL语句后,创建与所述目标数据表对应的数个列表,将所述分组标识符指示的多个列创建在同一列表中,并创建对应所述数个列表的统一视图;处理模块,用于当所述接收模块接收到用户提交的对所述行存储数据库中的所述目标数据表中的数据进行处理的请求时,所述数据库系统根据所请求处理的目标数据表所对应的统一视图,对相应列表中的数据进行相应处理。本申请提出的方案是一种基于行存储数据库的列存储模拟器,并且在现有的标准SQL语言里增加了分组标识符功能,该功能允许用户自由组合将哪些列存储在一个列表中。通过这种自由组合,将那些分析统计中经常同时访问的列放在同一个列表中,不需再对几个列表进行外连接就可进行分析统计,可以有效提升多数查询分析的效率,更好的发挥列存储模拟器的作用。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例1中提供的具体的创建列表语句格式的事例框图;图2为本专利技术实施例1中提供的数据库系统的工作原理示意图;图3-4为本专利技术实施例1中提供的基于行存储数据库的数据处理方法的流程示意图;图5为本专利技术实施例2中提供的基于行存储数据库的数据处理装置的结构示意图。具体实施方式针对现有技术中行存储技术和列存储技术各自的缺陷,本专利技术实施例提供了一种基于行存储数据库的数据处理的技术方案,在现有行存储数据库的基础上,模拟列存储数据库,并提供可将任意几列存放在同一列表中的功能,以使行存储数据库产品用户无需进行存储数据库产品更换即可获得列存储技术的优点,同时在多次查询相同几列的情况下,效果尤其显著。为了实现基于行存储数据库的列存储技术,本专利技术实施例提供的技术方案通过在现有的行存储数据库系统(以下简称“数据库系统”)中设置列存储模拟器(以下简称“模拟器”)的同时,提供允许用户自由组合某些列存储在同一列表中的功能(需要说明的是:本专利技术主要用于描述“提供允许用户自由组合某些列存储在同一列表中的功能”的实现过程。因此,对于在现有的行存储数据库系统中设置列存储模拟器的具体实施过程,下述实施例若有描述有不详尽的地方,请参考本申请人的另一专利申请201110447629.7),并且通过该模拟器对数据库系统接收到的建表/删表SQL语句进行相应的处理,实现行存储数据库中的列表创建和删除,以及对某些列的高效访问。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。并且,以下各实施例均为本专利技术的可选方案,实施例的排列顺序及实施例的编号与其优选执行的顺序无关。实施例1与标准建表SQL的语句(如图1左边框图)相比,本实施例提供的模拟器的建表SQL语句(如图1右边框图本文档来自技高网
...
一种基于行存储数据库的数据处理方法及装置

【技术保护点】
一种基于行存储数据库的数据处理方法,其特征在于,包括:数据库系统接收到用户提交的在行存储数据库中创建目标数据表的建表结构化查询语言SQL语句后,创建与所述目标数据表对应的数个列表,其中,所述建表SQL语句中包括分组标识符;数据库系统将所述分组标识符指示的多个列创建在同一列表中,并创建对应所述数个列表的统一视图;当所述数据库系统接收到用户提交的对所述行存储数据库中的所述目标数据表中的数据进行处理的请求时,所述数据库系统根据所请求处理的目标数据表所对应的统一视图,对相应列表中的数据进行相应处理。

【技术特征摘要】
1.一种基于行存储数据库的数据处理方法,其特征在于,包括:
数据库系统接收到用户提交的在行存储数据库中创建目标数据表的建表
结构化查询语言SQL语句后,创建与所述目标数据表对应的数个列表,其中,
所述建表SQL语句中包括分组标识符;
数据库系统将所述分组标识符指示的多个列创建在同一列表中,并创建
对应所述数个列表的统一视图;
当所述数据库系统接收到用户提交的对所述行存储数据库中的所述目标
数据表中的数据进行处理的请求时,所述数据库系统根据所请求处理的目标
数据表所对应的统一视图,对相应列表中的数据进行相应处理。
2.如权利要求1所述的方法,其特征在于,所述将所述分组标识符指示
的多个列创建在同一列表中,具体为:
所述数据库系统将所述分组标识符指示的用于存放在同一列表中的多个
列归为一组,并统计分组的组数;
数据库系统根据所述组数生成将所述多个列创建在同一列表中的数个列
建表SQL语句;
根据所述数个列建表SQL语句建立对应的数个列表。
3.根据权利要求2所述的方法,其特征在于,所述数据库系统将所述分
组标识符指示的用于存放在同一列表中的多个列归为一组具体包括:
所述数据库系统对所述建表SQL语句中列名定义字段进行扫描;
当扫描到分组标识符的起始指示时,记录所述起始指示关联到的每个列
的列名,直到扫描到分组标识符的终止指示时停止记录;
将从起始指示开始到终止指示为止的所有扫描到的列名作为存放在同一
列表中的多个列。
4.如权利要求1所述的方法,其特征在于,还包括:
所述数据库系统接收到用户提交的删除行存储数据库中目标数据表的删
表SQL语句后,删除对应的统一视图,并删除行存储数据库中与所述目标数
据表对应的列表。
5.如权利要求4所述的方法,其特征在于,所述数据库系统删除行存储

\t数据库中与所述目标数据表对应的列表,具体为:
所述数据库系统通过解析所述删表SQL语句,得到目标数据表的表名,
并根据所述目标数据表的表名获取对应的列名;
所述数据库系统根据所述目标数据表的表名删除对应的统一视图,并根
据所述列名删除所述行存储数据库中所述列名对应的列表。
6.如权利要求1-5之一所述的方法,其特征在于,所述对所述行存储数
据库中的所述目标数据表中的数据进行处理的请求包括:
数据查询请求、数据插入请求、数据删除请求或数据更新请求。
7.一种基于行存储数据库的数据处理装置,其特征在于,包括:
接收模块...

【专利技术属性】
技术研发人员:隋琪袁向阳
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京;11

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

1