V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
swordwinter
V2EX  ›  科技

mysql 同步数据到 elasticsearch 有什么好的方案?

  •  
  •   swordwinter · Jul 16, 2018 · 3748 views
    This topic created in 2842 days ago, the information mentioned may be changed or developed.

    现在基于 ES 做搜索,使用canal同步 mysql 的数据。

    目前的做法是在 canal client 里处理 mysql 和 ES 的数据映射。有两个缺点:

    1. 与业务逻辑耦合重,映射代码里重复业务逻辑
    2. 工作量多,搜索需求变更 /业务方逻辑有变化时,需要调整对应的映射代码

    网上找了一圈,基本都在说用 binlog 同步这个点,没有涉及到具体映射这层的处理。有人知道什么更好的方案或者点子吗?

    6 replies    2018-07-18 14:04:28 +08:00
    ming2050
        1
    ming2050  
       Jul 16, 2018
    binlog(row)->maxwell->kafka->logstash->elasticsearch
    swordwinter
        2
    swordwinter  
    OP
       Jul 16, 2018
    @mringg 我去看看 maxwell 和 logstash 先。我的一个问题点就是带有业务逻辑的映射,是在 logstash 里处理吗?
    ming2050
        3
    ming2050  
       Jul 16, 2018
    @swordwinter 方便举个栗子么?
    mmdsun
        4
    mmdsun  
       Jul 16, 2018 via Android
    请问 MongoDB3.0 到 elasticseaech 1.7 有没有什么好的方案。今天折腾了一下午,发现 MongoDB import 命令导入 json 数据丢数据
    swordwinter
        5
    swordwinter  
    OP
       Jul 18, 2018
    @mringg 比如,简单的情况: 商品的分类信息,要从分类表获取组装;复杂点的:商品是否参加某活动,通过活动规则计算后得出结果。不过我重新审视了下这个环节,业务层应该把这些需要计算得到的数据先落库,在同步到 ES 的环节无脑同步就好了。感谢!
    swordwinter
        6
    swordwinter  
    OP
       Jul 18, 2018
    @mmdsun mongo 的没有处理过诶,网上看到这个[mongolastic]( https://github.com/ozlerhakan/mongolastic)试试?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1406 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 17:10 · PVG 01:10 · LAX 10:10 · JFK 13:10
    ♥ Do have faith in what you're doing.