Topik ini menjelaskan cara menggunakan fitur reindex untuk memigrasikan data dari kluster Elasticsearch (ES) yang dikelola sendiri pada instance ECS ke instance ES Alibaba Cloud. Prosesnya mencakup pembuatan indeks dan migrasi data.
Informasi latar belakang
Migrasi data menggunakan reindex hanya didukung untuk instance zona tunggal. Jika Anda menggunakan instance multi-zona, gunakan salah satu solusi berikut untuk memigrasikan data dari kluster ES yang dikelola sendiri ke Alibaba Cloud:
Jika volume data sumber besar, gunakan metode snapshot OSS. Untuk informasi selengkapnya, lihat Tingkat Lanjut: Migrasi kluster ES yang dikelola sendiri ke ES Alibaba Cloud menggunakan OSS.
Untuk memfilter data sumber, gunakan solusi migrasi Logstash. Untuk informasi selengkapnya, lihat Migrasi data dari kluster Elasticsearch yang dikelola sendiri ke Alibaba Cloud menggunakan Logstash.
Prasyarat
Anda telah melakukan operasi berikut:
Buat instance Alibaba Cloud ES zona tunggal.
Untuk informasi selengkapnya, lihat Buat instance Alibaba Cloud Elasticsearch.
Persiapkan kluster ES yang dikelola sendiri dan data yang akan dimigrasikan.
Jika Anda belum memiliki kluster ES yang dikelola sendiri, Anda dapat menggunakan instance ECS Alibaba Cloud untuk membangunnya. Untuk informasi selengkapnya, lihat Instal dan jalankan Elasticsearch. Kluster ES yang dikelola sendiri harus memenuhi kondisi berikut:
Jenis jaringan instance ECS tempat kluster berada harus berupa virtual private cloud (VPC). Instance ECS yang terhubung menggunakan ClassicLink tidak didukung. Instance ECS harus berada dalam VPC yang sama dengan instance ES Alibaba Cloud.
Grup keamanan instance ECS tidak boleh membatasi akses dari alamat IP node di instance ES Alibaba Cloud. Anda dapat melihat alamat IP node di konsol Kibana. Port 9200 juga harus terbuka.
Kluster yang dikelola sendiri harus dapat terhubung ke instance ES Alibaba Cloud. Pada mesin tempat Anda menjalankan skrip, jalankan perintah
curl -XGET http://<host>:9200untuk memverifikasi koneksi.CatatanAnda dapat menjalankan skrip dalam topik ini pada mesin apa pun yang dapat mengakses port 9200 baik kluster ES yang dikelola sendiri maupun kluster ES Alibaba Cloud.
Batasan
Alibaba Cloud ES menyediakan dua mode penyebaran: arsitektur kontrol dasar (v2) dan arsitektur kontrol baru cloud-native (v3). Anda dapat memeriksa mode penyebaran di bagian Informasi Dasar instance.

