[发明专利]一种树状数据的行式和列式存储方法及系统有效
申请号: | 201710179108.5 | 申请日: | 2017-03-23 |
公开(公告)号: | CN107066551B | 公开(公告)日: | 2020-04-03 |
发明(设计)人: | 陈世敏;王智义 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F16/80 | 分类号: | G06F16/80 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 树状 数据 存储 方法 系统 | ||
1.一种树状数据的行式和列式存储方法,其特征在于,包括:
步骤1,将所述树状数据按照行式与列式方式进行存储,生成行式存储结构与列式存储结构,其中所述行式存储结构包括结构头信息、数值的数组、被赋值节点的ID数组与偏移量数组;
步骤2,进行行式存储结构到列式存储结构的数据解析;
步骤3,通过基于Google Dremel的组装算法,进行列式存储结构到行式存储结构的数据组装。
2.如权利要求1所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构包括CAB基本单元,在解析过程中,每个值产生一条列数据项存储在CAB基本单元中,其中对CAB基本单元使用记录id对齐的方式进行存储,每个CAB基本单元都存储相同多的记录,且不考虑列数据项的条数。
3.如权利要求2所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构中CAB基本单元包括:
(1)头信息:用于描述CAB基本单元的相关信息,包括其大小与存储的记录条数;
(2)bit数组:用于记录每条列数据项的重复值与定义值,其中使用若干bit代替整数来存储重复值及定义值,并根据路径的结构信息对其进行优化;
(3)数值区域:用于记录全部列数据项的值。
4.如权利要求3所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构CAB基本单元中(2)bit数组包括:
a)数据中没有出现的域:在解析的过程中如果某些域没有值时会插入null使得每条记录能够自然对齐;
b)单值域:每个列数据项中重复值是相同的,所以忽略重复值的数组;
c)只会在单个嵌套层次进行重复的值:重复值标记每条记录的第一条列数据项,且仅使用1bit标记每个列数据项的重复值;
d)会在多个嵌套层次进行重复的值:用多个bit指出其重复的值。
5.如权利要求3所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构CAB基本单元中(3)数值区域还包括:对于变长与定长的两种数据格式,通过以下策略进行存储:
a)定长的数据类型:在头信息中记录定长的数据类型每个值所占用的空间,每次移动固定的长度读取下一个数值,无需额外的偏移数组;
b)变长的数据类型:在偏移数组中记录变长的数据类型每个值的存储位置,对于值的内容大量重复的域,仅存储一个具体的变长值,通过在不同的列数据项中复用所述具体的变长值的偏移量提高其存储的效率。
6.如权利要求1所述的树状数据的行式和列式存储方法,其特征在于,所述行式存储结构中的头信息,用于记录行式存储结构的相关信息;偏移量数组ID与偏移量数组:对于对象,标记其中每个域的id用于表示其值的存在,对于数组,其中的每个值都是相同的域的赋值,所以仅保留每个值的偏移量信息;数值的数组:行式的存储结构都将值重复出现的数值存储为数组的形式进行存储,其中值的类型为原子类型的数据或复合类型的数据。
7.如权利要求1所述的树状数据的行式和列式存储方法,其特征在于,列式存储结构使用重复值和定义值表示树状结构数据的结构:
(1)重复值:数据中的重复是在哪一个层次上进行的重复;
(2)定义值:数据中能够省略的域出现的层次。
8.如权利要求1所述的树状数据的行式和列式存储方法,其特征在于,行式存储结构到列式存储结构的数据解析包括:
在解析过程中无需对文本数据的结构进行字符的匹配,使用已经解析好的行式存储结构的数据直接解析为列式存储结构的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710179108.5/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置