大规模并行处理行列混合数据存储装置及存储、查询方法与流程

文档序号:12465513阅读:160来源:国知局
大规模并行处理行列混合数据存储装置及存储、查询方法与流程

本发明涉及数据库技术领域,特别是指一种大规模并行处理行列混合数据存储装置及存储、查询方法。



背景技术:

大规模并行处理(Massive Parallel Processing,MPP)通过对多个处理器的协调调用,可以使同一命令在多个处理器上同时进行处理,从而极大地提升运算能力。MPP的主要特征是多台处理器同时并行开展计算,且处理器之间能够进行实时通信。由于MPP优良的可扩展性和强大地计算处理能力,MPP已经被用于大计算量的数学建模、数据库处理等领域,尤其是使用MPP技术的数据库管理系统(DataBase Management System,DBMS)已经在现有技术中得到了广泛应用。

通常,数据库的存储模式主要分为行存储和列存储两种。行存储模式下的数据按元组存储,每个元组的所有属性都存储在一起,如果要查询一个元组的某个属性值,需要先读取整个元组的数据,这种模式以元组为单位,适合对数据的频繁读写,因而被广泛应用于联机事务处理(On-Line Transactional Processing,OLTP);列存储则将数据表的每一列组织在一起进行存储,不同的列独立存储,这种模式可以对大量的稀疏数据进行高效压缩,从而节省空间,并且由于每列数据类型相同,因而便于对数据进行复杂分析,联机分析处理(On-Line Analytical Processing,OLAP)通常采用这种存储模式。

目前,OLTP和OLAP数据库都有成熟的产品,但是面向OLAP和面向OLTP的产品彼此独立。现实中,经常有客户既需要进行频繁的OLTP,又需要进行频繁的OLAP,为此,他们不得不部署两套或更多套产品才能满足业务需要,这样不仅带来更高的投资成本,而且实际应用中需要在不同产品之间做数据迁移,带来额外的管理和维护成本。



技术实现要素:

有鉴于此,本发明的目的在于提出一种大规模并行处理行列混合数据存储装置及存储、查询方法,本发明可以在单一数据库中同时实现OLTP和OLAP的功能,提高数据的存取效率。

基于上述目的,本发明提供的技术方案是:

一种大规模并行处理行列混合数据存储装置,其包括:

联机事务处理模块,用于进行事务处理;

联机分析处理模块,用于进行数据分析;

存储模块,用于根据数据的访问频率将数据存入联机事务处理模块或联机分析处理模块;

跨层查询模块,用于根据查询语句对联机事务处理模块或联机分析处理模块中的数据进行查询;

跨层交互模块,用于在联机事务处理模块和联机分析处理模块之间进行相互查询和存储。

可选地,联机事务处理模块中包含:

行存储模块,用于以行形式存储存入联机事务处理模块的数据;

行存储引擎,用于为行存储模块中的数据提供查询索引。

可选地,联机分析处理模块中包含:

列存储模块,用于以列形式存储存入联机分析处理模块的数据;

列存储引擎,用于为列存储模块中的数据提供查询索引。

可选地,跨层查询模块包含:

接收模块,用于接收用户输入的查询语句;

判断模块,判断所查询的数据存储在联机事务处理模块中还是在联机分析处理模块中;

第一分析模块,由于对查询语句进行分析以产生语法树;

第二分析模块,用于对语法树进行分析以产生逻辑规划;

优化模块,用于对查询语句进行优化;

获取模块,用于从联机事务处理模块或联机分析处理模块中获取查询索引;

输出模块,用于输出查询结果。

可选地,存储模块包含:

分类模块,用于根据历史经验将数据分为频繁访问数据和非频繁访问数据;

第一数据存储模块,用于将频繁访问数据存入联机事务处理模块;

第二数据存储模块,用于将非频繁访问数据存入联机分析处理模块;

第一索引模块,用于为联机事务处理模块中的数据构建第一存储引擎;

第二索引模块,用于为联机分析处理模块中的数据构建第二存储引擎。

可选地,第一存储引擎为行存储引擎,第二存储引擎为列存储引擎。

本发明还提供一种基于上述任一装置的存储方法,其包括:

将数据输入存储模块;

通过存储模块,根据数据的访问频率将数据存入联机事务处理模块或联机分析处理模块;

分别为联机事务处理模块和联机分析处理模块中的数据建立存储引擎。

可选地,联机事务处理模块中的数据以行形式存储,联机分析处理模块中的数据以列形式存储。

此外,本发明还提供一种基于上述任一装置的查询方法,其包括:

通过跨层查询模块接收来自用户的查询语句;

判断所查询数据的存储位置;

对查询语句进行分析,产生查询命令;

根据查询命令从联机事务处理模块或联机分析处理模块中获取查询索引;

输出查询结果。

可选地,对查询语句进行分析的步骤包括:

对查询语句进行分析,产生语法树;

对语法树进行二次分析,产生逻辑规划;

对查询语句进行优化。

从上面所述可以看出,本发明的有益效果在于:

