使用Reindex遷移集群
更新時間 2025-07-16 17:57:46
最近更新時間: 2025-07-16 17:57:46
分享文章
本文為您介紹使用Reindex方式遷移集群的適用場景和使用方法。
通過搜索引擎內部支持的Reindex指令進行數據遷移,也是一種常見的云搜索數據遷移場景。
Reindex方式適用場景
源云搜索實例和目標搜索實例網絡互通。
無需引入額外外部工具,僅僅依靠API即可實現。
對遷移速度沒有過高要求。
可以按條件篩選進行數據遷移,查詢篩選語句、painless腳本全支持。
適配性
Elasticsearch版本間,除了Elasticsearch8.X向Elasticsearch7.X遷移,其余均支持。
Elasticsearch數據往OpenSearch2.9.版本遷移,全部支持。
| 待遷移集群版本 | Elasticsearch7.10.2 | OpenSearch2.9.0 |
|---|---|---|
| Elasticsearch6.x | √ | √ |
| Elasticsearch7.x | √ | √ |
| Elasticsearch8.x | × | √ |
示例說明
我們以數據從Elasticsearch7.10.2往OpenSearch2.9.0遷移為例,將geonames索引遷移。
在配置管理頁面配置Reindex索引遷移的遠程訪問地址白名單,具體可參考修改配置文件默認參數,改動如下:
reindex.remote.whitelist: ["IP_source:9200"]在目標實例創建index(如果沒有額外的分片和mapping的設置,可以跳過)。
在目標實例上進行Reindex操作:
POST /_reindex?wait_for_completion=false
{
"source": {
"remote": {
"host": "//IP_source:9200",
"username": "{username}",
"password": "{password}"
},
"index": "geonames",
"size": 10000
},
"dest": {
"index": "geonames"
}
}Reindex性能調優
增加batch_size:默認1000條為一個batch,一般一個batch在5M-15M數據時,性能比較好。您可根據文檔特性,合理修改batch_size。
底層調用scroll:slices大小的設置可以手動指定,或者設置slices為auto,auto的含義是:針對單索引,slices大小=分片數;針對多索引,slices=分片的最小值。
可以先設置replica為0,后續再修改setting。
大量寫入情況下,先禁止refresh。設置refresh{ "refresh_interval": -1 },遷移完成后,再打開。