【技术实现步骤摘要】
一种树状数据的行式和列式存储方法及系统
本专利技术涉及数据处理
,特别涉及一种树状数据的行式和列式存储方法及系统。
技术介绍
随着计算机网络和大数据处理技术的发展,传统关系型数据已经越来越不能满足网络和大数据环境下对数据定义和使用的要求,而以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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。