Reindex API menyalin seluruh data atau data yang memenuhi kondisi tertentu dari satu indeks ke indeks lainnya, baik dalam kluster yang sama maupun lintas kluster. Topik ini menjelaskan cara melakukan migrasi data dari satu kluster ke kluster lain menggunakan Reindex API.
Batasan
Kedua kluster harus berada dalam wilayah dan zona yang sama.
Mode Pengendalian Penyebaran: Mendukung migrasi data antar kluster dengan mode kontrol v2 ke v3, antar kluster v2, serta antar kluster v3.
Kluster memiliki dua mode penyebaran pengendalian: cloud-native new control (v3) dan basic control (v2).

Versi Kluster: Mendukung migrasi data antar versi utama yang sama (misalnya, dari versi 8.15.1 ke 8.15.1). Jangan lakukan migrasi lintas versi utama, seperti dari 7.7.1 ke 8.15.1.
Persiapan
Dalam contoh ini, kedua kluster ES_1 dan ES_2 menggunakan versi vector-enhanced 8.15.1. Tujuannya adalah melakukan migrasi data dari ES_2 ke ES_1 menggunakan Reindex API. Sebelum migrasi, Anda harus menyelesaikan persiapan berikut.
Siapkan Data Uji
Buat indeks dan masukkan data uji di ES_2:
PUT /product_info { "settings": { "number_of_shards": 5, "number_of_replicas": 1 }, "mappings": { "properties": { "productName": { "type": "text", "analyzer": "ik_smart" }, "annual_rate":{ "type":"keyword" }, "describe": { "type": "text", "analyzer": "ik_smart" } } } }Contoh ini membuat indeks bernama product_info, yang mencakup bidang productName, annual_rate, dan describe. Respons sukses akan dikembalikan setelah pembuatan berhasil.
{ "acknowledged" : true, "shards_acknowledged" : true, "index" : "product_info" }Masukkan 6 entri data uji:
POST /product_info/_bulk {"index":{}} {"productName":"Wealth Management Product A","annual_rate":"3.2200%","describe":"180-day fixed wealth management, minimum investment of 20,000, stable returns, self-service message push selection available"} {"index":{}} {"productName":"Wealth Management Product B","annual_rate":"3.1100%","describe":"90-day fixed investment product, minimum investment of 10,000, daily income message push"} {"index":{}} {"productName":"Wealth Management Product C","annual_rate":"3.3500%","describe":"270-day fixed investment product, minimum investment of 40,000, daily income immediately pushed"} {"index":{}} {"productName":"Wealth Management Product D","annual_rate":"3.1200%","describe":"90-day fixed investment product, minimum investment of 12,000, daily income message push"} {"index":{}} {"productName":"Wealth Management Product E","annual_rate":"3.0100%","describe":"30-day fixed investment product recommendation, minimum investment of 8,000, daily income message push"} {"index":{}} {"productName":"Wealth Management Product F","annual_rate":"2.7500%","describe":"Popular short-term product, 3-day short term, no service fees, minimum investment of 500, receive income messages via text message"}Buat indeks di ES_1 untuk menyimpan data yang dimigrasikan dari ES_2:
PUT dest { "settings": { "number_of_shards": 5, "number_of_replicas": 1 } }
Buat Koneksi Jaringan Pribadi Antarkluster Menggunakan NLB dan PrivateLink
Untuk meningkatkan keamanan kluster, kluster dalam VPC yang sama atau lintas VPC yang berbeda diisolasi secara jaringan. Anda dapat membuat koneksi jaringan pribadi antarkluster menggunakan NLB dan PrivateLink.
Seperti ditunjukkan pada gambar berikut, dua kluster ES ditempatkan dalam VPC yang sama. Buat layanan titik akhir menggunakan VPC pengguna, lalu konfigurasikan koneksi jaringan pribadi antarkluster di ES_1 untuk mendapatkan titik akhir. Terakhir, asosiasikan titik akhir tersebut dengan layanan titik akhir guna membangun koneksi jaringan pribadi antara kedua kluster.
Layanan Titik Akhir: Layanan titik akhir memungkinkan VPC lain membangun koneksi PrivateLink dengan membuat titik akhir. Buat sumber daya layanan terkait secara manual.
Titik Akhir: Titik akhir diasosiasikan dengan layanan titik akhir dan membangun konektivitas jaringan untuk akses jaringan pribadi ke layanan eksternal melalui VPC. Alibaba Cloud ES secara otomatis membuat titik akhir di lingkungan jaringan ES saat Anda mengonfigurasi PrivateLink instans.
Untuk langkah-langkah konfigurasi, lihat Peering Jaringan Pribadi Antarkluster Alibaba Cloud ES Menggunakan NLB dan PrivateLink. Anda harus menyelesaikan langkah 1, 2, dan 3.
Tampilan antarmuka setelah konfigurasi berhasil:

