Hive本身支持好多种数据格式,其中OrcFile是当前压缩比最大的一个。因此进行该方面的实践。
采用建表过程中,直接:stored as orc,就可以指定。
然而用传统文本文件导入的方式,再进行查询测试,如select count(*) from table XX. 则会出现:Failed with exception java.io.IOException:java.io.IOException: Malformed ORC file的问题。
找到解决办法,由于TXT文档导入,无法生成ORC数据结构,所以需要先导入临时表,再从临时表中再导到ORC表中。
命令如下:INSERT INTO TABLE XX partition(year=2015,month=12,day=1,hour=0) SELECT * FROM XXX;
这样的话,可以明显看到里面有三个步骤。需要进行三次mapreduce.
插入结果,对比大小,还是十分令人振奋的。从200多M,直接变为几K。
而且进行查询,发现查询速度还是比普通的提高很多!