开发者社区> 问答> 正文

关于建临时表->灌数据->drop原表->改名为原表的动作

建临时表->灌数据->drop原表->改名为原表的动作,自己这边生产环境偶尔会挂起,查了下原因,应该是灌临时表时,想要获取临时表的meta信息的时候回查源库时,已经被改名为原表,导致临时表表名回查失败。

===============

看了下canal的解决方案,貌似可以用tsdb保留meta信息,想问下otter里现在支持用这个吗,tsdb是普通数据库吗,我看了下相关xml文件,好像需要配置专用的数据源,otter的配置界面里只找到开关,没看到相关数据源的配置,有什么办法解决吗

===============

PS:发现select节点和load节点都会有类似错误发生,如果是tsdb的话,select节点和load节点都有相应的tsdb来维护吗,还是只是select节点维护,load会通过其他方式问select要?

原提问者Github用户welyss

展开
收起
绿子直子 2023-06-16 15:17:13 56 0
2 条回答
写回答
取消 提交回答
  • 针对建临时表->灌数据->drop原表->改名为原表的动作,可以考虑以下几种方式避免临时表表名回查失败的问题:

    1. 使用数据仓库或者其他第三方工具来实现数据同步,避免手动建临时表和改名的操作。

    2. 在灌数据和drop原表之前,先确保临时表已经成功创建,并且已经切换到了正确的表名上。这种方法需要对数据同步流程进行严格的控制和管理,确保每一步操作都能够成功完成。

    3. 在灌数据的过程中,尽量避免回查源库的操作,而是直接在本地进行表结构和数据的查询和处理。这种方法需要对数据同步的性能和效率进行充分的优化和测试。

    关于使用 tsdb 来保留 meta 信息,Otter 的当前版本已经支持了该功能。具体来说,tsdb 是一种后端存储服务,主要用于存储和管理 Otter 的元数据信息。Otter 的选取数据源和输出端节点等都是支持 tsdb 的,您可以在 Otter 控制台的节点管理页面中进行相关配置。

    对于 select 节点和 load 节点的问题,Tsdb 只会在 select 节点中维护元数据信息,而在 load 节点中则不需要单独的 tsdb 来保存元数据。load 节点会通过 select 节点来获取需要加载的数据,并且在操作完成后会通知 select 节点更新元数据信息。

    2023-06-16 15:26:27
    赞同 展开评论 打赏
  • 主要是select节点来维护,otter支持canal开启tsdb

    原回答者Github用户agapple

    2023-06-16 15:25:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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