動態

詳情 返回 返回

Easysearch 可搜索快照功能,看這篇就夠了 - 動態 詳情

可搜索快照功能改變了我們對備份數據的查詢方式。以往要查詢備份數據時,要先找到備份數據所在的快照,然後在一個合適的環境中恢復快照,最後再發起請求查詢數據。這個處理路徑很長,而且很消耗時間。可搜索快照功能將大大簡化該處理路徑,節約時間。

角色設置

相信你對節點角色的概念已經有所熟悉。要啓用可搜索快照功能,Easysearch 集羣中必須至少有一個節點擁有 search 角色。參考設置如下。

node.roles: ["search"]
node.search.cache.size: 500mb
  • node.roles: 指定節點角色,只有 search 角色的節點才能去搜索快照中的數據。
  • node.search.cache.size: 執行快照搜索時,數據緩存大小。

混合角色設置,參考如下。

node.roles: ["master","data","search","ingest"]
node.search.cache.size: 500mb

創建快照

可搜索快照功能使用普通快照作為基礎,創建快照命令不變。比如我創建且備份個 infini 索引。

# 創建 infini 索引
POST infini/_doc
{
  "test":"Searchable snapshots"
}

# 創建快照備份 infini 索引
PUT _snapshot/my-fs-repository/1
{
  "indices": "infini",
  "include_global_state": false
}

創建快照索引

可搜索快照功能的核心是搜索快照中的索引,這一步是通過快照索引實現的。為了和集羣中的普通索引區別開來,我們將實際存儲在快照中的索引稱為快照索引。通過使用 Easysearch 的 \_restore API 並指定 remote_snapshot 存儲類型來創建快照索引。

創建快照索引時,注意名稱不能與當前索引名稱重複。通常我們備份完索引後,可刪除索引釋放節點磁盤空間,創建快照索引時默認使用原來的名稱。

# 刪除 infini 索引釋放磁盤空間
DELETE infini

# 創建快照索引,使用原索引名稱
POST /_snapshot/my-fs-repository/1/_restore
{
  "indices": "infini",
  "include_global_state": false,
  "include_aliases": false,
  "storage_type": "remote_snapshot"
}

創建快照索引的命令和還原快照的命令非常相似,關鍵在於 storage_type 參數指定 remote_snapshot 存儲類型。

如果要將快照中的全部索引都創建快照索引,可省略 indices 參數。

如果想在創建快照索引時指定不同的名字,參考下面的命令。

POST /_snapshot/my-fs-repository/1/_restore
{
  "indices": "infini",
  "include_global_state": false,
  "include_aliases": false,
  "storage_type": "remote_snapshot",
  "rename_pattern": "(infini)",
  "rename_replacement": "snapshot-$1"
}
  • rename_pattern: 使用此選項指定索引匹配的正則表達式。使用捕獲組重用索引名稱的部分。
  • rename_replacement: 使用 $0 包括整個匹配索引名稱,使用 $1 包括第一個捕獲組的內容,等等。

上述命令創建出來的快照索引名稱是 snapshot-infini 。

經過上面一系列的操作,我已經擁有了兩個快照索引。

搜索快照索引

我們通過搜索快照索引達到搜索快照數據的目的,令人開心的是搜索快照索引和搜索普通索引的語法完全一樣。😀

常見問題

如何區分普通索引和快照索引呢?

我們可以通過索引的 settings 信息區分,快照索引的 settings 信息中有 store.type: remote_snapshot 信息,普通索引沒有此信息。

快照索引能寫入數據嗎?

快照索引無法寫入,數據仍然保持在快照格式中存儲在存儲庫中,因此可搜索快照索引本質上是隻讀的。 任何嘗試寫入可搜索快照索引的操作都會導致錯誤。

快照索引不想要了怎麼辦?

直接刪除,需要時再執行創建快照索引流程。此外快照在創建快照索引後,無法直接刪除快照,要先刪除快照索引。

如果您對上述內容有任何疑問,歡迎與我討論。

user avatar xzqcsj 頭像 meirenlidexiaomaju 頭像 gxx01 頭像 liushuigs 頭像 niewj 頭像 xinliangcoder 頭像
點贊 6 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.