现在基于 ES 做搜索,使用canal同步 mysql 的数据。
目前的做法是在 canal client 里处理 mysql 和 ES 的数据映射。有两个缺点:
网上找了一圈,基本都在说用 binlog 同步这个点,没有涉及到具体映射这层的处理。有人知道什么更好的方案或者点子吗?
![]() | 1 ming2050 2018-07-16 14:24:35 +08:00 binlog(row)->maxwell->kafka->logstash->elasticsearch |
2 swordwinter OP @mringg 我去看看 maxwell 和 logstash 先。我的一个问题点就是带有业务逻辑的映射,是在 logstash 里处理吗? |
![]() | 3 ming2050 2018-07-16 19:05:34 +08:00 @swordwinter 方便举个栗子么? |
![]() | 4 mmdsun 2018-07-16 19:41:10 +08:00 via Android 请问 MongoDB3.0 到 elasticseaech 1.7 有没有什么好的方案。今天折腾了一下午,发现 MongoDB import 命令导入 json 数据丢数据 |
5 swordwinter OP @mringg 比如,简单的情况: 商品的分类信息,要从分类表获取组装;复杂点的:商品是否参加某活动,通过活动规则计算后得出结果。不过我重新审视了下这个环节,业务层应该把这些需要计算得到的数据先落库,在同步到 ES 的环节无脑同步就好了。感谢! |
6 swordwinter OP @mmdsun mongo 的没有处理过诶,网上看到这个[mongolastic]( https://github.com/ozlerhakan/mongolastic)试试? |