Konfigurasikan Daftar Putih Reindex API
Untuk memastikan keamanan migrasi data lintas kluster, tambahkan alamat koneksi jaringan pribadi dan nomor port komunikasi kluster ES_2 ke daftar putih Reindex API kluster ES_1.
Buka halaman di ES_1. Lalu, klik Configure Private Connection, kemudian klik Edit. Di sidebar Configure Private Connection, klik Endpoint ID yang dituju.

Di tab Endpoint Connections di Konsol VPC, klik ikon
di sebelah Endpoint ID untuk melihat nama domain yang sesuai.PentingAnda harus menghapus informasi zona dari nama domain sebelum mengonfigurasi daftar putih Reindex API.
Misalnya, jika nama domain lengkapnya adalah “ep-bp1****************-cn-hangzhou-i.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com”, hapus informasi zona “-cn-hangzhou-i” sehingga diperoleh nama domain akhir “ep-bp1****************.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com”.

Konfigurasikan daftar putih Reindex API di file YML ES_1. Daftar putih harus mencakup nama domain titik akhir dan port komunikasi.
reindex: remote: whitelist: >- ep-bp1bp1****************.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com:9200
Panggil Reindex API untuk Migrasi Data
Di ES_1, login ke Konsol Kibana.
Di Dev Tools>Console, panggil Reindex API untuk melakukan migrasi data.
POST _reindex { "source": { "remote": { "host": "http://ep-bp1bp1****************.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com:9200", "username": "elastic", "password": "xxx-xxxx123!" }, "index": "product_info", "query": { "match": { "productName": "wealth management product" } } }, "dest": { "index": "dest" } }Kategori
Parameter
Deskripsi
source
remote
Menunjukkan kluster remote. Dalam contoh ini, yaitu ES_2.
host
Titik akhir kluster ES_2, yang mencakup:
Protokol akses: Di halaman Basic Information kluster, lihat protokol akses yang sedang digunakan.
PentingUntuk memastikan keamanan, gunakan protokol HTTPS guna menghindari transmisi password dalam teks biasa saat menghubungkan ke kluster. Untuk informasi lebih lanjut, lihat dokumentasi protokol HTTPS untuk mengaktifkan protokol HTTPS.
Nama domain: Alamat koneksi pribadi kluster ES_2, yang harus sesuai dengan nama domain yang dikonfigurasi di daftar putih Reindex.
Port komunikasi: Tetap pada 9200.
username
Username default kluster adalah elastic.
password
Password untuk username tersebut.
Password ditetapkan saat Anda membuat kluster. Jika lupa password, Anda dapat mengatur ulang password.
index
Indeks sumber di kluster remote.
query
Tentukan data yang akan dimigrasikan menggunakan sintaksis query.
Dalam contoh ini, data yang memiliki 'wealth management product' di bidang `productName` pada indeks kluster ES_2 dimigrasikan ke kluster ES_1.
dest
index
Indeks di kluster tujuan yang digunakan untuk menyimpan data hasil migrasi.
Hasil yang diharapkan setelah eksekusi berhasil:
{ "took": 211, "timed_out": false, "total": 6, "updated": 6, "created": 0, "deleted": 0, "batches": 1, "version_conflicts": 0, "noops": 0, "retries": { "bulk": 0, "search": 0 }, "throttled_millis": 0, "requests_per_second": -1, "throttled_until_millis": 0, "failures": [] }Panggil API _search untuk melihat hasil migrasi.
GET dest/_searchHasil yang diharapkan:
{ "took": 6, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 6, "relation": "eq" }, "max_score": 1, "hits": [ { "_index": "dest", "_id": "n9kyqpcBCRuDZhswJCpH", "_score": 1, "_source": { "productName": "wealth management product D", "annual_rate": "3.1200%", "describe": "90-day fixed investment product, minimum investment of 12,000, daily income message push" } }, { "_index": "dest", "_id": "nNkyqpcBCRuDZhswJCpG", "_score": 1, "_source": { "productName": "wealth management product A", "annual_rate": "3.2200%", "describe": "180-day regular wealth management, minimum investment of 20,000, stable returns, can self-select message push" } }, { "_index": "dest", "_id": "ndkyqpcBCRuDZhswJCpG", "_score": 1, "_source": { "productName": "wealth management product B", "annual_rate": "3.1100%", "describe": "90-day fixed investment product, minimum investment of 10,000, daily income message push" } }, { "_index": "dest", "_id": "ntkyqpcBCRuDZhswJCpH", "_score": 1, "_source": { "productName": "wealth management product C", "annual_rate": "3.3500%", "describe": "270-day fixed investment product, minimum investment of 40,000, daily income message push" } }, { "_index": "dest", "_id": "oNkyqpcBCRuDZhswJCpH", "_score": 1, "_source": { "productName": "wealth management product E", "annual_rate": "3.0100%", "describe": "30-day fixed investment product recommendation, minimum investment of 8,000, daily income message push" } }, { "_index": "dest", "_id": "odkyqpcBCRuDZhswJCpH", "_score": 1, "_source": { "productName": "wealth management product F", "annual_rate": "2.7500%", "describe": "Popular short-term product, 3-day term, no service fees, minimum investment of 500, receive income messages via text message" } } ] } }