Elasticsearch与Mysql数据同步

 

  Elasticsearch就是专门用于搜索的,所以我们会将新增的数据放入Elasticsearch中用于搜索,就有这样的常见的场景,需要将Mysql中的数据同步到Elasticsearch中。

 

Mysql数据同步到ES类型

  Mysql数据同步到ES中分为两种,分别是全量同步增量同步全量同步表示第一次建立好ES索引之后,将Mysql中所有数据一次性导入到ES中。增量同步表示Mysql中产生新的数据,这些新的数据包括三种情况,就是新插入Mysql中的数据,更新老的数据,删除的数据,这些数据的变动与新增都要同步到ES中。

 

MysqlES的数据同步实现方式

  业界有一些开源方案,开源中间件来实现。

  1. 基于Mysql的binlog日志订阅:binlog日志是Mysql用来记录数据实时的变化。

   

        这里主要的是binlog同步组件,目前实现的有国内的阿里巴巴开发的canal。

       

         github地址:https://github.com/alibaba/canal

 

    2. 使用go-mysql-elasticsearch。

    

    go-mysql-elasticsearch是一款使用go语言开发的同步数据到ES的工具。

    项目github地址:https://github.com/siddontang/go-mysql-elasticsearch

    go-mysql-elasticsearch也是基于Mysql的binlog订阅,也可以使用使用mysqldump的方式。  

    目前还不支持ES6.x及以上的版本,也不支持mysql8.x版本,同时该项目目前还不够稳定,也在开发中。

 

   3. ES官方数据收集和同步组件logstash

 

 

 

 

 

  

 

posted @ 2020-06-26 00:30  songguojun  阅读(15534)  评论(0编辑  收藏  举报