iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
Elastic Stack on Cloud

親愛的,我把ElasticSearch上雲了系列 第 16

Day 16 Use and Set DataStream

Day 16 Use and Set DataStream


前言

昨天我們講了DataStream的建立過程,以及實際操作。另外也透過輸入document,來驗證DataStream的流程。今天我們進一步來講解DataStream中,如何改變設定,以及使用和修改DataStream中的資料。

Reindex Data Stream

昨天提到DataStream是Append Only,若今天我們想要複製一份新的index,可以透過以下幾種指令。

POST /_reindex
{
  "source": {
    "index": "archive"
  },
  "dest": {
    "index": "my-data-stream",
    "op_type": "create"
  }
}

第一種是將archive的document,reindex到my-data-stream,而因為my-data-stream是一個data-stream,因此op_type只能create

另外就是若你希望將目前data stream的資料去進行其他利用,也可以把data stream中的指令reindex出來

POST /_reindex
{
  "source": {
    "index": "my-data-stream"
  },
  "dest": {
    "index": "archive"
  }
}

如此一來 my-data-stream的資料就會被reindex到archive這個index。

而剛剛講到,data stream本身是append only,但我們仍然可以透過query去進行更新以及刪除,具體操作如下

POST /my-data-stream/_update_by_query
{
  "query": {
    "match": {
      "user.id": "l7gk7f82"
    }
  },
  "script": {
    "source": "ctx._source.user.id = params.new_id",
    "params": {
      "new_id": "XgdX0NoX"
    }
  }
}

這個操作就能將my-data-stream中 match到user.id的這些document,將user.id改成新的new_id值

刪除也可以如此操作

POST /my-data-stream/_delete_by_query
{
  "query": {
    "match": {
      "user.id": "vlb44hny"
    }
  }
}

另外除了直接針對my-data-stream這樣的data stream去進行更新或刪除,你也可以找到它背後backup indices並進行刪除或更新的指令

透過_search? match回來的document,會註明他的backup indices是哪個,再針對這個index進行操作,就能刪除或更新資料了!


上一篇
Day 15 Create DataStream
下一篇
Day 17 Index Module
系列文
親愛的,我把ElasticSearch上雲了30

尚未有邦友留言

立即登入留言