关于Sqoop同步数据的问题【已解决】

1. 问题描述

      最近某个表没有增量的数据,出现了问题,  于是调出日志,定位问题,结果是临时表中增量条件多了个and(大意多填了),

      关于Sqoop同步数据的问题【已解决】_第1张图片

后来在拼接sql的时候,多一个and,导致增量sql没有执行成功,报了如下异常:   

java.sql.SQLSyntaxErrorException: ORA-00936: missing expression

最致命的是  这里没有邮件通知到,之前考虑到这部分是手动配置,插入临时表的,配完之后,跑一下没问题就行。就没有考虑容错。现在必须要考虑了,人都有犯错误的时候,在不知不觉中。

2.解决方案

    之前想用正则匹配一下,拼接好的Sql,不符合标准,就发邮件通知。后来就投机取巧用了现在的方法,先解决问题。就是在Sql执行的时候,判断执行完的状态,0为成功,其他为失败,发送邮件通知。部分代码如下:

######SQOOP数据采集异常邮件
if [ $v_state -eq 0 ];
  then
    echo "Sqoop数据采集成功"
else

sh /home/tomcat/script/oracle_ods/job_kettle_send_mail.sh "SQOOP数据采集异常:$V_SHELL_NAME" "表名:$V_MBBM"

fi

   后续数据也会搬到基于DataX二次开发的数据开发平台,现在这个平台确实有些地方还是不够完善。

你可能感兴趣的:(Linux,大数据,Sqoop,同步,临时表)