求 MySQL 增量更新和维护汇总表解决方案

2018-07-27 09:18:38 +08:00
 jiezhi
我这边负责数据处理,需要从业务库里拉取数据进行分析。一方面需要定时做个汇总表,这样一些需要计算的过程可以提前做好了;另一方面想把业务端的数据增量更新到我这边的数据库里。

本来我的打算是,前者用事件,后者用触发器的。但同时说最好不要把这些逻辑放到数据库来做,影响效率。

目前了解到首富家有个 canal 项目,基于解析 binlog 的。

所以针对这两个问题,V 友现在有没有什么其他好的解决方案?不吝赐教。
4075 次点击
所在节点    MySQL
8 条回复
lihongjie0209
2018-07-27 09:39:02 +08:00
手动拉取的话可以记录一个最后拉取的 ID, 每次拉取都从这个 ID 开始
jiezhi
2018-07-27 09:42:58 +08:00
@lihongjie0209 #1 这只能获取到新增的数据,拿不到修改和删除的数据。即使加上了 update_time,也拿不到删除的数据。
zhouquan03
2018-07-27 09:45:08 +08:00
我们也遇到同样的问题。采用数据+版本号方式,数据逻辑删除就行,删除操作就变更为 update,加上定期归档解决问题。
lihongjie0209
2018-07-27 09:48:08 +08:00
@jiezhi #2 是的, 如果需要更新和删除数据的事件,一种办法就是业务方改代码, 不过这种一般不可能. 那么剩下的就是你所说的 binlog 了
lihongjie0209
2018-07-27 09:48:46 +08:00
@zhouquan03 #3 这就说我所说的需要业务方改代码
ccl945
2018-07-27 11:01:22 +08:00
kettle 了解一下
owenliang
2018-07-27 11:51:50 +08:00
让业务主动把变化同步到队列,你来消费。

少用什么 binlog tailer,都是半吊子项目,坑死你没商量。
windfarer
2018-07-27 14:05:41 +08:00
介绍几个半吊子项目给你踩踩坑,www https://farer.org/2018/07/27/change-data-capture/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/474558

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX