开发者社区> 问答> 正文

Otter全量同步retl_buffer表中concat pk 的顺序问题

问题如下: insert的pk是concat(id,char(1),time),出现exception,发现是顺序问题id当做time解析:

pid:1 nid:2 exception:setl:com.alibaba.otter.node.etl.extract.exceptions.ExtractException: java.util.concurrent.ExecutionException: org.apache.commons.beanutils.ConversionException: Value format invalid: For input string: "B6Gm0wC0SfKdvUPe/hwnFw==" Caused by: java.util.concurrent.ExecutionException: org.apache.commons.beanutils.ConversionException: Value format invalid: For input string: "B6Gm0wC0SfKdvUPe/hwnFw==" at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.alibaba.otter.node.etl.extract.extractor.DatabaseExtractor.extract(DatabaseExtractor.java:139) at com.alibaba.otter.node.etl.extract.extractor.DatabaseExtractor.extract(DatabaseExtractor.java:81) at com.alibaba.otter.node.etl.extract.extractor.DatabaseExtractor$$FastClassByCGLIB$$f79e22c6.invoke() at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)

然后delete掉retl_buffer的数据后改变顺序insert concat(time,char(1),id),后重启node 还是报错。后来干脆干掉了retl_buffer中所有的数据,重启node仍然出现同样的exception。

请问是否哪里的缓存引起的,或者必须做什么特别的操作? 谢谢!

原提问者GitHub用户liuyikun

展开
收起
古拉古拉 2023-06-14 21:02:37 70 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    根据提供的信息,出现异常的原因为插入时拼接字段的顺序错误。在进行修改后,依然出现同样的异常,说明该异常并不是由缓存引起的。

    考虑到该异常信息中的“ConversionException: Value format invalid”错误,这可能是由于在进行数据转换时出现的错误。尝试检查插入操作时时间戳的格式是否正确,并且需要确认插入的所有数据类型是否正确匹配。如果数据类型不匹配,那么在转换时就可能引发异常。

    另外,要确保在对缓存进行更新之前,已经将缓存中存在的所有数据清除,否则可能会出现数据不一致的情况。可以尝试重启相关的服务或者清除缓存后再进行操作。如果问题仍然存在,需要进一步检查代码实现以及相关数据库配置等方面的问题。

    2023-06-15 11:32:57
    赞同 展开评论 打赏
  • 上一次的retl_buffer的binlog一直被堵着,必须得跳过binlog才行

    原回答者GitHub用户agapple

    2023-06-14 22:05:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载