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

1.场景

在Hive中,插入数据时可以指定动态分区,如果 通过partition(day_partition)指定动态分区而实际的select语句是 直接把这个属性值写死了 (如’2022-10-13’),就可以不需要指定hive变量 set hive.exec.dynamic.partition=true

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

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

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

2.1看下日志

如果加了动态分区参数,几秒钟就结束了,而数据肯定是没有的

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

; 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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球