Hive使用不同格式压缩后对比

目录

 

1、设置压缩和自动分区

2、创建带压缩的parquet table

3、如果原来创建表的时候没有指定压缩,后续可以通过修改表属性的方式添加压缩

4、数据压缩对比

5、查询除了其中某个字段剩余所有字段

6、SQL查询时间


1、设置压缩和自动分区

set parquet.compression=snappy;
set hive.exec.dynamic.partition=true; 
set hive.exec.dynamic.partition.mode=nonstrict;

2、创建带压缩的parquet table

create table mytable(a int,b int) stored as parquet tblproperties('parquet.compression'='snappy');

3、如果原来创建表的时候没有指定压缩,后续可以通过修改表属性的方式添加压缩

alter table mytable set tblproperties ('parquet.compression'='snappy');

4、数据压缩对比

22.1 M   66.4 M   /user/hive/warehouse/zxd_test.db/etl_user_active_day
7.6 M    22.8 M   /user/hive/warehouse/zxd_test.db/etl_user_active_parquet
5.3 M    16.0 M   /user/hive/warehouse/zxd_test.db/etl_user_active_parquet_snappy
20.1 M   60.3 M   /user/hive/warehouse/zxd_test.db/etl_user_active_rcfile
20.1 M   60.3 M   /user/hive/warehouse/zxd_test.db/etl_user_active_rcfile_snappy
3.2 M    9.6 M    /user/hive/warehouse/zxd_test.db/etl_user_active_orc_snappy
23.3 M   69.9 M   /user/hive/warehouse/zxd_test.db/etl_user_active_sequencefile
23.3 M   69.9 M   /user/hive/warehouse/zxd_test.db/etl_user_active_sequencefile_snappy

5、查询除了其中某个字段剩余所有字段

#由于etl_user_active_day表是分区表,需要将day分区字段排除
set hive.support.quoted.identifiers=None; 
set parquet.compression=snappy; 
insert overwrite table etl_user_active_rcfile_snappy select `(day)?+.+` from etl_user_active_day;

6、SQL查询时间

select count(*) from table;
text :Time taken: 21.743 seconds, Fetched: 1 row(s)
parquet :Time taken: 20.855 seconds, Fetched: 1 row(s)
orc : Time taken: 19.951 seconds, Fetched: 1 row(s)
由于数据量小 MapReduce启动都花了10几秒了,但也可以看出 parquet和orc的性能较好

总结:压缩和自动分区都是hive常用的优化手段,既节省空间有提高检索数据

但是为了不改变元数据的分割性,常见的组合压缩是parquet + snappy、orc + snappy。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值