著录项信息
专利名称 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
申请号 | CN201510033610.6 | 申请日期 | 2015-01-22 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2015-05-27 | 公开/公告号 | CN104657426A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 江苏瑞中数据股份有限公司 | 申请人地址 | 江苏省南京市鼓楼区新模范马路5号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 江苏瑞中数据股份有限公司 | 当前权利人 | 江苏瑞中数据股份有限公司 |
发明人 | 王远;陈亮;吴鹏;王为民 |
代理机构 | 南京知识律师事务所 | 代理人 | 汪旭东 |
摘要
本发明公开了一种基于统一视图的行列混合数据存储模型的建立方法,以同时满足行列敏感应用的不同需求。本发明方法具体为在原始数据结构的基础上进行数据抽象,标识出需要列式存储的列,对这些列进行维度分析,为每列建立维度值索引表,以此构建星型模型,最后进行数据重组,将原始数据表分成两个部分:事实表和维表,该事实表不包含维表相关列,且该事实表按行存储,将维表、维度值索引表按列存储。本发明在逻辑上基于星型模型进行数据抽象;在存储上将I/O敏感的列进行列式存储,并基于列值域进行逻辑压缩,降低I/O开销与存储空间;在应用上,基于统一视图/表,屏蔽数据存储的异构性,减轻应用开发的复杂性。
1.一种基于统一视图的行列混合数据存储模型的建立方法,其特征在于,包括如下步骤:
基于原始数据结构进行数据抽象,从原始记录中,标识出需要进行列式存储的列;
对所述需要列式存储的列进行维度分析,为每一列建立对应的维度值索引表,所述维度值索引表包含两列:原始值以及对应的值标识,所述值标识记为VID;
将原始数据表视为事实表,将需要列式存储的列视为维度表,建立星型模型;
对所述事实表进行加工,对每条原始记录生成唯一的记录标识,记为RID;
对所述维度表进行加工,依据所述维度值索引表将对应的维度表更改为两列结构:,并建立对应的索引;
进行数据重组,对已入库数据进行数据重组,将原始数据表分成两个部分:事实表和维表,该事实表不包含维表相关列,且该事实表按行存储,将维表、维度值索引表按列存储;对于新增数据,将依据星型模型进行处理后,再入库。
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中任意一项所述的方法,其特征是在进行数据重组时,将列存数据与行存数据分开存储到不同的存储介质中。
一种基于统一视图的行列混合数据存储模型的建立方法\n技术领域\n[0001] 本发明涉及一种数据存储模型的建立方法,属于关系型数据库、在线分析处理技术领域。\n背景技术\n[0002] 随着信息化的不断发展,越来越多的企业在在生产信息化过程中积累了大量的结构化数据。以电力系统为例,一方面是所需要管理的测点规模越来越大,预计将达到千万级甚至亿级以上;另一方面是测点产生数据的频率越来越高。随着时间的积累,数据规模越来越大,预计将达到PB字节以上。再以运营商为例,随着越来越多的省份用户规模均接近上亿规模,每天将产生数十亿的信令数据与计费数据。数据量的飞速增长,将对数据仓库的处理规模、处理速度提出了更高的要求。\n[0003] 由于传统数据仓库受制于其传统的软件体系架构,其在数据规模、处理能力、并行计算、负载均衡、动态自治等方面均已无法满足实际应用需求。当前数据存储模型主要有行存储与列存储两类,行存储主要面向“多列少行”的查询类应用,而列存储主要应对“多行少列”的分析统计类应用。目前许多企业针对不同的应用建立不同的数据仓库,具备如下局限性:1)数据在逻辑上存储多份,难于维护管理;2)数据重复存储,造成巨大的成本压力;3)应用需要做针对性的开发,不同的应用访问不同的数据存储。\n[0004] 在数据仓库领域,引入新的数据存储模型来解决上述问题是当前研究的热点之一。经初步检索,暂未发现有相关的专利文献。\n发明内容\n[0005] 为了解决上述问题,能够同时满足行列敏感应用的不同需求,使得数据访问对应用透明,本发明提供了一种基于统一视图的行列混合数据存储模型的建立方法,该方法在逻辑上基于星型模型进行数据抽象,维护一份数据;在存储上将I/O敏感的列进行列式存储,并基于列值域进行逻辑压缩,极大的降低I/O开销与存储空间;在应用上,基于统一视图/表,屏蔽数据存储的异构性,极大的减轻应用开发的复杂性。\n[0006] 本发明采用的技术方案具体为:\n[0007] 1)基于原始数据结构进行数据抽象,从原始记录中,标识出需要进行列式存储的列;\n[0008] 数据抽象是构建星型模型的基础。本步骤决定哪些列按列存储,以及相关列与原始数据的对应关系。\n[0009] 2)对上述需要列式存储的列进行维度分析,为每一列建立对应的维度值索引表,维度值索引表包含两列:原始值以及对应的值标识,该值标识记为VID。维度值索引表是数据重组的参照。最终的列存数据将不存储对应列的原始值,而是存储维度值索引表对应的值标识(VID)。\n[0010] 3)将原始数据表视为事实表,将需要列式存储的列视为维度表,建立星型模型;\n[0011] 4)对事实表进行加工,对每条原始记录生成唯一的记录标识,记为RID;\n[0012] 5)对维表进行加工,依据维度值索引表将对应的维表更改为两列结构:,并建立对应的索引;\n[0013] 星型模型的建立使得列存数据(维表)与行存数据(事实表)之间建立起了关联关系,维表与事实表的关联键为对应的RID。在实际的应用过程中,数据库系统将先访问维度值索引表,将对应的维度值转换成VID,利用VID对维表进行分析检索,获取满足条件的RID集合;根据需要,利用RID集合从对应的事实表中获取原始数据。\n[0014] 6)进行数据重组,对已入库数据进行数据重组,将原始数据表分成两个部分:事实表和维表,将该事实表按行存储,将维表、维度值索引表按列存储;对于新增数据,将依据星型模型进行处理后,再入库。\n[0015] 上述数据重组包括两个部分:一部分为逻辑重组,根据需要将对应的维表和事实表进行分割,组织成期望的数据。对应用而言,只看到一张统一的数据库表,而无需感知行列存储规则;另一部分,为物理重组,即根据需要将对应的维表和事实表存储到不同的存储介质中。\n[0016] 进一步,上述数据抽象步骤需要对数据进行深入分析,得到相关列的具体含义与应用访问模式,一般的原则为将在传统实体关系模型中需要建立索引的列进行显著标记。\n[0017] 进一步,在对上述需要列式存储的列进行维度分析时,维度值索引表的两列均需建立对应的B-TREE索引,分别记为DVI(Dimension Value Index)和VII(Value ID Index)。\n[0018] 进一步,上述VII主要用于查询分析结果往原始值的映射,DVI主要用于构建维表。\n维度值索引表在数据加载、更新过程中将对应地发生变化。\n[0019] 进一步,值标识VID优选为32位无符号数。\n[0020] 进一步,在对所述维度表进行加工时,使用VID可节省存储,降低查询分析的I/O开销与内存消耗。\n[0021] 进一步,在进行数据重组时,将列存数据与行存数据分开存储到不同的存储介质中,这样可将应用间的相互影响降至最低,利于构建统一数据中心。\n[0022] 通过采用上述技术方案,能够实现在数据模型上统一行存模型与列存模型;在数据组织过程中,对于经常用于分析统计的列采用列式存储,降低其在访问过程中的I/O开销,提升访问效率。同时,利用维度值索引表对其进行逻辑压缩,一方面节省存储,另一方面,也可进一步降低查询分析的I/O开销与内存消耗。关于逻辑压缩,以“手机号码”列为例,常规存储将采用11位长度的字符串,每个列值将占用11个字节;采用维度值索引表映射后,将利用32位无符号整数存储对应的手机号码,只需要4个字节。这样,转换后的数据所占用的存储空间约为原始数据的40%(4/11)。\n附图说明\n[0023] 图1是本发明的行列混合数据存储模型示意图。\n具体实施方式\n[0024] 下面结合附图和实施例对本发明作进一步详细说明。\n[0025] 本实施例以电网业务场景中某一应用实例来描述本方法的具体实施方式。假设如下原始数据表:\n[0026] 数据采集表:\n[0027]\n测点ID 时间戳 值 质量码\n \n \n[0028] 测点属性表:\n[0029]\n测点ID 测点名 属性1 ……\n \n \n[0030] (1)数据抽象\n[0031] 对于数据采集表,标识出“时间戳”、“值”、“测点ID”列进行列存;对于测点属性表,标识出“测点ID”、“测点名”以及相关属性。\n[0032] (2)构建维度值索引表\n[0033] 对于数据采集表,构建三张维度值索引表,分别对应列表“时间戳”、“值”、“测点ID”。对于测点属性表做相同的操作。对于每一张维度值索引表,建立对应的维度值索引(DVI)和值标识索引(VII)。\n[0034] (3)构建星型模型\n[0035] 构建两个星型模型,一组包含行表数据采集表、列表“时间戳”、“值”、“测点ID”;另一组包含行表测点属性表、列表“测点ID”、“测点名”以及相关属性列表。两个星型模型利用列表“测点ID”形成了雪花模型。\n[0036] (4)数据重组\n[0037] 将行表和列表根据其访问特性存储到对应的存储上,以提升应用访问效率。同时,可仅对行表进行归档备份操作以节约成本。最后构建的行列混合数据存储模型参见附图1。\n[0038] 本发明不限于上述实施例,一切采用等同替换或等效替换形成的技术方案均属于本发明要求保护的范围。
法律信息
- 2020-01-10
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 201510033610.6
申请日: 2015.01.22
授权公告日: 2018.07.03
- 2018-07-03
- 2015-06-24
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201510033610.6
申请日: 2015.01.22
- 2015-05-27
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-10-23
|
2013-07-31
| | |
2
| |
2012-09-12
|
2012-04-17
| | |
3
| |
2012-10-17
|
2012-06-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |