1、Hive 数据存储存储格式
Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile等)。Parquet和ORC是属于列式存储。几张图看懂列式存储详细介绍了列式存储的原理和优势。
从上图可以很清楚地看到,行式存储下一张表的数据都是放在一起的,但列式存储下都被分开保存了。所以它们就有了如下这些优缺点:
这里聊聊它们的对比,笔者做过一个测试,对同一份数据源利用不同的数据存储之后,查看它们的大小:
- TextFile(默认) 文件大小为28.1M
- 用SequenceFile存储后的文件为29.6M
- 用RcFile存储后的文件为27.9M
- 用ORCFile存储后的文件为17.7M
- 用Parquet存储后的文件为23.1M
总结:磁盘空间占用大小比较 ORCFile<Parquet<RcFile<