hive 中的存储格式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35744460/article/details/89388161

存储格式

  • 行式存储
    一行的数据都在一个hdfs block上,这样在select * from table 时 ,能全部查出,但是在查某几列时他也会将不需要的列也会取出来在选择需要的列,增加了没必要的磁盘io

  • 列式存储
    每一列数据都类型都一样,可以采取一定的压缩,在查某几列时,只需要查询需要的列不会查询不需要的,但是在select * from table时,由于不同列不在一起,会进行数据重组

hive中存储格式

  • TextFile(行式存储,默认)
    数据没有压缩,磁盘开销大。

  • sequencefile(行式存储)
    key-value格式,对value进行压缩,但是多了一些数据会变大,一般不用

  • orc(列式存储)
    参考官网介绍
    在这里插入图片描述
    将文件分为多个stripe,默认每个stripe为250M,在stripe中默认对每10000行进行一个索引(index data)。这个索引记录了这些行中的最大和最小的值,查询性能明显提升。
    HiveQL语法

    • CREATE TABLE … STORED AS ORC
    • ALTER TABLE … [PARTITION partition_spec] SET FILEFORMAT ORC
    • SET hive.default.fileformat=ORC
  • parquet(列式存储)
    性能差不多,这2 个都常用

猜你喜欢

转载自blog.csdn.net/qq_35744460/article/details/89388161