1、TextFile
- 存储方式:行存储。默认格式,如果建表时不指定默认为此格式。
- 每一行都是一条记录,每行都以换行符"\n"结尾。数据不做压缩时,磁盘会开销比较大,数据解析开销也比较大。
- 可结合Gzip、Bzip2等压缩方式一起使用(系统会自动检查,查询时会自动解压),推荐选用可切分的压缩算法。
2、Sequence File
- 一种Hadoop API提供的二进制文件,使用方便、可分割、个压缩的特点。
- 支持三种压缩选择:NONE、RECORD、BLOCK。RECORD压缩率低,一般建议使用BLOCK压缩。
3、RC File
- 存储方式:数据按行分块,每块按照列存储 。
- A、将数据按行分块,保证同一个record在一个块上,避免读一个记录需要读取多个block。
- B、块数据列式存储,有利于数据压缩和快速的列存取。
- 相对来说,RCFile对于提升任务执行性能提升不大,但是能节省一些存储空间。可以使用升级版的ORC格式。
4、ORC File
- 存储方式:数据按行分块,每块按照列存储
- Hive提供的新格式,属于RCFile的升级版,性能有大幅度提升,而且数据可以压缩存储,压缩快,快速列存取。
- ORC File会基于列创建索引,当查询的时候会很快。
5、Parquet File
- 存储方式:列式存储。
- Parquet对于大型查询的类型是高效的。对于扫描特定表格中的特定列查询,Parquet特别有用。 Parquet一般使用Snappy、Gzip压缩。默认Snappy。
- Parquet支持Impala 查询引擎。
- 表的文件存储格式尽量采用Parquet或ORC,不仅降低存储量,还优化了查询,压缩,表关联等性能。
|