hive 修改表的存储格式_Hive文件存储格式

列式存储和行式存储

5.png

上图左边为逻辑表,右边第一个为行式存储,第二个为列式存储。

** 行存储的特点: **查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。

** 列存储的特点: **因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个字段的数据类型一定是相同的,列式存储可以针对性的设计更好的设计压缩算法。

Hive中常用的存储格式

textfile

textfile为默认格式,存储方式为行存储。

ORCFile

hive/spark都支持这种存储格式,它存储的方式是采用数据按照行分块,每个块按照列存储,其中每个块都存储有一个索引。特点是数据压缩率非常高。

6.png

Parquet

Parquet也是一种行式存储,同时具有很好的压缩性能;同时可以减少大量的表扫描和反序列化的时间。

根据不同的格式创建表

textfile

创建表

create table textfile(

...

...

...

)

row format delimited fields terminated by '\t'

stored as textfile;

insert into table textfile select * from source_log;

查看占用的磁盘空间

7.png

orc

创建表

create table orc(

...

...

...

)

row format delimited fields terminated by '\t'

stored as orc;

insert into table orc select * from source_log;

查看占用的磁盘空间

8.png

parquet

创建表

create table parquet(

...

...

...

)

row format delimited fields terminated by '\t'

stored as parquet;

insert into table parquet select * from source_log;

查看占用的磁盘空间

9.png

磁盘空间占用大小比较

orc(7.8M)

查询语句的比较

textfile表

hive (count_log)> select id from textfile limit 30;

10.png

orc表

hive (count_log)> select id from orc limit 30;

11.png

parquet表

hive (count_log)> select id from parquet limit 30;

12.png

把设置存储格式和压缩结合使用,可以最大的减少存储空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值