当Oracle读的一行数据中有null时,会导致hive在写数据时把值前移,也就是说对应的null没有写上去,数据类型就对应错了,这个bug你们怎么解决的?然而mysql同步数据到hive,当mysql出现一行数据的一个有null或者多个null时,又不会出现hive写数据当有null而前移数据的问题。oracle reader正常配置,hive也是正常配置,文件类型orc,分隔符"/u0001",并且在datax中,关系数据库都是用的共同的读数据的工具类,因为这个工具类在循环获取读到的数据,读到null时会continue,所以我在它在continue前,把null加了进去,暂时解决了问题,但是其他数据例如mysql又不会出现这个问题,所以很奇怪,求大神解答,在线等。
查了一些资料,Datax源码的确有点问题,需要修改Datax的源码。
参考:
SELECT name,nvl2(expr1,expr2,expr3) FROM user;
nvl2是Oracle9i新增加的函数,该函数也用于NULL。格式为NVL2(expr1,expr2,expr3)。如果expr1不是null,则返回expr2;如果expr1为null,则返回expr3