建临时表->灌数据->drop原表->改名为原表的动作,自己这边生产环境偶尔会挂起,查了下原因,应该是灌临时表时,想要获取临时表的meta信息的时候回查源库时,已经被改名为原表,导致临时表表名回查失败。
===============
看了下canal的解决方案,貌似可以用tsdb保留meta信息,想问下otter里现在支持用这个吗,tsdb是普通数据库吗,我看了下相关xml文件,好像需要配置专用的数据源,otter的配置界面里只找到开关,没看到相关数据源的配置,有什么办法解决吗
===============
PS:发现select节点和load节点都会有类似错误发生,如果是tsdb的话,select节点和load节点都有相应的tsdb来维护吗,还是只是select节点维护,load会通过其他方式问select要?
原提问者Github用户welyss
针对建临时表->灌数据->drop原表->改名为原表的动作,可以考虑以下几种方式避免临时表表名回查失败的问题:
使用数据仓库或者其他第三方工具来实现数据同步,避免手动建临时表和改名的操作。
在灌数据和drop原表之前,先确保临时表已经成功创建,并且已经切换到了正确的表名上。这种方法需要对数据同步流程进行严格的控制和管理,确保每一步操作都能够成功完成。
在灌数据的过程中,尽量避免回查源库的操作,而是直接在本地进行表结构和数据的查询和处理。这种方法需要对数据同步的性能和效率进行充分的优化和测试。
关于使用 tsdb 来保留 meta 信息,Otter 的当前版本已经支持了该功能。具体来说,tsdb 是一种后端存储服务,主要用于存储和管理 Otter 的元数据信息。Otter 的选取数据源和输出端节点等都是支持 tsdb 的,您可以在 Otter 控制台的节点管理页面中进行相关配置。
对于 select 节点和 load 节点的问题,Tsdb 只会在 select 节点中维护元数据信息,而在 load 节点中则不需要单独的 tsdb 来保存元数据。load 节点会通过 select 节点来获取需要加载的数据,并且在操作完成后会通知 select 节点更新元数据信息。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。