Elasticsearch mysql 增量同步 三表聯合 腳本


從上方插件官網中下載適合的dist包,然后解壓。進入bin目錄,可以看到一堆sh腳本。在bin目錄下創建一個test.sh:

bin=/home/csonezp/Dev/elasticsearch-jdbc-2.3.1.0/bin
lib=/home/csonezp/Dev/elasticsearch-jdbc-2.3.1.0/lib
echo '{
"type" : "jdbc",
"statefile" : "statefile.json",
"jdbc": {
"url" : "jdbc:mysql://myaddr",
"user" : "myuser",
"password" : "mypwd",
"type" : "mytype",
"index": "myindex",
"schedule" : "0 * * * * ?",
"metrics" : {"enabled" : true
},
"sql" : [{ "statement" : "select * from gd_actor_info where update_time > ?", "parameter" : [ "$metrics.lastexecutionstart" ]}
]
}
}' | java \
-cp "${lib}/*" \
-Dlog4j.configurationFile=${bin}/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter

schedule現在設置成每分鍾都執行一次,是為了方便觀察行為。statefile這一句是一定要加的。$metrics.lastexecutionstart就是這個腳本的關鍵所在了,這個指的是上一次腳本執行的時間,可以通過比較這個時間和數據庫里的字段來判斷是否要更新。

Elasticsearch mysql 增量同步 三表聯合 腳本

上面簡略的說了一下es同步數據腳本的大致情況,但是實際情況里肯定不會像上一篇里面的腳本那么簡單。比如目前我就有三張表,兩張實體表,一張關聯表。大致實現如下:

bin目錄建立一個statefile.json文件:

{
"type" : "jdbc",
"statefile" : "statefile.json",
"jdbc": {
"url" : "jdbc:mysql://",
"user" : "",
"password" : "",
"type" : "actor",
"index": "test",
"schedule" : "0 * * * * ?",
"metrics" : { 
"lastexecutionstart" : "0",
"lastexecutionend" : "0",
"counter" : "1" 
}, 
"sql" : [{ "statement" : "select a.actor_id as _id ,a.*,GROUP_CONCAT(b.tag_name ) as tag_name from ( ( gd_actor_info as a left join gd_actor_tag as ab on a.actor_id = ab.actor_id ) left join gd_tag_actor as b on ab.tag_id = b.tag_id) where a.update_time >? or ab.update_time > ? group by a.actor_id ", "parameter" : [ "$metrics.lastexecutionstart" ,"$metrics.lastexecutionstart" ]}
]
}
}

主要是lastexecutionstart設置為0,為了讓第一次執行能進行一次全量備份。

其實sh腳本信息也就都在上面了,再寫一個就好了

ElasticSearch 最新版本 2.20 發布下載了 http://www.linuxidc.com/Linux/2016-02/128166.htm

Linux上安裝部署ElasticSearch全程記錄 http://www.codesec.net/Linux/2015-09/123241.htm

Elasticsearch安裝使用教程 http://www.codesec.net/Linux/2015-02/113615.htm

ElasticSearch 配置文件譯文解析 http://www.codesec.net/Linux/2015-02/114244.htm

ElasticSearch集群搭建實例 http://www.codesec.net/Linux/2015-02/114243.htm

分布式搜索ElasticSearch單機與服務器環境搭建 http://www.codesec.net/Linux/2012-05/60787.htm

ElasticSearch的工作機制 http://www.codesec.net/Linux/2014-11/109922.htm

Elasticsearch的安裝,運行和基本配置 http://www.codesec.net/Linux/2016-07/2881064151.htm

使用Elasticsearch + Logstash + Kibana搭建日志集中分析平台實踐 http://www.codesec.net/Linux/2015-12/126587.htm

Ubuntu 14.04搭建ELK日志分析系統(Elasticsearch+Logstash+Kibana) http://www.codesec.net/Linux/2016-06/132618.htm

Elasticsearch1.7升級到2.3實踐總結 http://www.codesec.net/Linux/2016-11/137282.htm


免責聲明!

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



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