Kibana|透過 API 更新 Elasticsearch

瀏覽人次: 1286
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 – 企業建置高速穩定的海量日誌分析平台✦

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