最好的辦法我有ES 2.2和安裝JDBC進口商爲Elasticsearch elasticsearch-jdbc-2.2.0.0
,並已能夠插入數據,但沒有與MySQL中的變化,即更新ES。 MySQL與ES同步。我如何進行同步?我一次執行了下面的shell腳本,數據正確插入,但調度程序工作正常。它不會每分鐘執行一次捕獲mysql(計劃表)中的任何更改。腳本中是否有錯誤?或任何可用的解決方法?什麼是從MySQL的數據同步到彈性搜索
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
bin=${DIR}/bin
lib=${DIR}/lib
echo $lib
echo $bin
echo '{
"type" : "jdbc",
"autocommit" : true,
"schedule" : "0 0-59 0-23 ? * *",
"jdbc" : {
"driver": "com.mysql.jdbc.Driver",
"url" : "jdbc:mysql://XXX:3306/blahblah",
"user" : "abc",
"password" : "xyz",
"sql" : "select * from schemes",
"elasticsearch" : {
"cluster" : "mycluster",
"host" : "localhost",
"port" : 9300
},
"max_bulk_actions" : 20000,
"max_concurrent_bulk_requests" : 10,
"index" : "movies",
"type":"scheme"
}
}
' | java -cp "${lib}/*" -Dlog4j.configurationFile=${bin}/log4j2.xml org.xbib.tools.Runner org.xbib.tools.JDBCImporter
你的活動記錄我會建議使用Logstash [JDBC-輸入(https://www.elastic.co/guide/en/logstash/current/plugins- inputs-jdbc.html)插件。 – Roopendra
謝謝roopendra,這很有用。我用你的建議。現有行上的更新工作正常。但我怎麼照顧刪除的行的MySQL中,這些記錄不得到從elasticsearch在conf文件的後續執行刪除。希望你明白了我的觀點。 – Mike