- 存储+压缩
- orc、parquet是一种存储方式
列式存储
orc
在读取文件时,会到文件尾部读 PostScript,从里面解析到 File Footer长度,再读FileFooter,从里面解析到各个Stripe信息,再读各个Stripe。
parquet
- parquet文件包含数据和元数据,所以parquet是自解析的。
- 行组(row group): 先把表按照每XX行分割成多个行组。通常Parquet 数据会按照Block大小设置行组的大小,所以一个行组由一个mapper处理。
- 列块(column chunk):一个行组中每一列保存为一个列块。列块内的值都是相同类型的
- 页(page):一个列块能分为多个页
- 一个文件中可以存储多个行组,文件的首位都是该文件的Magic Code,用于校验它是否是一个Parquet文件
- Footer length 记录了文件元数据的大小。
- 从而计算出Footer元数据的偏移量,文件的元数据中包括每一个行组的元数据信息和该文件存储数据的 Schema 信息。
- 除了文件中每一个行组的元数据,每一页的开始都会存储该页的元数据
压缩