本发明在一个数据库中同时实现了OLTP和OLAP两种功能,可以根据数据的访问频率将数据以适当的形式存储,既能为用户提供方便的查询服务,又可以为用户提供高效地数据分析服务,相对于现有技术中OLTP和OLAP分别部署的方式来说是一种重要的技术进步。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种大规模并行处理行列混合数据存储装置的结构框图;

图2为图1中联机事务处理模块的一种结构框图;

图3为图1中联机分析处理模块的一种结构框图;

图4为图1中跨层查询模块的一种结构框图;

图5为图1中存储模块的一种结构框图;

图6为本发明实施例中存储方法的流程图;

图7为本发明实施例中查询方法的流程图;

图8为图7中步骤703的一种具体流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

图1所示为一种大规模并行处理行列混合数据存储装置的结构框图,其包括:

联机事务处理模块1,用于进行事务处理;

联机分析处理模块2,用于进行数据分析;

存储模块3,用于根据数据的访问频率将数据存入联机事务处理模块或联机分析处理模块;

跨层查询模块4,用于根据查询语句对联机事务处理模块或联机分析处理模块中的数据进行查询;

跨层交互模块5,用于在联机事务处理模块和联机分析处理模块之间进行相互查询和存储。

该装置在一个数据库中同时实现了OLTP和OLAP两种功能,可以根据数据的访问频率将数据以适当的形式存储,既能为用户提供方便的查询服务,又可以为用户提供高效地数据分析服务。

图2为图1中联机事务处理模块的一种结构框图,其中包含:

行存储模块11,用于以行形式存储存入联机事务处理模块的数据;

行存储引擎12,用于为行存储模块中的数据提供查询索引。

此外,该联机事务处理模块显然还应包含本领域技术人员所公知的必要组成部分。

该实施例在联机事务处理模块中设置了行存储模块和引擎,使得联机事务处理模块中的数据以行形式,便于数据的事务处理。

图3为图1中联机分析处理模块的一种结构框图,其中包含:

列存储模块21,用于以列形式存储存入联机分析处理模块的数据;

列存储引擎22,用于为列存储模块中的数据提供查询索引。

此外,该联机分析处理模块显然还应包含本领域技术人员所公知的必要组成部分。

该实施例在联机分析处理模块中设置了列存储模块和引擎,使得联机分析处理模块中的数据以列形式,即能实现稀疏数据的压缩存储,又便于进行数据分析。

图4为图1中跨层查询模块的一种结构框图,其包含:

接收模块41,用于接收用户输入的查询语句;

判断模块42,判断所查询的数据存储在联机事务处理模块中还是在联机分析处理模块中;

第一分析模块43,由于对查询语句进行分析以产生语法树;

第二分析模块44,用于对语法树进行分析以产生逻辑规划;

优化模块45,用于对查询语句进行优化;

获取模块46,用于从联机事务处理模块或联机分析处理模块中获取查询索引;

输出模块47,用于输出查询结果。

该跨层查询模块为用户查询提供统一接口,其能够根据用户的查询语句自动判断数据的存储位置,并向用户返回数据,此外,该模块还可以对查询语句进行解析、分析和优化,提高查询效率。

图5为图1中存储模块的一种结构框图,其包含:

分类模块31,用于根据历史经验将数据分为频繁访问数据和非频繁访问数据;

第一数据存储模块32,用于将频繁访问数据存入联机事务处理模块;

第二数据存储模块33,用于将非频繁访问数据存入联机分析处理模块;

第一索引模块34,用于为联机事务处理模块中的数据构建第一存储引擎;

第二索引模块35,用于为联机分析处理模块中的数据构建第二存储引擎。

该模块为用户存储数据提供统一接口,能够根据数据的访问频率(访问频率可以通过经验事先确定)将数据分类,并分别存储在联机事务处理模块或联机分析处理模块中。

在上述实施例中,第一存储引擎可以为行存储引擎,第二存储引擎可以为列存储引擎。

图6为基于上述任一实施例装置的一种数据存储方法流程图,其包括:

步骤601,将数据输入存储模块;

步骤602,通过存储模块,根据数据的访问频率将数据存入联机事务处理模块或联机分析处理模块;

步骤603,分别为联机事务处理模块和联机分析处理模块中的数据建立存储引擎。

该方法对于用户来说是以统一方式将数据存入数据库中,但在内部则将数据分别存储在联机事务处理模块或联机分析处理模块中,便于数据的事务处理和分析处理。

上述实施例中,联机事务处理模块中的数据可以以行形式存储,联机分析处理模块中的数据可以以列形式存储。

图7为基于上述任一实施例装置的一种数据查询方法流程图,其包括:

步骤701,通过跨层查询模块接收来自用户的查询语句;

步骤702,判断所查询数据的存储位置;

步骤703,对查询语句进行分析,产生查询命令;

步骤704,根据查询命令从联机事务处理模块或联机分析处理模块中获取查询索引;

步骤705,输出查询结果。

该实施例方法可以自动判断查询数据的存储位置,为用户提供统一的查询接口。

图8为图7中步骤703的一种具体流程图,其包括:

步骤7031,对查询语句进行分析,产生语法树;

步骤7032,对语法树进行二次分析,产生逻辑规划;

步骤7033,对查询语句进行优化。

该方法给出语句分析的具体步骤,能够对查询语句进行优化,提高了查询效率。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。

本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1