hive存储格式textfile到orc

hive默认存储格式为textfile,orc是一种列式存储格式,读,写,处理数据上比textfile更有优势,更节省磁盘空间

由于orc的表不能直接load导入,所以我们仍需要textfile的表

将textfile表的查询结果导入到orc表

create table api_orc 
stored as ORC 
TBLPROPERTIES("orc.compress"="ZLIB") 
as select * from api;

如果我们将textfile表的全部字段导入orc表,无需指定字段

导入到orc表之后,就可以把textfile的数据删掉了,每天把前一天的先进textfile,再进orc,

insert into table api_orc
select * from api where to_date(date)='前一天'

最后删掉textfile的,节省磁盘空间

这是测试的效果,原先的textfile数据为310M,改成orc格式后为22M

友情提示: ZLIB务必大写,不然建表不报错,insert数据报错,没有log才是最蛋疼的

如果只需要textfile表的部分字段,可以在建orc表的时候指定字段

create table api_orc1(
date string,
status int) 
stored as ORC 
TBLPROPERTIES("orc.compress"="ZLIB");

然后再insert

insert into 
table api_orc1 
select date,status 
from api;

这样就ok了。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值