数据存储优化 (一):存储格式对比Json、ProtocolBuffer
通过上一篇文章的分析发现在大数据的应用中proto在存储方面优于Json。数据都进行压缩,proto约为json的1/3
数据源
1、日志由前端SDK收集,
2、格式为Json,Json有多种类型,子节的各异
3、不同版本的SDK,Json类别也不同
4、每天的数据量为1.5T(备份3份)
优化方式
1、原始数据保留1一个月(Json)
2、从原始数据中抽取可能用到的字端保留5个月(ProtocolBuffer)
具体实现
1、由前端SDK组提供具体Json格式
2、讨论构建数据仓库需要的Json的具体字段
3、依据已定的格式进行存储格式转换Json->ProtocolBuffer
4、重跑历史数据,存储格式转换ProtocolBuffer->Json
预期效果
1、兼容历史的程序
2、减少数据的存储空间
3、可以实现历史数据的重跑
测试结果
没有达到预期的效果
分析原因:
1、pro格式的转换的只是节点、符号
2、数据源中某个字端的数据量过大占据每条数据的95%
优化总结
1、优先分析日志量大原因,分析方向:内容,结构
2、内容过多可以通过改变压缩格式来降低存储
3、结构原因可以通过改变结构来实现优化