我有一个mysql数据库,有几个表,我想把mysql数据迁移到ElasticSearch。通过一个批处理作业很容易把整个数据库迁移到ES。但是我应该如何从mysql实时更新ES。也就是说,如果在mysql中有更新操作,那么我应该在ES中做同样的操作。我研究了mysql binLog,它可以反映mysql的任何变化。但是我必须把binLog解析成ES语法,我认为这真的很痛苦。谢谢!(Solr的情况也是如此)
8oomwypt1#
有一个现有的项目,它采取你的binlog,转换它,并将其运送到Elasticsearch,你可以检查它在:https://github.com/siddontang/go-mysql-elasticsearch另一个可能是这样的:是的。然而,请注意,无论你选择哪一个,在为binlog建立索引之前预先创建索引和Map都是一个很好的做法,这样你就可以对数据进行更多的控制。
更新日期:
下面是另一个有趣的博客文章的主题:How to keep Elasticsearch synchronized with a relational database using Logstash
u7up0aaq2#
最好的开源解决方案是this,您可以将其作为命令行运行,并在命令中给予增量逻辑。通过本课程,您可以获得完整的想法。
mwg9r5ms3#
我想最好的选择是简单地使用Kafka连接插件debezium,并使用Mysql连接器作为源,使用Elastic Search接收器连接器
3条答案
按热度按时间8oomwypt1#
有一个现有的项目,它采取你的binlog,转换它,并将其运送到Elasticsearch,你可以检查它在:https://github.com/siddontang/go-mysql-elasticsearch
另一个可能是这样的:是的。
然而,请注意,无论你选择哪一个,在为binlog建立索引之前预先创建索引和Map都是一个很好的做法,这样你就可以对数据进行更多的控制。
更新日期:
下面是另一个有趣的博客文章的主题:How to keep Elasticsearch synchronized with a relational database using Logstash
u7up0aaq2#
最好的开源解决方案是this,您可以将其作为命令行运行,并在命令中给予增量逻辑。
通过本课程,您可以获得完整的想法。
mwg9r5ms3#
我想最好的选择是简单地使用Kafka连接插件debezium,并使用Mysql连接器作为源,使用Elastic Search接收器连接器