大数据学习笔记(十)-Hive中的Storage format

来源:互联网 发布:网络封包抓取 编辑:程序博客网 时间:2024/05/18 03:42

1.Storage format
行存储:SEQUENCEFILE、TEXTFILE
列存储:ORC、PARQUET、AVRO
行列混合存储:RCFILE、
2.行存储VS列存储
行式存储:
①一行数据一定在一个block里
②一行数据类型混杂,不容易获得很好的压缩比
③不能支持快速查询

列式存储:
①一行数据不一定在一个block里
②查询时能够避免读取不必要的列
③每一列存储数据类型相同,可以针对列选择压缩方式,能够达到较高的压缩比
④重构(如select *)

列式存储与行式存储的对比优势
减少磁盘IO
存储空间
查询性能:向矢量查询(vectorized query)
predicate pushdown(谓词下推)

SeqFile对比TextFile 存储大小 查询效率
SeqFile 大(要存key长度,value长度,sync等信息) 好(应为有key长度,value长度等信息所以可以快速定位key或者value并读取)
TextFile 小 差(需要反复读直到遇到分隔符)
RCFile节省空间有限(比TextFile节省10%左右),性能不如SeqFile
ORC( Optimized Row Columnar):压缩比很高
关于ORC压缩的详细描述文章:https://hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance/
Parquet(高效的列式存储)