FAQ-mysql2hive,hive端多一个字段,任务报错

问题背景

mysql2hive时,某个字段在mysql中,在hive中有;也就是hive中多一个字段

发现版本
所有版本

问题现象
将目标端hive中多的那个字段,在源端设置成不导入、null值/CAST(NULL AS STRING)、手动指定源端字段均不行:
FAQ-mysql2hive,hive端多一个字段,任务报错 - 图1
FAQ-mysql2hive,hive端多一个字段,任务报错 - 图2
FAQ-mysql2hive,hive端多一个字段,任务报错 - 图3
任务报错:
FAQ-mysql2hive,hive端多一个字段,任务报错 - 图4

问题原因
hive不支持不导入,定义null的时候不能直接写个null

解决方案
使用 CAST 函数将一个 NULL 值转换为一个 char(1) 类型的字符串。char(1) 类型是指长度为 1 的字符类型,因此该函数返回的字符串将只包含一个空字符。然后使用 AS 关键字将这个字符串赋值给名为 vc_tradecco 的列。eg:cast(NULL as char(1)) as is_quick_pass;

作者:曹俊