cdh集群使用ORC bug

在CDH集群环境下,当Hive表仅更新字段但未更新分区字段时,通过ORC存储的数据在查询时可能出现新增字段值缺失的情况。这与ORC格式在CDH中的支持有关。相比之下,Parquet格式则不受此问题影响。解决办法包括禁用hive.vectorized.execution.enabled或避免使用ORC格式。
摘要由CSDN通过智能技术生成

        最近某业务hive表新增字段(只更新了表字段,没有更新分区字段),重新导入全量数据进入历史分区,查询新增字段值与数据库相同,第二天合并新增修改数据放入新分区,发现新增字段值不对比数据库少了。原因就是历史分区没有新增字段,导致查询值为null,这也跟orc 存储格式在cdh支持有关。接下来通过orc , parquet两种格式来对比说明这个问题。

 新建orc格式的表,插入,查询数据 正常:

drop table test.student1;
create table if not exists test.student1(
id string 
,user_name string 
,age int 
)
partitioned by(dt string 
)stored as orc ;

insert overwrite table test.student1 partition (dt='20220803') select '1', 'test2',9 from nginx_log limit 10; 

select * from test.student1 where dt='20220803';

 新增字段class,重新生成数据到20220803分区,加上了class:

alter table test.student1 add columns(class string);

insert overwrit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值