一种基于统一视图的行列混合数据存储模型的建立方法

文档序号:8339673阅读:219来源:国知局
一种基于统一视图的行列混合数据存储模型的建立方法
【技术领域】
[0001] 本发明涉及一种数据存储模型的建立方法,属于关系型数据库、在线分析处理技 术领域。
【背景技术】
[0002] 随着信息化的不断发展,越来越多的企业在在生产信息化过程中积累了大量的结 构化数据。以电力系统为例,一方面是所需要管理的测点规模越来越大,预计将达到千万级 甚至亿级以上;另一方面是测点产生数据的频率越来越高。随着时间的积累,数据规模越来 越大,预计将达到PB字节以上。再以运营商为例,随着越来越多的省份用户规模均接近上 亿规模,每天将产生数十亿的信令数据与计费数据。数据量的飞速增长,将对数据仓库的处 理规模、处理速度提出了更高的要求。
[0003] 由于传统数据仓库受制于其传统的软件体系架构,其在数据规模、处理能力、并行 计算、负载均衡、动态自治等方面均已无法满足实际应用需求。当前数据存储模型主要有行 存储与列存储两类,行存储主要面向"多列少行"的查询类应用,而列存储主要应对"多行少 列"的分析统计类应用。目前许多企业针对不同的应用建立不同的数据仓库,具备如下局限 性:1)数据在逻辑上存储多份,难于维护管理;2)数据重复存储,造成巨大的成本压力;3) 应用需要做针对性的开发,不同的应用访问不同的数据存储。
[0004] 在数据仓库领域,引入新的数据存储模型来解决上述问题是当前研宄的热点之 一。经初步检索,暂未发现有相关的专利文献。

【发明内容】

