[发明专利]一种结构化数据存储方法及装置在审
申请号: | 201210143681.8 | 申请日: | 2012-05-09 |
公开(公告)号: | CN103389992A | 公开(公告)日: | 2013-11-13 |
发明(设计)人: | 蒋锦鹏 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 袁媛 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 数据 存储 方法 装置 | ||
技术领域
本发明涉及数据处理技术领域,特别是涉及一种结构化数据存储方法及装置。
背景技术
在spider架构融合应用中,LinkCache需要对Link的相关属性数据进行存储。Link数据的特点是字段数量很多,但大部分字段都很短,甚至是bit(比特)位字段,因此数据存储效率对于数据性能的影响较大。另一方面,在实际应用中,Link数据的schema(结构体)经常会涉及字段的修改,因此对于数据灵活性也具有较高的要求。
在现有技术中,紧密二进制存储方法的效率很高,但灵活性太差,不能做到schema动态修改,无法适用于Link数据的实际存储应用。XML、JSON等基于tag的文本序列化方式具有较高的灵活性,但所需占用的额外存储空间较多,造成存储和传输性能的低下;protobuf是Google公司所提供的一种开源的结构化数据打包方法,与XML、JSON相比,protobuf使用二进制tag代替了文本tag,一定程度上降低了打包容量大小,提升了存储效率。但它仍然存储了字段名或字段序号等元信息,当字段本身内容较少时,会造成存储空间的严重浪费。
发明内容
为解决上述技术问题,本发明实施例提供一种结构化数据存储方法及装置,可以提供接近紧密二进制存储的高效率,同时又具有较好的数据升级灵活性,技术方案如下:
本发明实施例提供一种结构化数据存储方法,包括:
生成待存储结构体的标识信息;
确定待存储结构体中待存储字段的类型;
在存储空间中,依次写入结构体的标识信息、结构体的定长数据部分和结构体的变长数据部分,生成序列化结构体数据;
建立所述标识信息与所述序列化结构体存储格式的唯一对应关系。
根据本发明的一种具体实施方式,所述生成该结构体的标识信息,包括:
根据待存储结构体的名称,利用哈希算法生成该结构体的标识信息。
根据本发明的一种具体实施方式,所述写入结构体的定长数据部分,包括:
写入结构体的字节边界定长字段;
写入结构体的比特边界定长字段。
根据本发明的一种具体实施方式,所述写入结构体的定长数据部分,还包括:
写入结构体可选字段的属性值。
根据本发明的一种具体实施方式,所述写入结构体的变长数据部分,包括:
写入结构体的字节边界变长字段;
写入结构体的比特边界变长字段。
根据本发明的一种具体实施方式,在待写入的变长字段为非数组类型的情况下:
依次写入该字段的长度标识以及字段内容。
根据本发明的一种具体实施方式,在待写入的变长字段为数组类型的情况下:
首先写入该数组的长度标识,然后分别依次写入该数组中每个元素的长度标识以及元素的内容。
本发明实施例还提供一种结构化数据存储装置,包括:
标识信息生成单元,用于生成待存储结构体的标识信息;
类型确定单元,用于确定待存储结构体中待存储字段的类型;
写入单元,用于在存储空间中,依次写入结构体的标识信息、结构体的定长数据部分和结构体的变长数据部分,生成序列化结构体数据;
关联单元,用于建立所述标识信息与所述序列化结构体存储格式的唯一对应关系。
根据本发明的一种具体实施方式,所述标识信息生成单元具体用于:
根据待存储结构体的名称,利用哈希算法生成该结构体的标识信息。
根据本发明的一种具体实施方式,所述写入单元中包括定长部分写入子单元,具体用于:
写入结构体的字节边界定长字段;
写入结构体的比特边界定长字段。
根据本发明的一种具体实施方式,所述定长部分写入子单元,还用于:
写入结构体可选字段的属性值。
根据本发明的一种具体实施方式,所述写入单元中包括变长部分写入子单元,具体用于:
写入结构体的字节边界变长字段;
写入结构体的比特边界变长字段。
根据本发明的一种具体实施方式,所述变长部分写入子单元,在待写入的变长字段为非数组类型的情况下,依次写入该字段的长度标识以及字段内容。
根据本发明的一种具体实施方式,所述变长部分写入子单元,在待写入的变长字段为数组类型的情况下,首先写入该数组的长度标识,然后分别依次写入该数组中每个元素的长度标识以及元素的内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210143681.8/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置