一种树状数据的行式和列式存储方法及系统技术方案

技术编号:16038217 阅读:47 留言:0更新日期:2017-08-19 20:03
本发明专利技术提出一种树状结构数据的行式和列式存储的方法及系统。使用该方法支持对树状结构的文本数据读取并解析为行式或者列式的二进制格式进行存储。其中在解析的过程中,动态生成语法树,存储半结构化数据的定义;在查询过程中,STEED通过语法树中读取原有数据的相关结构信息,结合二进制数据中的内容完成查询相关的操作。如上所述的行式存储结构以记录为单位,内部定义了嵌套子结构表示半结构化数据的嵌套和重复域;如上所述的列式存储以语法树中从根到叶子节点的每条路径为单位,将全部记录中这条路径的值及其结构信息进行单独存储。本发明专利技术通过对半结构化数据存储结构的分析,简化了数据存储的结构并提高了其存储效率。

【技术实现步骤摘要】
一种树状数据的行式和列式存储方法及系统
本专利技术涉及数据处理
,特别涉及一种树状数据的行式和列式存储方法及系统。
技术介绍
随着计算机网络和大数据处理技术的发展,传统关系型数据已经越来越不能满足网络和大数据环境下对数据定义和使用的要求,而以JSON和ProtocolBuffers为代表的半结构化数据因为既能够充分的表达编程语言中对象(Object)的数据,同时还能够根据数据的格式变化对原有的数据格式进行修改和扩充,故而其在实际环境中被广泛的使用。树状结构数据的定义:Tvalue=Tprimitive|Tobject|TarrayTprimitive=string|number|boolean|nullRecord=Tobject如上所示,树状结构数据定义如下:1.树状结构数据中的值可以是以下的3种:object结构的数值;array结构的数值;原子类型的数值;2.object结构的数值由花括号包括,内部由多个键值对(keyvaluepair)对构成,键值对的个数可以是任意多个,但是要求不能有重复的key存在在object结构的对象中;3.array结构的数据由方括号包括,内部本文档来自技高网...
一种树状数据的行式和列式存储方法及系统

【技术保护点】
一种树状数据的行式和列式存储方法,其特征在于,包括:步骤1,将所述树状数据按照行式与列式方式进行存储,生成行式存储结构与列式存储结构,其中所述行式存储结构包括结构头信息、数值的数组、被赋值节点的ID数组与偏移量数组,所述列式存储结构包括重复层与定义层;步骤2,进行行式存储结构到列式存储结构的数据解析;步骤3,进行列式存储结构到行式存储结构的数据组装。

【技术特征摘要】
1.一种树状数据的行式和列式存储方法,其特征在于,包括:步骤1,将所述树状数据按照行式与列式方式进行存储,生成行式存储结构与列式存储结构,其中所述行式存储结构包括结构头信息、数值的数组、被赋值节点的ID数组与偏移量数组,所述列式存储结构包括重复层与定义层;步骤2,进行行式存储结构到列式存储结构的数据解析;步骤3,进行列式存储结构到行式存储结构的数据组装。2.如权利要求1所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构包括CAB基本单元,在解析过程中,每个值产生一条列数据项存储在CAB基本单元中,其中对CAB基本单元使用记录id对齐的方式进行存储,每个CAB基本单元都存储相同多的记录,且不考虑列数据项的条数。3.如权利要求2所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构中CAB基本单元包括:(1)头信息:用于描述CAB基本单元的相关信息,包括其大小与存储的记录条数;(2)bit数组:用于记录每条列数据项的重复值与定义值,其中使用若干bit代替整数来存储重复值及定义值,并根据路径的结构信息对其进行优化;(3)数值区域:用于记录全部列数据项的值。4.如权利要求3所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构CAB基本单元中(2)数组包括:a)数据中没有出现的域:在解析的过程中如果某些域没有值时会插入null使得每条记录能够自然对齐;b)单值域:每个列数据项中重复值是相同的,所以忽略重复值的数组;c)只会在单个嵌套层次进行重复的值:重复值标记每条记录的第一条列数据项,且仅使用1bit标记每个列数据项的重复值;d)会在多个嵌套层次进行重复的值:用多个bit指出其重复的值。5.如权利要求3所述的树状数据的行式和列式存储方法,其特征在于,所述列式存储结构CAB基本单元中(3)数值区域还包括:对于变长与定长的两种数据格式,通过以下策略进行存储:a)定长的数据类型:在头信息中记录定长的数据类型每个值所占用的空间,每次移动固定的长度读取下一个数值,无需额外的偏移数...

【专利技术属性】
技术研发人员:陈世敏王智义
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1