嘗試將結構化的json數據發送到es(elastic search)上,而後建立視圖,這樣就能以小時維度查看數據,直接使用post發送到es後,建立索引,結果提示 沒有date類型的字段(field)。通過一番搜索和請教同事同窗,最後嘗試以下方法解決:json
刪除原有的索引,而後在發送數據到ES前的時候先 發送以下請求(es 5.0版本):app
http://yourhost.com/yourindex/ 發送post 或者put請求,請求內容post
{ "mappings": { "你的type 好比log": { "properties": { "時間戳字段名稱 log_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" } } } } }
這樣能夠指定你的log_time 爲date類型 。spa
而後就能夠發送帶着這個log_time 的請求到 es中,而後在kibana中建立index索引,刷新索引便可看到相關field。(數字和字符串爲推斷類型) 3d
這個時候可自動刷新找到 datefield code
此時查看索引的類型,log_time 就是date類型:orm
而後便可建立對應的視圖,選擇x軸爲date histogram類型的fied log_timeblog
發送的完整的json請求示例:索引
{"vs_imp": 0, "vs_bid": 0, "mv_cost": 0.0, "mv_revenue": 0.0, "mv_bid": 0, "vs_cost": 0.0, "mv_imp": 0, "vs_revenue": 0.0, "vs_request": 14488636, "log_time": "2017-04-14 12:00:00", "mv_request": 960607}字符串
如上便解決 字符串時間致使x軸沒法顯示日期的問題。
其餘問題:
1, 數據發送後沒法使用put請求進行修改
解決辦法:發送數據的時候須要指定 index/type/:id (例如id爲年月日小時來作到指定id 之後用put更新 )
2, 提示Saved 「field」 parameter is now invalid. Please select a new field "
解決辦法:和發送的數據有關,檢查數據中是否缺乏關鍵字段 好比時間戳
3, kibana上的曲線時間比數據實際時間多8個小時(版本 5.3)
解決辦法:對發送的數據中的時間戳減去8個小時(GMT0),kibana會自動加8個小時。