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

2018-07-16 14:10:47 +08:00
 swordwinter

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

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

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

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

2949 次点击
所在节点   科技
6 条回复
mringg
2018-07-16 14:24:35 +08:00
binlog(row)->maxwell->kafka->logstash->elasticsearch
swordwinter
2018-07-16 14:35:50 +08:00
@mringg 我去看看 maxwell 和 logstash 先。我的一个问题点就是带有业务逻辑的映射,是在 logstash 里处理吗?
mringg
2018-07-16 19:05:34 +08:00
@swordwinter 方便举个栗子么?
mmdsun
2018-07-16 19:41:10 +08:00
请问 MongoDB3.0 到 elasticseaech 1.7 有没有什么好的方案。今天折腾了一下午,发现 MongoDB import 命令导入 json 数据丢数据
swordwinter
2018-07-18 14:02:14 +08:00
@mringg 比如,简单的情况: 商品的分类信息,要从分类表获取组装;复杂点的:商品是否参加某活动,通过活动规则计算后得出结果。不过我重新审视了下这个环节,业务层应该把这些需要计算得到的数据先落库,在同步到 ES 的环节无脑同步就好了。感谢!
swordwinter
2018-07-18 14:04:28 +08:00
@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