Hive中的各种存储格式的区别

        hive包含的文件存储格式有:textFile、SequenceFile、RCfile、ORCFile,parquet。

textFile:

        默认的文件格式,行存储。

        优点:最简单的数据格式,便于和其它工具(pig,grep,awk)共享数据,便于查看和编辑;加载快;

        缺点:存储空间占用较大,I/O性能低;不可对数据进行切割、合并,不能进行并行操作;

        适用于小型查询,测试操作等。

sequqnceFile:

        键值对形式存储的二进制文本格式,行存储。

        优点:可压缩、可分割。优化I/O性能;可并行操作;

        缺点:存储空间占用最大,只局限于hadoop生态使用;

        适用于小数据,大部分都是列查询的操作。

RCFile:

        行列式存储。先将数据按行分块,每一个块数据转换成一个Record对象,避免读取一条数据需要读取多个block;然后块数据按列存储。

        优点:可压缩,高效的列存储,查询速度较快;

        缺点:加载时性能消耗较大,全量数据读取时性能较低。

ORCFile:

        优化后的RCFile,优缺点与RCFile类似,查询效率最高。

        适用于hive中、大型的存储和查询。

Parquet:

        列存储。

        优点:更高效的压缩和编码;不与任何数据处理技术绑定,可用于多种数据处理框架。

        缺点:不支持update,insert,delete,ACID

        适用于字段非常多,无更新,只读取部分列数据。

总结:

表的字段个数不多时文件按块进行压缩,行存储比较高效;

表的字段个数成百上千时,且只需要个别字段的查询时,列存储可较大提高效率;

数据仓库一次写入,多次读取,orc格式比较有优势。

你可能感兴趣的:(大数据,Hive)