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

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM