› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
jiezhi
V2EX  ›  MySQL

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

  •  
  •   jiezhi ·
    Jiezhi · Jul 27, 2018 · 4934 views
    This topic created in 2984 days ago, the information mentioned may be changed or developed.
    我这边负责数据处理,需要从业务库里拉取数据进行分析。一方面需要定时做个汇总表,这样一些需要计算的过程可以提前做好了;另一方面想把业务端的数据增量更新到我这边的数据库里。

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

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

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

    少用什么 binlog tailer,都是半吊子项目,坑死你没商量。
    windfarer
        8
    windfarer  
       Jul 27, 2018   ❤️ 1
    介绍几个半吊子项目给你踩踩坑,www https://farer.org/2018/07/27/change-data-capture/
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   818 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:10 · PVG 04:10 · LAX 13:10 · JFK 16:10
    ♥ Do have faith in what you're doing.