1、TextFile
默认的存储格式,普通的文本文件,行式存储,无压缩,基本不采用
2、Sequencefile
行式存储,key vaule 的形式存在,二进制文件,支持压缩,一般采用Block压缩。写和读比较快,不允许load方式加载数据,需要insert。
在大数据计算中,一般的行式存储基本不采用
3、Rcfile
数据按行分块,每块按照列存储,提高查询效率,不允许load方式加载数据,需要insert
4、Orc
数据按行分块,每块数据按照列存储,条形存储,对rc进行优化,存储了一些索引以及其他的辅助信息,可以快速查询检索
5、Parquet
面向列的二进制存储文件,大型查询效率高效,支持压缩格式,默认snappy压缩方式,
目前市面上使用最多的是Orc 和 Parquet ,
那么 Orc 和 Parquet 的区分
a、均采用列式存储
b、都是数据按行分组,形成RowGroup ,再按照列进行存储
不同点
Parquet是等数量记录划分,ORC划分的stripe不一定相同
Parquet更能存储嵌套数据,且适配Spark计算引擎
Parquet在按列存储的基础上,对ColumnChunk进行分页;对于字符类型的字段可采取字典编码形成DictionaryPage,提升存储效率
Parquet在Page上采用索引机制,记录类型Max-Min等指标提升查询效率
ORC 支持 ACID 属性
ORC 的压缩效率更高
无特殊要求,选择Orc即可