记录一个在开发中使用hive表的一个小坑。
背景:需要修改表中有字段A 为Int类型,后来因协议变动字段A变成String类型。然后使用了下面的sql对字段类型进行修改:
Alter table xxxx change column A A string修改了好了,hive执行sql也没有问题。但是在创建kylin cube的时候,就会出现有的分区出现字段类型不一致的问题。但是如果是字段类型不一致的话应该是全部都创建失败才对。
后来发现:hive修改字段类型的时候对已经创建的partitions是不起作用的,即使是insert overwrite,想要全局的个修改字段类型需要用到下面这条语句。
Alter table xxxx change column A A string CASCADE在修改分区表的时候一定要添加CASCADE,不然旧的分区元数据不被修改,会出现错误。
0条评论