V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lihaotian
V2EX  ›  问与答

请教:如何将数据库内的统计后写入 clickhouse 之类的数据库?

  •  
  •   lihaotian · 2021-06-01 13:35:44 +08:00 · 988 次点击
    这是一个创建于 1052 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在自己想的结局办法有以下几个:

    1: 使用 Maxwell 或 Canal,然后由另一个程序计算出之后写入 clickhouse
    2: 在程序中埋点,然后再写入 rmq 或者 kafaka,再由另一个程序计算写入 clickhouse

    但是现在用的数据库是 pgsql,所以 1 用不了,
    如果用 pgsql 自带的 Listen/Notify 性能怎么样? 或者有其他什么好的解决方案?

    在程序中埋点太累了,基本不考虑;😂

    5 条回复    2021-06-03 07:53:47 +08:00
    troywinter
        1
    troywinter  
       2021-06-01 20:54:42 +08:00   ❤️ 1
    clickhouse 应该是直接支持消费 kafka 的,对于数据同步的问题,你需要 CDC(change data capture),可以用 pg 的逻辑复制 ,debezium 做的比较好,也是现在比较流行的方案。
    lihaotian
        2
    lihaotian  
    OP
       2021-06-01 21:18:24 +08:00 via iPhone
    @troywinter 从 pg -> debezium ->kafka->clickhouse

    中间是不是有一个数据处理的过程?
    undeflife
        3
    undeflife  
       2021-06-01 23:07:09 +08:00
    @lihaotian 如果你直接往 kafka 里写 json string 的话 可以不用。
    当然也可以用 schema registry 。clickhouse 对这个支持还算不错 (不用 union 以外的嵌套类型)。
    labulaka521
        4
    labulaka521  
       2021-06-02 09:55:29 +08:00 via iPhone
    我们目前是有一个程序定时去拉取 mysql 的数据 然后写入 clickhouse 基本都有一两分钟的延迟 愁死了
    lihaotian
        5
    lihaotian  
    OP
       2021-06-03 07:53:47 +08:00
    @labulaka521 为什么不用 Maxwell 或者 Canal?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1174 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:16 · PVG 02:16 · LAX 11:16 · JFK 14:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.