Elasticserch與Mysql實現數據同步

目錄

引言

最近在做Mysql同步數據到ES中實現快速搜索,上網尋找了一些,主要有銘毅天下的logstash-input-jdbc實現mysql 與elasticsearch實時同步深入詳解
講述了ES通過Logstash的logstash-input-jdbc插件實現同步數據到ES中,實測在Logstash1.x中可行,由於在Logstash5.x中更換了配置,故此記錄ES5.5與Logstash5.5實現數據同步。

1安裝Logstash與logstash-input-jdbc插件

1.1安裝Logstash5.5

Logstash5.5下載
Linux直接下載TAR壓縮包,解壓至安裝目錄,博主至/opt下

1.2安裝logstash-input-jdbc插件

具體安裝過程見 利用logstash的logstash-input-jdbc插件實現mysql增量導入ES的介紹
在更改到淘寶源後,因爲Logstash5.5的Plugin安裝不同於Logstash1.x,這裏是Logstash5.5的安裝

cd /opt/logstash-5.5.1/bin/
./logstash-plugin install logstash-input-jdbc

2實現Mysql數據到ES同步

2.1Mysql數據準備

數據庫名:course
表名:live_room
表中有如下數據:
這裏寫圖片描述

2.2編寫sync.conf

#sync.conf如下
input {
  stdin {
  }

  jdbc {
  # mysql jdbc connection string to databse 
  jdbc_connection_string => "jdbc:mysql://localhost:3306/course?useSSL=false"
  # the user we wish to excute our statement as
  jdbc_user => "you use name"
  jdbc_password => "you passwd"

  record_last_run => "true"
  use_column_value => "true"
  tracking_column => "id"
  last_run_metadata_path => "/home/test/info"
  clean_run => "false"

  # the path to you downloaded jdbc driver
  jdbc_driver_library => "/home/test/tools/mysql-connector-java-5.1.43-bin.jar"
  # the name of the driver class for mysql
  jdbc_driver_class => "com.mysql.jdbc.Driver"
 # jdbc_paging_enabled => "true"
  jdbc_page_size => "500"
  statement => "SELECT * from live_room"
#定時字段 各字段含義(由左至右)分、時、天、月、年,全部爲*默認含義爲每分鐘都更新
 # schedule => "* * * * *"
#設定ES索引類型
  type => "live_room"
  }

}

output {

  elasticsearch {
#ESIP地址與端口
  hosts => "localhost:9200"
#ES索引名稱(自己定義的)
  index => "course"
  #document_type => "live_room"
#自增ID編號
  document_id => "%{id}"
  }

}

備註:
jdbc_connection_string => “填寫自己的數據庫地址”
record_last_run => “true”是否在last_run_metadata_path中保存狀態
use_column_value => “true”使用增量列值而不是時間戳
tracking_column => “id”如果跟蹤列值而不是時間戳,則要跟蹤其值的列
last_run_metadata_path => “/home/test/info”上次運行時間的文件路徑
clean_run => “false”是否應保留以前的運行狀態
jdbc_driver_library => “/home/test/tools/mysql-connector-java-5.1.43-bin.jar”
mysql-connector-java-5.1.43-bin.jar自行下載放到目錄下。
jdbc_page_size => “500”JDBC頁面大小

將sync.conf放置到你需要的目錄下
進入logstash5.5的目錄

cd /opt/logstash-5.5.1/bin/
./logstash -f 放置sync.conf的目錄

2.3測試

這裏寫圖片描述
如圖,可見數據已經傳入ES。

3結語

本人初學ES,記錄過程給像我一樣學習的人,也方便查詢,若過程有誤,歡迎指正。

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