parquet列存储
来源:互联网 发布:爱剪辑 for mac 下载 编辑:程序博客网 时间:2024/05/21 18:31
why?
1,同一列数据的类型和“材质”是一致的,所以压缩起来更节省空间
2,在按列检索需求下,无需读取整行记录,I/O降低
3,当每一列类型相同时,通过编码能够更好的适应现代处理器分支指令集预测优化
message example as follow
message AddressBook { required string owner; repeated string ownerPhoneNumbers; repeated group contacts { required string name; optional string phoneNumber; }}
通过definition 和 repetition Levels 重建 嵌套的数据结构
为了支持嵌套结构,需要存储field为null的level,对于required,不需要 definition levels
repetition
optional or required fields are never repeated and can be skipped while attributing repetition levels
在数据写入时,对于每一列,Parquet都会创建一个ColumnIO(含有columnName,definitionLevel,RepetitionLevel)和ColumnWriter并通过index与之对应,metadata和valueData分开写入。写入valueData时,仅写入value, definitionLevel, RepetitionLevel的ByteArray数据(对于字符串类型的数据,编码为UTF8) DefinitionLevel and RepetitionLevel
0 0
- parquet列存储
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 新一代列式存储格式Parquet
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- 深入分析Parquet列式存储格式
- parquet列式存储之:ColumnChunkPageWriteStore源码解析
- Spark-parquet列存储之:ParquetTableOperations源码分析
- 关于这次出差--解决自动制浆的一点收获---模拟信号的不稳定---变频器对整个电路的影响
- Swift调用OC之文件操作-NSBundle
- MATLAB中subplot的用法
- HDU 4614 Vases and Flowers [二分 + 线段树]
- leetcode Reverse Nodes in k-Group
- parquet列存储
- 五一巨献,问答有礼,105QB送给IT互联网界的劳动人民
- RubyOnRails在redactor中通过paperclip实现图片上传并编辑的功能
- Java Graphics类的绘图方法
- leetcode Median of Two Sorted Arrays
- Linux Mint 17一周使用体验
- [Java]final关键字的使用 引用类型引用不变 基本类型值不变
- 排序算法及其效率分析(一)内排序
- spark源码分析只: job 全过程