Hive中文件存储格式及大小比较测试
2018-03-12 本文已影响67人
明明德撩码
在hive中创建表是有如下一个语句
[ROW FORMAT row_format]
row_format 的类型有如下:
file_format:
: SEQUENCEFILE
| TEXTFILE -- (Default, depending on hive.default.fileformat configuration)
| RCFILE -- (Note: Available in Hive 0.6.0 and later)
| ORC -- (Note: Available in Hive 0.11.0 and later)
| PARQUET -- (Note: Available in Hive 0.13.0 and later)
| AVRO -- (Note: Available in Hive 0.14.0 and later)
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
默认是文本格式例如:
按照数据存储方式分类
官方文档地址
https://cwiki.apache.org/confluence/display/Hive/SerDe
按照行存储
SEQUENCEFILE
TEXTFILE
按照列存储
RCFILE
ORC
PARQUET
说明:parquet目前已经是apache的顶级项目了,在hive,hbase,spark中都是经常使用的。
文件格式的压缩比较
参考文档http://zh.hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance/
实际业务我们是按照列来分析数据及使用数据的。
1、创建文本表
2、加载数据
image.png3、查看创建OCR文件的格式
4、创建ocr文件
5、把文件表中的数据插入到OCR类型的表中
6、创建parquet类型的表并插入数据
7、查看文件大小
原始文本文件的大小
orc文件大小
partquet文件大小
执行sql语句测试执行速度