如果您需要將一個Elasticsearch(簡稱ES)叢集中的資料移轉到另一個ES叢集中時,可以通過reindex API重建索引來實現。本文介紹兩個均處於舊網路架構的叢集通過reindex方式進行叢集間資料移轉。
情境說明
以下為阿里雲ES間跨叢集reindex的應用情境說明,請結合業務資料情況及所處網路架構進行選擇。
2020年10月阿里雲ES進行了網路架構調整,新網路架構下的叢集跨叢集reindex需依賴Privatelink打通阿里雲ES叢集私網。您可以參見下表,依據您的業務情境選擇解決方案進行處理。
說明
2020年10月之前建立的ES叢集屬於舊網路架構,2020年10月及之後建立的ES叢集屬於新網路架構。
操作步驟
登入Elasticsearch控制台。
在左側導覽列,單擊Elasticsearch執行個體。
進入目標執行個體。
在頂部功能表列處,選擇資源群組和地區。
在Elasticsearch執行個體中單擊目標執行個體ID。
在本地叢集中,配置reindex白名單。
在左側導覽列,選擇。
在YML檔案配置右側,單擊修改配置。
在其他Configure配置文字框中,輸入reindex白名單。
reindex白名單的配置格式與執行個體的可用性區域數量有關,具體如下:
更多關於reindex白名單的配置說明,請參見配置reindex白名單。
選中該操作會重啟執行個體,請確認後操作,單擊確定。
確定後,Elasticsearch執行個體會重啟。重啟過程中,可在工作清單查看進度。重啟成功後,即可完成配置。
在本地叢集中,調用reindex API重建索引。
登入目標Elasticsearch執行個體的Kibana控制台,根據頁面提示進入Kibana首頁。
登入Kibana控制台的具體操作,請參見登入Kibana控制台。
說明
本文以Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際介面為準。
在左側導覽列,單擊Dev Tools。
在Console中,執行如下命令,重建索引。
POST _reindex
{
"source": {
"remote": {
"host": "http://es-cn-09k1rgid9000g****.elasticsearch.aliyuncs.com:9200",
"username": "elastic",
"password": "your_password"
},
"index": "product_info",
"query": {
"match": {
"productName": "理財"
}
}
},
"dest": {
"index": "dest"
}
}
類別 | 參數 | 說明 |
source | host | 遠程叢集的訪問地址,必須包含支援協議、網域名稱和連接埠資訊,例如https://otherhost:9200。host配置格式與執行個體的可用性區域數量有關,具體如下: |
username | 選擇性參數,如果您所請求的遠程Elasticsearch服務需要使用Basic Authentication,請在請求中一併提供此參數資訊。Elasticsearch執行個體的預設使用者名為elastic。 |
password | 使用者對應的密碼。Elasticsearch執行個體的elastic使用者的密碼在建立執行個體時設定,如果忘記可進行重設。重設密碼的注意事項及具體操作,請參見重設執行個體訪問密碼。 |
index | 遠程叢集中的源索引。 |
query | 通過查詢文法,指定待遷移的資料。詳細資料,請參見Reindex API。 |
dest | index | 本地叢集中的目標索引。 |
說明
從遠程叢集重建索引資料,不支援手動切片或自動切片。詳細資料,請參見手動切片和自動切片。
執行成功後,預期結果如下。
{
"took" : 51,
"timed_out" : false,
"total" : 2,
"updated" : 2,
"created" : 0,
"deleted" : 0,
"batches" : 1,
"version_conflicts" : 0,
"noops" : 0,
"retries" : {
"bulk" : 0,
"search" : 0
},
"throttled_millis" : 0,
"requests_per_second" : -1.0,
"throttled_until_millis" : 0,
"failures" : [ ]
}
查看遷移成功的資料。
預期結果如下:
單可用性區域執行個體
多可用性區域執行個體
總結
通過reindex API遷移資料時,單可用性區域的Elasticsearch執行個體和多可用性區域執行個體的配置方法大致相同,不同之處在於以下兩點。
可用性區域類型 | reindex白名單配置 | host參數配置 |
可用性區域類型 | reindex白名單配置 | host參數配置 |
單可用性區域 | Elasticsearch的網域名稱和連接埠 | https://Elasticsearch執行個體的網域名稱:9200
|
多可用性區域 | 執行個體中所有資料節點的IP地址和連接埠 | https://Elasticsearch執行個體中任意資料節點的IP地址:9200
|
更多資訊
在調用reindex API重建索引時,您還可以進行大量設定和逾時時間設定: