使用logstash將mysql中數(shù)據(jù)更新到elasticsearch中

1.安裝與elasticsearch相同版本號的logstash

在logstash的bin目錄下
? 打開控制臺 輸入? ?logstash -e "input { stdin { } } output { stdout { } }"

注意:雙引號不能改成單引號否則可能會報

ERROR: Unknown command '{'


錯誤

返回我們輸入的結(jié)果則證明安裝成功

2.配置數(shù)據(jù)庫同步的模板

在logstash建立mysqletc文件夾在文件夾內(nèi)建一個配置文件例如mysql.conf內(nèi)容如下

input {

? jdbc {

? # mysql jdbc connection string to our backup databse

? jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/tensquare_article?characterEncoding=UTF8"

? # the user we wish to excute our statement as

? jdbc_user => "root"

? jdbc_password => "123456"

? # the path to our downloaded jdbc driver?

? jdbc_driver_library => "D:\tensquare\logstash-6.5.1\logstash-6.5.1\mysqletc\mysql-connector-java-5.1.46.jar"

? # the name of the driver class for mysql

? jdbc_driver_class => "com.mysql.jdbc.Driver"

? jdbc_paging_enabled => "true"

? jdbc_page_size => "20"

? #以下對應(yīng)著要執(zhí)行的sql的絕對路徑。

? #statement_filepath => ""

? statement => "SELECT id,title,content,state FROM tb_article"

? #定時字段 各字段含義(由左至右)分、時、天、月、年,全部為*默認含義為每分鐘都更新(測試結(jié)果,不同的話請留言指出)

? ? ? schedule => "* * * * *"

? }

}

output {

? elasticsearch {

? #ESIP地址與端口

? hosts => "127.0.0.1:9200"

? #ES索引名稱(自己定義的)

? index => "tensquare_article"

? #自增ID編號

? document_id => "%{id}"

? document_type => "article"

? }

? stdout {

? ? ? #以JSON格式輸出

? ? ? codec => json_lines

? }

}

然后將mysql數(shù)據(jù)庫驅(qū)動放入此文件夾內(nèi)

3.運行l(wèi)ogstash

打開cmd進入logstash/bin目錄下 logstash -f 配置文件的相對路徑例如:

logstash -f ../mysqletc/mysql.conf


mysql里先插入兩條試驗數(shù)據(jù)

一分鐘后看到控制臺上打印出sql語句


elasticsearch-head成功顯示出插入的數(shù)據(jù)

至此,數(shù)據(jù)同步成功。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容