Kibana|透過 API 更新 Elasticsearch

瀏覽人次: 1299
2021-07-15 更新

Kibana logo

在 ELK 搭建的過程中,我們除了透過 Kibana 檢視 Elasticsearch 資料 (以下簡稱 ES),常常也會需要藉由 Kibana 的 API 對 ES 進行資料更新,不過與正規化資料庫小小不一樣的地方在於,新增同樣的 ID 資料並不會觸發 Exception,而是以覆蓋的方式進行。

開發人員頁面

Kibana dev tool

Kibana dev tool

新增、更新

假設要新增資料在 superhero 這個 index 中,所以:

POST /superhero/_doc/ {   "name": "batman"}

上面的例子 ES 會自動幫資料建立 ID,但我們也能自已控制 ID,所以:

POST /superhero/_doc/1 {   "name": "batman"}

自己控制 ID 要注意的是,同樣的 ID 重複新增並不會觸發錯誤,而是覆蓋。

假設 ID=1,接著更新一下資料,所以:

PUT /superhero/_doc/1 {   "name": "superman"}

接著查詢一下操作結果:

GET /superhero/_search 
{   "_index" : "test",   "_type" : "_doc",   "_id" : "1",   "_score" : 1.0,   "_source" : {     "name" : "superman"   }}

CreateOrUpdate

ES 也有支援 CreateOrUpdate 的操作方式

在 body 中多提供一個欄位讓 ES 識別:doc_as_upsert: true

POST superhero/_update/1 {   "doc": {     "career": "darknight"   },   "doc_as_upsert": true}

有任何問題,或是想看新主題? 聯絡我們

快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。