Hive:BUG记录,错误使用动态分区导致的插入失败

1.场景

在Hive中,插入数据时可以指定动态分区,如果通过partition(day_partition)指定动态分区而实际的select语句是直接把这个属性值写死了(如‘2022-10-13’),就可以不需要指定hive变量set hive.exec.dynamic.partition=true
Hive:BUG记录,错误使用动态分区导致的插入失败_第1张图片

2.动态分区与静态分区冲突

如上图,我们明明指定了动态分区,但查询时写死,hive会自动转化为静态分区
但是如果我们手动指定set hive.exec.dynamic.partition=true,那Hive就无法转为静态分区,就会造成不匹配的现象,编译结束之后压根不会执行

2.1看下日志

如果加了动态分区参数,几秒钟就结束了,而数据肯定是没有的
Hive:BUG记录,错误使用动态分区导致的插入失败_第2张图片

2.2不是缓存的原因

这个很容易会想到是不是hive缓存的问题,但是把参数从12号修改到13号,仍然出现这样的情况

3.小结

使用set hive.exec.dynamic.partition=true时必须要保证自己的查询语句冗余字段不能写死

你可能感兴趣的:(hive,bug,大数据)