Untuk kluster yang menggunakan arsitektur kontrol baru cloud-native (v3), Anda harus menggunakan PrivateLink untuk membuat koneksi privat ke kluster ES Alibaba Cloud demi operasi reindex antar kluster. Pilih solusi dari tabel berikut berdasarkan skenario bisnis Anda.
Skenario | Arsitektur jaringan kluster ES | Solusi |
Migrasi data antar kluster ES Alibaba Cloud | Kedua kluster ES menggunakan arsitektur kontrol dasar (v2). | Metode reindex: Reindex antar kluster ES Alibaba Cloud. |
Salah satu kluster ES menggunakan arsitektur kontrol baru cloud-native (v3). Catatan Kluster ES lainnya dapat menggunakan arsitektur kontrol baru cloud-native (v3) atau arsitektur kontrol dasar (v2). | ||
Migrasi data dari kluster ES yang dikelola sendiri pada instance ECS ke kluster ES Alibaba Cloud | Kluster ES Alibaba Cloud menggunakan arsitektur kontrol dasar (v2). | Metode reindex: Migrasi data dari kluster Elasticsearch yang dikelola sendiri ke Alibaba Cloud Elasticsearch menggunakan reindex. |
Kluster ES Alibaba Cloud menggunakan arsitektur kontrol baru cloud-native (v3). | Metode reindex: Migrasi data dari kluster Elasticsearch yang dikelola sendiri ke Alibaba Cloud dengan membuat koneksi privat ke instance. |
Perhatian
Pada Oktober 2020, Alibaba Cloud Elasticsearch menyesuaikan arsitektur jaringannya. Arsitektur yang digunakan sebelum penyesuaian ini disebut sebagai arsitektur jaringan lama, sedangkan yang digunakan setelahnya adalah arsitektur jaringan baru.Instance yang menggunakan arsitektur jaringan baru tidak mendukung operasi interoperabilitas, seperti reindex antar kluster, pencarian lintas klaster, atau replikasi antar kluster, dengan instance yang menggunakan arsitektur jaringan lama. Untuk mengaktifkan interoperabilitas, pastikan instance menggunakan arsitektur jaringan yang sama.Untuk wilayah Tiongkok (Zhangjiakou) dan wilayah di luar Tiongkok, waktu penyesuaian arsitektur jaringan tidak tetap. Hubungi dukungan teknis Alibaba Cloud Elasticsearch untuk memverifikasi interoperabilitas jaringan.
Instance ES Alibaba Cloud yang menggunakan arsitektur kontrol baru cloud-native (v3) ditempatkan di VPC yang dimiliki oleh akun layanan Alibaba Cloud dan tidak dapat mengakses sumber daya di lingkungan jaringan lain. Sebaliknya, instance yang menggunakan arsitektur kontrol dasar (v2) ditempatkan di VPC Anda, sehingga akses jaringannya tidak terpengaruh.
Untuk memastikan konsistensi data, kami menyarankan Anda menghentikan operasi penulisan dan pembaruan data di kluster ES yang dikelola sendiri sebelum migrasi. Hal ini memastikan bahwa operasi baca tidak terganggu. Setelah migrasi selesai, Anda dapat mengalihkan operasi baca dan tulis ke kluster ES Alibaba Cloud. Jika Anda tidak dapat menghentikan operasi tulis, kami menyarankan Anda menggunakan skrip untuk mengatur tugas loop guna mengurangi waktu henti layanan tulis. Untuk informasi selengkapnya, lihat bagian Migrasi volume data besar (tanpa penghapusan dan dengan bidang waktu pembaruan) dalam Langkah 4: Migrasi data.
Saat Anda menggunakan nama domain untuk mengakses kluster ES yang dikelola sendiri atau kluster ES Alibaba Cloud, Anda tidak dapat menggunakan URL yang mencakup path, seperti
http://host:port/path.
Prosedur
Langkah 1: Dapatkan nama domain titik akhir (opsional)
Jika instance ES Alibaba Cloud Anda menggunakan arsitektur kontrol baru cloud-native (v3), Anda harus menggunakan PrivateLink untuk menghubungkan VPC kluster ES yang dikelola sendiri pada instance ECS ke VPC akun layanan Alibaba Cloud. Kemudian, Anda harus mendapatkan nama domain titik akhir untuk digunakan dalam konfigurasi selanjutnya. Untuk informasi selengkapnya, lihat Konfigurasi koneksi privat untuk instance.
Langkah 2: Buat indeks tujuan
Sebelum memulai, buat indeks di kluster ES Alibaba Cloud. Indeks baru harus menggunakan konfigurasi yang sama dengan indeks yang ingin Anda migrasikan dari kluster ES yang dikelola sendiri. Atau, Anda dapat mengaktifkan fitur pembuatan indeks otomatis untuk kluster ES Alibaba Cloud, tetapi metode ini tidak disarankan.
Contoh berikut menunjukkan skrip Python 2 yang dapat Anda gunakan untuk membuat indeks secara batch di kluster ES Alibaba Cloud. Indeks ini harus memiliki konfigurasi yang sama dengan indeks yang ingin Anda migrasikan dari kluster ES yang dikelola sendiri. Secara default, jumlah replika untuk indeks baru diatur ke 0.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# Nama file: indiceCreate.py
import sys
import base64
import time
import httplib
import json
## Host kluster Elasticsearch yang dikelola sendiri.
oldClusterHost = "old-cluster.com"
## Nama pengguna untuk kluster Elasticsearch yang dikelola sendiri. Bisa kosong.
oldClusterUserName = "old-username"
## Kata sandi untuk kluster Elasticsearch yang dikelola sendiri. Bisa kosong.
oldClusterPassword = "old-password"
## Host kluster Elasticsearch Alibaba Cloud. Anda dapat memperolehnya dari halaman Informasi Dasar instance Elasticsearch Alibaba Cloud.
newClusterHost = "new-cluster.com"
## Nama pengguna untuk kluster Elasticsearch Alibaba Cloud.
newClusterUser = "elastic"
## Kata sandi untuk kluster Elasticsearch Alibaba Cloud.
newClusterPassword = "new-password"
DEFAULT_REPLICAS = 0
def httpRequest(method, host, endpoint, params="", username="", password=""):
conn = httplib.HTTPConnection(host)
headers = {}
if (username != "") :
'Halo {name}, usia Anda adalah {age} !'.format(name = 'Tom', age = '20')
base64string = base64.encodestring('{username}:{password}'.format(username = username, password = password)).replace('\n', '')
headers["Authorization"] = "Basic %s" % base64string;
if "GET" == method:
headers["Content-Type"] = "application/x-www-form-urlencoded"
conn.request(method=method, url=endpoint, headers=headers)
else :
headers["Content-Type"] = "application/json"
conn.request(method=method, url=endpoint, body=params, headers=headers)
response = conn.getresponse()
res = response.read()
return res
def httpGet(host, endpoint, username="", password=""):
return httpRequest("GET", host, endpoint, "", username, password)
def httpPost(host, endpoint, params, username="", password=""):
return httpRequest("POST", host, endpoint, params, username, password)
def httpPut(host, endpoint, params, username="", password=""):
return httpRequest("PUT", host, endpoint, params, username, password)
def getIndices(host, username="", password=""):
endpoint = "/_cat/indices"
indicesResult = httpGet(oldClusterHost, endpoint, oldClusterUserName, oldClusterPassword)
indicesList = indicesResult.split("\n")
indexList = []
for indices in indicesList:
if (indices.find("open") > 0):
indexList.append(indices.split()[2])
return indexList
def getSettings(index, host, username="", password=""):
endpoint = "/" + index + "/_settings"
indexSettings = httpGet(host, endpoint, username, password)
print index + " Pengaturan aslinya adalah sebagai berikut:\n" + indexSettings
settingsDict = json.loads(indexSettings)
## Secara default, jumlah shard sama dengan indeks di kluster Elasticsearch yang dikelola sendiri.
number_of_shards = settingsDict[index]["settings"]["index"]["number_of_shards"]
## Secara default, jumlah replika adalah 0.
number_of_replicas = DEFAULT_REPLICAS
newSetting = "\"settings\": {\"number_of_shards\": %s, \"number_of_replicas\": %s}" % (number_of_shards, number_of_replicas)
return newSetting
def getMapping(index, host, username="", password=""):
endpoint = "/" + index + "/_mapping"
indexMapping = httpGet(host, endpoint, username, password)
print index + " Pemetaan aslinya adalah sebagai berikut:\n" + indexMapping
mappingDict = json.loads(indexMapping)
mappings = json.dumps(mappingDict[index]["mappings"])
newMapping = "\"mappings\" : " + mappings
return newMapping
def createIndexStatement(oldIndexName):
settingStr = getSettings(oldIndexName, oldClusterHost, oldClusterUserName, oldClusterPassword)
mappingStr = getMapping(oldIndexName, oldClusterHost, oldClusterUserName, oldClusterPassword)
createstatement = "{\n" + str(settingStr) + ",\n" + str(mappingStr) + "\n}"
return createstatement
def createIndex(oldIndexName, newIndexName=""):
if (newIndexName == "") :
newIndexName = oldIndexName
createstatement = createIndexStatement(oldIndexName)
print "Pengaturan dan pemetaan untuk indeks baru " + newIndexName + " adalah sebagai berikut:\n" + createstatement
endpoint = "/" + newIndexName
createResult = httpPut(newClusterHost, endpoint, createstatement, newClusterUser, newClusterPassword)
print "Hasil pembuatan indeks baru " + newIndexName + ": " + createResult
## main
indexList = getIndices(oldClusterHost, oldClusterUserName, oldClusterPassword)
systemIndex = []
for index in indexList:
if (index.startswith(".")):
systemIndex.append(index)
else :
createIndex(index, index)
if (len(systemIndex) > 0) :
for index in systemIndex:
print index + " kemungkinan merupakan indeks sistem dan tidak akan dibuat ulang. Tangani secara terpisah jika diperlukan."Langkah 3: Konfigurasi daftar putih reindex
Masuk ke Konsol Alibaba Cloud Elasticsearch.
Di panel navigasi sebelah kiri, klik Elasticsearch Clusters.
Navigasi ke kluster yang diinginkan.
Di bilah navigasi atas, pilih kelompok sumber daya tempat kluster berada dan wilayah tempat kluster berlokasi.
Di halaman Elasticsearch Clusters, temukan kluster tersebut dan klik ID-nya.
Di panel navigasi sebelah kiri, pilih .
Di bagian YML File Configuration, klik Modify Configuration di sebelah kanan.
Di panel YML File Configuration, ubah Other Configurations untuk mengatur daftar putih reindex.
Contoh berikut menunjukkan konfigurasi sampel.
reindex.remote.whitelist: ["10.0.xx.xx:9200","10.0.xx.xx:9200","10.0.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200"]
Untuk mengonfigurasi daftar putih reindex, gunakan parameter reindex.remote.whitelist untuk menentukan titik akhir kluster ES yang dikelola sendiri. Ini menambahkan titik akhir ke daftar putih akses jarak jauh kluster ES Alibaba Cloud. Aturan konfigurasi bervariasi berdasarkan arsitektur jaringan kluster ES Alibaba Cloud:
Untuk arsitektur kontrol dasar (v2), tentukan kombinasi host dan port. Gunakan koma untuk memisahkan beberapa konfigurasi host. Contohnya: otherhost:9200,another:9200,127.0.10.**:9200,localhost:**. Informasi protokol tidak dikenali.
Untuk arsitektur kontrol baru cloud-native (v3), tentukan kombinasi nama domain titik akhir dan port yang sesuai dengan instance. Contohnya: ep-bp1hfkx7coy8lvu4****-cn-hangzhou-i.epsrv-bp1zczi0fgoc5qtv****.cn-hangzhou.privatelink.aliyuncs.com:9200.
CatatanUntuk informasi selengkapnya tentang parameter, lihat Konfigurasi parameter YML.
Pilih opsi This operation will restart the cluster. Continue? dan klik tombol OK.
Setelah Anda mengklik OK, instance Elasticsearch akan direstart. Selama proses restart, Anda dapat memantau progresnya di Daftar Tugas. Konfigurasi selesai setelah instance direstart.
Langkah 4: Migrasi data
Bagian ini menggunakan contoh instance dengan arsitektur kontrol dasar (v2) dan menyediakan tiga metode migrasi data. Pilih metode berdasarkan volume data dan kebutuhan bisnis Anda.
Volume data kecil
Anda dapat menggunakan skrip berikut.
#!/bin/bash
# file:reindex.sh
indexName="Nama indeks Anda"
newClusterUser="Nama pengguna untuk kluster Elasticsearch Alibaba Cloud"
newClusterPass="Kata sandi untuk kluster Elasticsearch Alibaba Cloud"
newClusterHost="Host kluster Elasticsearch Alibaba Cloud"
oldClusterUser="Nama pengguna untuk kluster Elasticsearch yang dikelola sendiri"
oldClusterPass="Kata sandi untuk kluster Elasticsearch yang dikelola sendiri"
# Host kluster Elasticsearch yang dikelola sendiri harus dalam format [scheme]://[host]:[port], misalnya, http://10.37.*.*:9200.
oldClusterHost="Host kluster Elasticsearch yang dikelola sendiri"
curl -u ${newClusterUser}:${newClusterPass} -XPOST "http://${newClusterHost}/_reindex?pretty" -H "Content-Type: application/json" -d'{
"source": {
"remote": {
"host": "'${oldClusterHost}'",
"username": "'${oldClusterUser}'",
"password": "'${oldClusterPass}'"
},
"index": "'${indexName}'",
"query": {
"match_all": {}
}
},
"dest": {
"index": "'${indexName}'"
}
}'Volume data besar, tanpa operasi hapus, dan dengan waktu pembaruan
Jika volume data besar dan tidak ada operasi hapus, Anda dapat menggunakan migrasi scroll untuk mengurangi waktu henti layanan tulis. Migrasi scroll memerlukan bidang, seperti bidang waktu pembaruan, untuk melacak data baru. Setelah migrasi data awal selesai, hentikan semua operasi tulis. Kemudian, jalankan operasi reindex sekali lagi untuk memigrasikan pembaruan terbaru. Terakhir, alihkan operasi baca dan tulis Anda ke kluster ES Alibaba Cloud.
#!/bin/bash
# file: circleReindex.sh
# MENGONTROL STARTUP:
# Ini adalah skrip untuk reindexing jarak jauh. Persyaratan:
# 1. Indeks telah dibuat di kluster Elasticsearch Alibaba Cloud, atau kluster mendukung pembuatan otomatis dan pemetaan dinamis.
# 2. Daftar putih alamat IP harus dikonfigurasi di file YML kluster Elasticsearch Alibaba Cloud, misalnya, reindex.remote.whitelist: 172.16.**.**:9200.
# 3. Host harus dalam format [scheme]://[host]:[port].
PENGGUNAAN="Penggunaan: sh circleReindex.sh <jumlah>
jumlah: Jumlah eksekusi. Angka negatif menunjukkan loop untuk eksekusi inkremental. Angka positif menunjukkan eksekusi satu kali atau beberapa kali.
Contoh:
sh circleReindex.sh 1
sh circleReindex.sh 5
sh circleReindex.sh -1"
indexName="Nama indeks Anda"
newClusterUser="Nama pengguna untuk kluster Elasticsearch Alibaba Cloud"
newClusterPass="Kata sandi untuk kluster Elasticsearch Alibaba Cloud"
oldClusterUser="Nama pengguna untuk kluster Elasticsearch yang dikelola sendiri"
oldClusterPass="Kata sandi untuk kluster Elasticsearch yang dikelola sendiri"
## http://myescluster.com
newClusterHost="Host kluster Elasticsearch Alibaba Cloud"
# Host kluster Elasticsearch yang dikelola sendiri harus dalam format [scheme]://[host]:[port], misalnya, http://10.37.*.*:9200.
oldClusterHost="Host kluster Elasticsearch yang dikelola sendiri"
timeField="Bidang waktu pembaruan"
reindexTimes=0
lastTimestamp=0
curTimestamp=`date +%s`
hasError=false
function reIndexOP() {
reindexTimes=$[${reindexTimes} + 1]
curTimestamp=`date +%s`
ret=`curl -u ${newClusterUser}:${newClusterPass} -XPOST "${newClusterHost}/_reindex?pretty" -H "Content-Type: application/json" -d '{
"source": {
"remote": {
"host": "'${oldClusterHost}'",
"username": "'${oldClusterUser}'",
"password": "'${oldClusterPass}'"
},
"index": "'${indexName}'",
"query": {
"range" : {
"'${timeField}'" : {
"gte" : '${lastTimestamp}',
"lt" : '${curTimestamp}'
}
}
}
},
"dest": {
"index": "'${indexName}'"
}
}'
lastTimestamp=${curTimestamp}
echo "Reindex ke-${reindexTimes}. Batas waktu pembaruan untuk eksekusi ini adalah ${lastTimestamp}. Hasil: ${ret}"
if [[ ${ret} == *error* ]]; then
hasError=true
echo "Terjadi pengecualian selama eksekusi ini. Operasi selanjutnya dihentikan. Silakan periksa."
fi
}
function start() {
## Jika angkanya negatif, loop berjalan terus-menerus.
if [[ $1 -lt 0 ]]; then
while :
do
reIndexOP
done
elif [[ $1 -gt 0 ]]; then
k=0
while [[ k -lt $1 ]] && [[ ${hasError} == false ]]; do
reIndexOP
let ++k
done
fi
}
## main
if [ $# -lt 1 ]; then
echo "$PENGGUNAAN"
exit 1
fi
echo "Mulai operasi reindex untuk indeks ${indexName}."
start $1
echo "Total ${reindexTimes} operasi reindex telah dilakukan."Volume data besar, tanpa operasi hapus, dan tanpa waktu pembaruan
Jika volume data besar dan pemetaan indeks tidak berisi bidang waktu pembaruan, Anda harus memodifikasi kode layanan hulu untuk menambahkan bidang ini. Setelah menambahkan bidang tersebut, pertama-tama migrasikan data historis. Kemudian, gunakan metode migrasi scroll yang dijelaskan di bagian sebelumnya.
#!/bin/bash
# file:miss.sh
indexName="Nama indeks Anda"
newClusterUser="Nama pengguna untuk kluster Elasticsearch Alibaba Cloud"
newClusterPass="Kata sandi untuk kluster Elasticsearch Alibaba Cloud"
newClusterHost="Host kluster Elasticsearch Alibaba Cloud"
oldClusterUser="Nama pengguna untuk kluster Elasticsearch yang dikelola sendiri"
oldClusterPass="Kata sandi untuk kluster Elasticsearch yang dikelola sendiri"
# Host kluster Elasticsearch yang dikelola sendiri harus dalam format [scheme]://[host]:[port], misalnya, http://10.37.*.*:9200
oldClusterHost="Host kluster Elasticsearch yang dikelola sendiri"
timeField="updatetime"
curl -u ${newClusterUser}:${newClusterPass} -XPOST "http://${newClusterHost}/_reindex?pretty" -H "Content-Type: application/json" -d '{
"source": {
"remote": {
"host": "'${oldClusterHost}'",
"username": "'${oldClusterUser}'",
"password": "'${oldClusterPass}'"
},
"index": "'${indexName}'",
"query": {
"bool": {
"must_not": {
"exists": {
"field": "'${timeField}'"
}
}
}
}
},
"dest": {
"index": "'${indexName}'"
}
}'FAQ
Masalah: Saat saya menjalankan perintah curl, pesan kesalahan
{"error":"Header Content-Type [application/x-www-form-urlencoded] tidak didukung","status":406}dikembalikan.Solusi: Tambahkan
-H "Content-Type: application/json"ke perintah curl dan coba lagi.// Dapatkan informasi tentang semua indeks di kluster Elasticsearch yang dikelola sendiri. Jika Anda tidak memiliki izin, Anda dapat menghapus parameter "-u user:pass". oldClusterHost adalah host kluster Elasticsearch yang dikelola sendiri. Ganti dengan host aktual Anda. curl -u user:pass -XGET http://oldClusterHost/_cat/indices | awk '{print $3}' // Berdasarkan daftar indeks yang dikembalikan, dapatkan pengaturan dan pemetaan indeks pengguna yang akan dimigrasikan. Ganti indexName dengan nama indeks pengguna yang ingin Anda kueri. curl -u user:pass -XGET http://oldClusterHost/indexName/_settings,_mapping?pretty=true // Berdasarkan informasi _settings dan _mapping yang diperoleh dari indeks yang sesuai, buat indeks yang sesuai di kluster Elasticsearch Alibaba Cloud. Anda dapat mengatur jumlah replika menjadi 0 untuk mempercepat sinkronisasi data. Setelah migrasi data selesai, atur ulang jumlah replika menjadi 1. // newClusterHost adalah host kluster Elasticsearch Alibaba Cloud, testindex adalah nama indeks yang dibuat, dan testtype adalah tipe indeks yang sesuai. curl -u user:pass -XPUT http://<newClusterHost>/<testindex> -d '{ "testindex" : { "settings" : { "number_of_shards" : "5", // Asumsikan jumlah shard untuk indeks yang sesuai di kluster Elasticsearch yang dikelola sendiri adalah 5. "number_of_replicas" : "0" // Atur jumlah replika untuk indeks menjadi 0. } }, "mappings" : { // Asumsikan pemetaan untuk indeks yang sesuai di kluster Elasticsearch yang dikelola sendiri dikonfigurasi sebagai berikut. "testtype" : { "properties" : { "uid" : { "type" : "long" }, "name" : { "type" : "text" }, "create_time" : { "type" : "long" } } } } } }'Masalah: Volume data satu indeks besar, dan kecepatan sinkronisasi data lambat. Apa yang bisa saya lakukan?
Solusi:
Fitur reindex diimplementasikan berdasarkan metode scroll. Anda dapat meningkatkan ukuran scroll atau mengonfigurasi slice scroll untuk meningkatkan efisiensi. Untuk informasi selengkapnya, lihat dokumentasi API reindex.
Jika volume data sumber besar, gunakan metode snapshot OSS. Untuk informasi selengkapnya, lihat Tingkat Lanjut: Migrasi kluster ES yang dikelola sendiri ke ES Alibaba Cloud menggunakan OSS.
Jika volume data satu indeks besar, Anda dapat mengatur jumlah replika indeks tujuan menjadi 0 dan mengatur interval refresh menjadi -1 sebelum migrasi untuk mempercepat sinkronisasi data. Setelah migrasi data selesai, kembalikan pengaturan ini ke nilai semula.
// Sebelum memigrasikan data indeks, Anda dapat mengatur jumlah replika menjadi 0 dan menonaktifkan refresh untuk mempercepat migrasi data. curl -u user:password -XPUT 'http://<host:port>/indexName/_settings' -d' { "number_of_replicas" : 0, "refresh_interval" : "-1" }' // Setelah data indeks dimigrasikan, Anda dapat mengatur ulang jumlah replika menjadi 1 dan interval refresh menjadi 1s (1s adalah nilai default). curl -u user:password -XPUT 'http://<host:port>/indexName/_settings' -d' { "number_of_replicas" : 1, "refresh_interval" : "1s" }'