實時同步MySQL數據到ES

實時同步MySQL數據到ES

前情:經過查詢,網上大概有以下三種方式
  • 1)elasticsearch-jdbc,獨立的第三方工具(只支持es 二點幾的版本,不支持5.6.1及更高版本)
  • 2)logstash-jdbc,logstash官方插件
    • 安裝logstash
    • 安裝logstash-jdbc
    • https://gems.ruby-china.com
  • 3)go-mysql-elasticsearch第三方開源項目
    • 需要安裝go
    • 需要mysql開啓binlog
  • 4)mypipe,mysql binlog同步工具
    • 功能太少
  • 5)mysqlsmom-第三方項目
  • 因爲我所用的項目,生產環境比較複雜,牽扯多個公司,最終選擇了mysqlsmom,且操作很方便

mysqlsmom

1.安裝

pip install mysqlmom

  • 默認支持elasticsearch的2.4版本,也支持其他版本

2.創建配置文件

mom new 文件夾名/init_config.py -t init --force

  • 配置文件init_config.py也可以自己取其他名,運行時運行即可

3.編輯配置文件

  • 創建的初始配置文件,註釋都有標註好需要改哪些地方
  • 主要需要改的幾個地方
    • es數據庫配置
    • mysql數據庫配置
    • redis數據庫配置
    • 需要同步的表
    • sql同步語句
    • 同步到es的字段、index
    • 其他的按需修改

4. 同步

mom run -c ./文件夾名/init_config.py
同步腳本會一直運行,當有新增或修改的數據,會自動同步到es
也支持安裝時間同步數據(修改對應配置文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章