V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
swordwinter
V2EX  ›  科技

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

  •  
  •   swordwinter · 2018-07-16 14:10:47 +08:00 · 3088 次点击
    这是一个创建于 2320 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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