【Juicy-Bigdata】Hive之存储与压缩
【Juicy-Bigdata】Hive之存储与压缩
余生杂货铺HIVE存储格式
Hive支持:TextFile、SequenceFile、ORC、PARQUET
行式存储与列式存储
行存储的特点:行存储查询一行数据的时候效率更好
列存储:可以针对性的设计更好的压缩算法,查询某些字段的效率更高,减少读取
TEXTFILE
默认格式,数据不压缩,HIVE不会对数据进行切分,从而不能进行合并炒作
ORC格式
Optimized Row Columnar
一个ORC文件由若干个Stripe组成,Stripe相当于RowGroup,由三部分组成;
IndexData:记录各个字段在row data的offset
Row Data:部分行具体数据,按列进行存储
Stripe footer:元数据信息
File Footer:存储每个Stripe的行数、每个column的数据类型。
PosterScript:记录文件的压缩类型,fileFooter的长度。
在读取ORC文件的时候,会先读posterscript->FileFooter->stripte,因为文件长度从最后开始约定。
PARQUET
文件是二进制存储的
定义指定存储格式的表
stored as
1 | create table log_orc( |
HIVE的压缩格式
在mapper输出与reducer输出阶段进行压缩
1 |
|
创建一个snappy压缩的orc存储方式的表
1 | create table log_orc_snappy( |
主流存储文件对比
压缩比比较:
ORC > Parquet > textFile
查询效率:
ORC > TextFile > Parquet