1.场景
在Hive中,插入数据时可以指定动态分区,如果 通过partition(day_partition)指定动态分区, 而实际的select语句是 直接把这个属性值写死了
(如’2022-10-13’),就可以不需要指定hive变量 set hive.exec.dynamic.partition=true
; 2.动态分区与静态分区冲突
如上图,我们明明指定了动态分区,但查询时写死, hive会自动转化为静态分区
但是如果我们手动指定 set hive.exec.dynamic.partition=true
,那Hive就 无法转为静态分区,就会造成不匹配的现象, 编译结束之后压根不会执行
2.1看下日志
如果加了动态分区参数,几秒钟就结束了,而数据肯定是没有的
; 2.2不是缓存的原因
这个很容易会想到是不是hive缓存的问题,但是把参数从12号修改到13号,仍然出现这样的情况
3.小结
使用 set hive.exec.dynamic.partition=true
时必须要保证自己的 查询语句冗余字段不能写死
Original: https://blog.csdn.net/m0_56079407/article/details/127939115
Author: ZJH’blog
Title: Hive:BUG记录,错误使用动态分区导致的插入失败
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817538/
转载文章受原作者版权保护。转载请注明原作者出处!