duckula3/run/dump

发布 : 2020-12-21 浏览 :

全量任务

  我们有了binlog监听后,实现了增量部分,但数据的初始化运行怎么来做呢?当然,我们可以全表修改update字段,人工产生全量的binlog数据,但是在这之前需要考虑这么几个情况,我们便mysql同步es的方案来说。首先,这次update会不会对 生产环境产生影响,线上系统肯定不会允许大表这么干,其次,如果中间有kafka消息,kafka默认存储7天数据,用它来存大表的全表数据,一不小心就磁盘爆了。还有种情况就是在有kafka的情况下,其中一个用户由于某些原因需要重新消费某段时间的数据,最省事的方案就是在数据库把这段时间的数据做一次update,产生binlog到kafka,那问题来了,其它用户不管愿不愿意,都会再次接收这批补的数据。纯粹浪费资源。再说一种情况,如果es需添加一个字段,这个字段也在数据库存在的,但之前一直没用到就没有放es索引,这时候如何在es里被这个字段呢?而且这种情况经常发生呢?

  上面提及的很多情况都不是binlog能解决的,所以我们需要有一个全量任务支持,那么这个执行器就非常有必要了。它也支持sql过滤,也就是说我们可以同步任何范围的数据,不只是做全量。

  有了增量和全量,这才是一整套完整的数据同步解决方案。

主界面

  入口:运行管理->全量任务

image-20201222130637532

支持“任务名”条件查询。这里与binlog监听任务不同的是。它是一个运行完就退出并释放资源的任务,所以在k8s布署环境里,它是一个job,在执行完后它的状态为:suceeded, 在docker/host里它会在任务执行完后退出虚拟机。因为它是一次性任务。

下面是它的编辑界面:

image-20201222140228010

其中所有的配置项都是如上图所示的下拉列表,让用户自行选择配置项,这些配置项都是“配置管理”模块的相关配置信息。

字段说明

  • 监听任务名:用于标识这个发布环境的,需要能一看就懂的监听任务
  • 版本:系统配置->版本管理 的配置项,用于全量任务的程序版本
  • 监听实例:系统配置->实例管理 的配置项,配置监听任务会监听哪个mysql实例
  • 布署环境:系统配置->布署管理 的配置项,用于配置监听任务会在哪个环境进行运行。
  • 目的中间件:系统配置->存储中间件管理 配置项,用于配置任务会把数据推送到哪个存储中间件
  • 过滤SQL:用于过滤全量数据,当我们只需补某一段时间的数据时可以加上此SQL过滤。
  • 编辑规则 :见。。。。
本文作者 : andy.zhou
原文链接 : https://rjzjh.gitee.io/2020/12/21/duckula3/duckula3-run-dump/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