如何使用極限網關實現 Elasticsearch 集群遷移至 Easysearch
之前有博客介紹過通過 Reindex 的方法將 Elasticsearch 的數據遷移到 Easysearch 集群,今天再介紹一個方法,通過 極限網關(INFINI Gateway) 來進行數據遷移。
測試環境
| 軟件 | 版本 |
|---|---|
| Easysearch | 1.12.0 |
| Elasticsearch | 7.17.29 |
| INFINI Gateway | 1.29.2 |
遷移步驟
- 選定要遷移的索引
- 在目標集群建立索引的 mapping 和 setting
- 準備 INFINI Gateway 遷移配置
- 運行 INFINI Gateway 進行數據遷移
遷移實戰
- 選定要遷移的索引
在 Elasticsearch 集群中選擇目標索引:infinilabs 和 test1,沒錯,我們一次可以遷移多個。

- 在 Easysearch 集群使用源索引的 setting 和 mapping 建立目標索引。(略)
- INFINI Gateway 遷移配置準備
去 github 下載配置,修改下面的連接集群的部分
1 env:
2 LR_GATEWAY_API_HOST: 127.0.0.1:2900
3 SRC_ELASTICSEARCH_ENDPOINT: http://127.0.0.1:9200
4 DST_ELASTICSEARCH_ENDPOINT: http://127.0.0.1:9201
5 path.data: data
6 path.logs: log
7 progress_bar.enabled: true
8 configs.auto_reload: true
9
10 api:
11 enabled: true
12 network:
13 binding: $[[env.LR_GATEWAY_API_HOST]]
14
15 elasticsearch:
16 - name: source
17 enabled: true
18 endpoint: $[[env.SRC_ELASTICSEARCH_ENDPOINT]]
19 basic_auth:
20 username: elastic
21 password: goodgoodstudy
22
23 - name: target
24 enabled: true
25 endpoint: $[[env.DST_ELASTICSEARCH_ENDPOINT]]
26 basic_auth:
27 username: admin
28 password: 14da41c79ad2d744b90c
pipeline 部分修改要遷移的索引名稱,我們遷移 infinilabs 和 test1 兩個索引。
31 pipeline:
32 - name: source_scroll
33 auto_start: true
34 keep_running: false
35 processor:
36 - es_scroll:
37 slice_size: 1
38 batch_size: 5000
39 indices: "infinilabs,test1"
40 elasticsearch: source
41 output_queue: source_index_dump
42 partition_size: 1
43 scroll_time: "5m"
- 遷移數據
./gateway-mac-arm64
#如果你保存的配置文件名稱不叫 gateway.yml,則需要加參數 -config 文件名

數據導入完成后,網關 ctrl+c 退出。

至此,數據遷移就完成了。下一篇我們來介紹 INFINI Gateway 的數據比對功能。
關于極限網關(INFINI Gateway)

INFINI Gateway 是一個開源的面向搜索場景的高性能數據網關,所有請求都經過網關處理后再轉發到后端的搜索業務集群。基于 INFINI Gateway,可以實現索引級別的限速限流、常見查詢的緩存加速、查詢請求的審計、查詢結果的動態修改等等。
官網文檔:https://docs.infinilabs.com/gateway
開源地址:https://github.com/infinilabs/gateway
浙公網安備 33010602011771號