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

2018 年 7 月 16 日
 swordwinter

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

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

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

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

3660 次点击
所在节点    科技
6 条回复
ming2050
2018 年 7 月 16 日
binlog(row)->maxwell->kafka->logstash->elasticsearch
swordwinter
2018 年 7 月 16 日
@mringg 我去看看 maxwell 和 logstash 先。我的一个问题点就是带有业务逻辑的映射,是在 logstash 里处理吗?
ming2050
2018 年 7 月 16 日
@swordwinter 方便举个栗子么?
mmdsun
2018 年 7 月 16 日
请问 MongoDB3.0 到 elasticseaech 1.7 有没有什么好的方案。今天折腾了一下午,发现 MongoDB import 命令导入 json 数据丢数据
swordwinter
2018 年 7 月 18 日
@mringg 比如,简单的情况: 商品的分类信息,要从分类表获取组装;复杂点的:商品是否参加某活动,通过活动规则计算后得出结果。不过我重新审视了下这个环节,业务层应该把这些需要计算得到的数据先落库,在同步到 ES 的环节无脑同步就好了。感谢!
swordwinter
2018 年 7 月 18 日
@mmdsun mongo 的没有处理过诶,网上看到这个[mongolastic]( https://github.com/ozlerhakan/mongolastic)试试?

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

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

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

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

© 2021 V2EX