我有一个带有几个表的mysql数据库,我想将mysql数据迁移到ElasticSearch。通过批处理作业很容易将整个数据库迁移到ES。但是我应该如何从MySQL实时更新ES。即,如果在mysql中有更新操作,那么我应该在ES中执行相同的操作。我研究了mysql binLog,它可以反映mysql的任何更改。但是我必须将binLog解析为ES语法,我认为这确实很痛苦。谢谢!(与Solr相同)
有一个现有项目将您的binlog转换为并发送到Elasticsearch,您可以在以下位置进行检查:https : //github.com/siddontang/go-mysql- elasticsearch
另一个就是这个:https : //github.com/noplay/python-mysql- replication。
但是请注意,无论选择哪种方法,在索引Binlog之前先创建索引和映射都是一个好习惯。这使您可以更好地控制数据。
更新:
这是关于该主题的另一篇有趣的博客文章:如何使用Logstash使Elasticsearch与关系数据库保持同步