因爲數據庫中有type字段導致logstash同步到elasticsearch失敗的一次經歷

問題描述

最近在學習使用logstash工具同步數據到elasticsearch,然後遇到一個大坑,就是同時同步三個mysql的表的數據到elasticsearch中,然後死活有一個表的數據同步不過去,在kibana中怎麼刷新也刷新不出來。

原因分析探索

1、是否支持多個表同時導入,之前我試過兩個表一起導入的時候沒問題,然後將配置文件改爲僅有這不能導入的一個表,也是不行的。所以logstash是可以支持同時導入多表的。
2、linux環境問題。我在windows上搭建了同樣的環境,遇到的問題也一樣。這個原因排除
3、在網上搜索答案,看到有個文章說用logstash同步的數據表中存在type字段會出現問題。理由是es中有同樣的type字段來說明字段的類型。所以我改了下sql,將查詢語句中的type改成其他名字,重新試了下,成功了,果然是找個原因。

總結

elasticsearch的這個問題真的是太嚴重了,關鍵同步的時候也不報錯,輸出日誌上顯示的還是一次次的同步。我們的很多數據表中都有type這個字段,看來以後要同步表,一定要注意將查詢語句中的type改爲其他名字。elasticsearch應該不能用這種字段來做保留字段,應該像@timestamp這種字段一樣,在前面加上@或者下劃線作爲保留字段。不知道以後的版本會不會改

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