問題描述
前提:
項目采用Elasticsearch提供搜索服務,Mysql提供存儲服務,通過Logstash將Mysql中數據同步到Elasticsearch。
問題:
使用logstash-jdbc-input插件同步Mysql中的兩張表時,一張表的數據完整的存到了ES中,而另一張表沒有任何數據插入
原因分析
1、查詢語句錯誤,將語句放入命令行中查詢,查詢成功,排除
2、jdbc插件只支持一次查詢,經網上搜索資料,確認jdbc可以並發執行多次查詢
3、對比兩張表結構,對比過程中發現無數據插入的那張表中存在"type"字段,想到jdbc插件中有關鍵字“type”,用來命名索引下的類型,猜測是因為這個原因導致數據無法插入,經驗證,確實如此。
解決方案
修改表中“type”字段名為"category",重新執行查詢,成功。