[0005] 为了解决上述问题,能够同时满足行列敏感应用的不同需求,使得数据访问对应 用透明,本发明提供了一种基于统一视图的行列混合数据存储模型的建立方法,该方法在 逻辑上基于星型模型进行数据抽象,维护一份数据;在存储上将I/O敏感的列进行列式存 储,并基于列值域进行逻辑压缩,极大的降低I/O开销与存储空间;在应用上,基于统一视 图/表,屏蔽数据存储的异构性,极大的减轻应用开发的复杂性。
[0006] 本发明采用的技术方案具体为:
[0007] 1)基于原始数据结构进行数据抽象,从原始记录中,标识出需要进行列式存储的 列;
[0008] 数据抽象是构建星型模型的基础。本步骤决定哪些列按列存储,以及相关列与原 始数据的对应关系。
[0009] 2)对上述需要列式存储的列进行维度分析,为每一列建立对应的维度值索引表, 维度值索引表包含两列:原始值以及对应的值标识,该值标识记为VID。维度值索引表是数 据重组的参照。最终的列存数据将不存储对应列的原始值,而是存储维度值索引表对应的 值标识(VID)。
[0010] 3)将原始数据表视为事实表,将需要列式存储的列视为维度表,建立星型模型;
[0011] 4)对事实表进行加工,对每条原始记录生成唯一的记录标识,记为RID ;
[0012] 5)对维表进行加工,依据维度值索引表将对应的维表更改为两列结构: <RID,VID>,并建立对应的索引;
[0013] 星型模型的建立使得列存数据(维表)与行存数据(事实表)之间建立起了关联 关系,维表与事实表的关联键为对应的RID。在实际的应用过程中,数据库系统将先访问维 度值索引表,将对应的维度值转换成VID,利用VID对维表进行分析检索,获取满足条件的 RID集合;根据需要,利用RID集合从对应的事实表中获取原始数据。
[0014] 6)进行数据重组,对已入库数据进行数据重组,将原始数据表分成两个部分:事 实表和维表,将该事实表按行存储,将维表、维度值索引表按列存储;对于新增数据,将依据 星型模型进行处理后,再入库。
[0015] 上述数据重组包括两个部分:一部分为逻辑重组,根据需要将对应的维表和事实 表进行分割,组织成期望的数据。对应用而言,只看到一张统一的数据库表,而无需感知行 列存储规则;另一部分,为物理重组,即根据需要将对应的维表和事实表存储到不同的存储 介质中。
[0016] 进一步,上述数据抽象步骤需要对数据进行深入分析,得到相关列的具体含义与 应用访问模式,一般的原则为将在传统实体关系模型中需要建立索引的列进行显著标记。
[0017] 进一步,在对上述需要列式存储的列进行维度分析时,维度值索引表的两列均需 建立对应的 B-TREE 索弓丨,分别记为DVI (Dimension Value Index)和 VII (Value ID Index)。
[0018] 进一步,上述VII主要用于查询分析结果往原始值的映射,DVI主要用于构建维 表。维度值索引表在数据加载、更新过程中将对应地发生变化。
[0019] 进一步,值标识VID优选为32位无符号数。
[0020] 进一步,在对所述维度表进行加工时,使用VID可节省存储,降低查询分析的I/O 开销与内存消耗。
[0021] 进一步,在进行数据重组时,将列存数据与行存数据分开存储到不同的存储介质 中,这样可将应用间的相互影响降至最低,利于构建统一数据中心。
[0022] 通过采用上述技术方案,能够实现在数据模型上统一行存模型与列存模型;在数 据组织过程中,对于经常用于分析统计的列采用列式存储,降低其在访问过程中的I/O开 销,提升访问效率。同时,利用维度值索引表对其进行逻辑压缩,一方面节省存储,另一方 面,也可进一步降低查询分析的I/O开销与内存消耗。关于逻辑压缩,以"手机号码"列为 例,常规存储将采用11位长度的字符串,每个列值将占用11个字节;采用维度值索引表映 射后,将利用32位无符号整数存储对应的手机号码,只需要4个字节。这样,转换后的数据 所占用的存储空间约为原始数据的40% (4/11)。
【附图说明】
[0023] 图1是本发明的行列混合数据存储模型示意图。
【具体实施方式】
[0024] 下面结合附图和实施例对本发明作进一步详细说明。
[0025] 本实施例以电网业务场景中某一应用实例来描述本方法的【具体实施方式】。假设如 下原始数据表:
[0026] 数据采集表:
【主权项】
1. 一种基于统一视图的行列混合数据存储模型的建立方法,其特征在于,包括如下步 骤: 基于原始数据结构进行数据抽象,从原始记录中,标识出需要进行列式存储的列; 对所述需要列式存储的列进行维度分析,为每一列建立对应的维度值索引表,所述维 度值索引表包含两列:原始值以及对应的值标识,所述值标识记为VID ; 将原始数据表视为事实表,将需要列式存储的列视为维度表,建立星型模型; 对所述事实表进行加工,对每条原始记录生成唯一的记录标识,记为RID ; 对所述维度表进行加工,依据所述维度值索引表将对应的维度表更改为两列结构: <RID,VID>,并建立对应的索引; 进行数据重组,对已入库数据进行数据重组,将原始数据表分成两个部分:事实表和维 表,该事实表不包含维表相关列,且该事实表按行存储,将维表、维度值索引表按列存储;对 于新增数据,将依据星型模型进行处理后,再入库。
2. 根据权利要求1所述的方法,其特征是在数据抽象时,将在传统实体关系模型中需 要建立索引的列进行显著标识。
3. 根据权利要求1所述的方法,其特征是在对所述需要列式存储的列进行维度分析 时,对所述维度值索引表的两列建立对应的B-TREE索引,分别记为DVI和VII。
4. 根据权利要求3所述的方法,其特征是所述DVI用于构建维表,所述VII用于查询分 析结果往原始值的映射。
5. 根据权利要求1或2或3所述的方法,其特征是所述值标识VID为32位无符号数。
6. 根据权利要求5所述的方法,其特征是对所述维度表进行加工时,使用VID可节省存 储,降低查询分析的I/O开销与内存消耗。
7. 根据权利要求1到4中任意一项所述的方法,其特征是在进行数据重组时,将列存数 据与行存数据分开存储到不同的存储介质中。
【专利摘要】本发明公开了一种基于统一视图的行列混合数据存储模型的建立方法,以同时满足行列敏感应用的不同需求。本发明方法具体为在原始数据结构的基础上进行数据抽象,标识出需要列式存储的列,对这些列进行维度分析,为每列建立维度值索引表,以此构建星型模型,最后进行数据重组,将原始数据表分成两个部分:事实表和维表,该事实表不包含维表相关列,且该事实表按行存储,将维表、维度值索引表按列存储。本发明在逻辑上基于星型模型进行数据抽象;在存储上将I/O敏感的列进行列式存储,并基于列值域进行逻辑压缩,降低I/O开销与存储空间;在应用上,基于统一视图/表,屏蔽数据存储的异构性,减轻应用开发的复杂性。
【IPC分类】G06F17-30
【公开号】CN104657426
【申请号】CN201510033610
【发明人】王远, 陈亮, 吴鹏, 王为民
【申请人】江苏瑞中数据股份有限公司
【公开日】2015年5月27日
【申请日】2015年1月22日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1