Topik ini menjelaskan cara menggunakan API reindex untuk memigrasikan data dari indeks multi-tipe ke indeks single-tipe. Indeks multi-tipe berada pada kluster Alibaba Cloud Elasticsearch V5.X, sedangkan indeks single-tipe berada pada kluster Alibaba Cloud Elasticsearch V6.X.
Batasan
Arsitektur jaringan Alibaba Cloud Elasticsearch diperbarui pada Oktober 2020. Dalam arsitektur baru, operasi reindex lintas kluster dibatasi. Anda perlu menggunakan layanan PrivateLink untuk membuat koneksi privat antar-VPC sebelum melakukan operasi tersebut. Tabel berikut menyediakan solusi migrasi data untuk berbagai skenario.
Kluster Alibaba Cloud Elasticsearch yang dibuat sebelum Oktober 2020 menggunakan arsitektur jaringan lama, sedangkan kluster yang dibuat pada atau setelah Oktober 2020 menggunakan arsitektur jaringan baru.
Skenario | Struktur Jaringan | Solusi |
Migrasikan data antara kluster Alibaba Cloud Elasticsearch | Kedua kluster menggunakan struktur jaringan lama. | API reindex. Untuk informasi lebih lanjut, lihat Gunakan API reindex untuk memigrasikan data antara kluster Alibaba Cloud Elasticsearch. |
Salah satu kluster menggunakan struktur jaringan lama. Catatan Kluster lain dapat menggunakan struktur jaringan lama atau baru. |
| |
Migrasikan data dari kluster Elasticsearch mandiri yang berjalan pada Instance ECS ke kluster Alibaba Cloud Elasticsearch | Kluster Alibaba Cloud Elasticsearch menggunakan struktur jaringan lama. | API reindex. Untuk informasi lebih lanjut, lihat Gunakan API reindex untuk memigrasikan data dari kluster Elasticsearch mandiri ke kluster Alibaba Cloud Elasticsearch. |
Kluster Alibaba Cloud Elasticsearch menggunakan struktur jaringan baru. | API reindex. Untuk informasi lebih lanjut, lihat Migrasikan data dari kluster Elasticsearch mandiri ke kluster Alibaba Cloud Elasticsearch yang menggunakan struktur jaringan baru. |
Prosedur
Buat kluster Elasticsearch V5.X, kluster Elasticsearch V6.X, dan kluster Logstash di virtual private cloud (VPC) yang sama.
Kluster Elasticsearch digunakan untuk menyimpan data indeks.
Kluster Logstash digunakan untuk memigrasikan data yang diproses melalui pipeline.
Langkah 1: Konversikan indeks multi-tipe menjadi satu atau beberapa indeks single-tipe
Gunakan API reindex untuk mengonversikan indeks multi-tipe pada kluster Elasticsearch V5.X menjadi satu atau beberapa indeks single-tipe. Anda dapat menggunakan salah satu metode berikut:
Gabungkan tipe: Panggil API reindex dengan kondisi skrip tertentu untuk menggabungkan tipe indeks.
Pisahkan indeks: Panggil API reindex untuk membagi indeks menjadi beberapa indeks. Masing-masing indeks hanya memiliki satu tipe.
Langkah 2: Gunakan Logstash untuk memigrasikan data
Gunakan kluster Logstash untuk memigrasikan data indeks yang telah diproses ke kluster Elasticsearch V6.X.
Langkah 3: Lihat hasil migrasi data
Lihat data yang dimigrasikan di konsol Kibana.
Persiapkan
Buat kluster Elasticsearch V5.5.3 dan kluster Elasticsearch V6.7.0. Kemudian, buat indeks multi-tipe pada kluster Elasticsearch V5.5.3 dan masukkan data ke dalam indeks tersebut.
Untuk informasi lebih lanjut tentang cara membuat kluster Elasticsearch, lihat Buat kluster Alibaba Cloud Elasticsearch.
Buat kluster Logstash di VPC tempat kluster Elasticsearch berada.
Untuk informasi lebih lanjut, lihat Langkah 1: Buat kluster Logstash.
Langkah 1: Konversikan indeks multi-tipe menjadi satu atau beberapa indeks single-tipe
Dalam langkah-langkah berikut, tipe indeks digabungkan untuk mengonversikan indeks menjadi satu indeks single-tipe.
Aktifkan fitur Auto Indexing untuk kluster Elasticsearch V5.5.3.
Masuk ke konsol Elasticsearch.
Di panel navigasi sisi kiri, klik Elasticsearch Clusters.
Di bilah navigasi atas, pilih grup sumber daya dan wilayah.
Pada halaman Elasticsearch Clusters, temukan kluster Elasticsearch V5.5.3 dan klik ID-nya.
Di panel navigasi sisi kiri halaman yang muncul, klik Cluster Configuration.
Klik Modify Configuration di sebelah kanan YML File Configuration.
Di panel YML File Configuration, atur Auto Indexing ke Enable.
PeringatanOperasi ini akan me-restart kluster. Oleh karena itu, sebelum Anda mengubah nilai Auto Indexing, pastikan bahwa restart tidak memengaruhi layanan Anda.
Pilih This operation will restart the cluster. Continue? dan klik OK.
Masuk ke konsol Kibana kluster Elasticsearch.
Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
Di panel navigasi sisi kiri, klik Dev Tools.
Pada tab Console halaman yang muncul, jalankan perintah berikut untuk menggabungkan tipe indeks:
POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new1" }, "script": { "inline": """ ctx._id = ctx._type + "-" + ctx._id; ctx._source.type = ctx._type; ctx._type = "doc"; """, "lang": "painless" } }Dalam contoh ini, bidang tipe kustom ditambahkan untuk indeks new1. ctx._source.type menentukan bidang type kustom, dan bidang ini diatur ke nilai parameter _type asli. Selain itu, _id dari indeks new1 mencakup _type-_id. Ini mencegah dokumen dari tipe berbeda memiliki ID yang sama.
Jalankan perintah
GET new1/_mappinguntuk melihat pemetaan setelah penggabungan.Jalankan perintah berikut untuk melihat data di indeks baru dengan tipe digabungkan:
GET new1/_search { "query":{ "match_all":{ } } }
Dalam langkah-langkah berikut, indeks multi-tipe dibagi menjadi beberapa indeks single-tipe.
Pada tab Console, jalankan perintah berikut untuk membagi indeks multi-tipe menjadi beberapa indeks single-tipe:
POST _reindex { "source": { "index": "twitter", "type": "tweet", "size": 10000 }, "dest": { "index": "twitter_tweet" } } POST _reindex { "source": { "index": "twitter", "type": "user", "size": 10000 }, "dest": { "index": "twitter_user" } }Dalam contoh ini, indeks twitter dibagi menjadi indeks twitter_tweet dan twitter_user berdasarkan tipe.
Jalankan perintah berikut untuk melihat data di indeks baru:
GET twitter_tweet/_search { "query":{ "match_all":{ } } }GET twitter_user/_search { "query":{ "match_all":{ } } }
Langkah 2: Gunakan Logstash untuk memigrasikan data
Pergi ke halaman Kluster Logstash di konsol Alibaba Cloud Elasticsearch.
Navigasikan ke kluster yang diinginkan.
Di bilah navigasi atas, pilih wilayah tempat kluster berada.
Pada halaman Logstash Clusters, temukan kluster dan klik ID-nya.
Di panel navigasi sisi kiri halaman yang muncul, klik Pipelines.
Pada halaman Pipeline, klik Create Pipeline.
Dalam wizard Create, masukkan ID pipeline dan konfigurasikan pipeline.
Dalam contoh ini, konfigurasi berikut digunakan untuk pipeline:
input { elasticsearch { hosts => ["http://es-cn-0pp1f1y5g000h****.elasticsearch.aliyuncs.com:9200"] user => "elastic" index => "*" password => "your_password" docinfo => true } } filter { } output { elasticsearch { hosts => ["http://es-cn-mp91cbxsm000c****.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "your_password" index => "test" } }Untuk informasi lebih lanjut, lihat File konfigurasi Logstash.
Klik Next untuk mengonfigurasi parameter pipeline.

Parameter
Deskripsi
Pipeline Workers
Jumlah thread pekerja yang menjalankan filter dan plug-in output pipeline secara paralel. Jika terjadi backlog event atau beberapa sumber daya CPU tidak digunakan, kami sarankan Anda meningkatkan jumlah thread untuk memaksimalkan pemanfaatan CPU. Nilai default parameter ini adalah jumlah vCPU.
Pipeline Batch Size
Jumlah maksimum event yang dapat dikumpulkan oleh satu thread pekerja dari plug-in input sebelum mencoba menjalankan filter dan plug-in output. Jika Anda mengatur parameter ini ke nilai besar, satu thread pekerja dapat mengumpulkan lebih banyak event tetapi menggunakan memori lebih besar. Jika Anda ingin memastikan bahwa thread pekerja memiliki memori cukup untuk mengumpulkan lebih banyak event, tentukan variabel LS_HEAP_SIZE untuk meningkatkan ukuran heap Java virtual machine (JVM). Nilai default: 125.
Pipeline Batch Delay
Waktu tunggu untuk sebuah event. Waktu ini terjadi sebelum Anda menetapkan batch kecil ke thread pekerja pipeline dan setelah Anda membuat tugas batch untuk event pipeline. Nilai default: 50. Unit: milidetik.
Queue Type
Model antrian internal untuk menyangga event. Nilai valid:
MEMORY: antrian berbasis memori tradisional. Ini adalah nilai default.
PERSISTED: antrian berbasis disk ACKed, yaitu antrian persisten.
Queue Max Bytes
Ukuran data maksimum untuk antrian. Unit: MB. Nilai valid: bilangan bulat mulai dari
1 hingga 2<sup>53</sup> - 1. Nilai default: 1024.CatatanNilai harus kurang dari kapasitas total disk Anda.
Queue Checkpoint Writes
Jumlah maksimum event yang ditulis sebelum checkpoint diberlakukan ketika antrian persisten diaktifkan. Nilai 0 menunjukkan tidak ada batasan. Nilai default: 1024.
PeringatanSetelah Anda mengonfigurasi parameter, Anda harus menyimpanpengaturan dan menerapkan pipeline. Ini memicu restart kluster Logstash. Sebelum melanjutkan, pastikan bahwa restart tidak memengaruhi bisnis Anda.
Klik Save atau Save and Deploy.
Save: Setelah mengklik tombol ini, sistem akan menyimpan pengaturan pipeline dan memicu perubahan kluster. Namun, pengaturan tidak langsung berlaku. Setelah mengklik Simpan, halaman Pipelines akan muncul. Pada halaman Pipelines, temukan pipeline yang dibuat dan klik Deploy Now di kolom Actions. Kemudian, sistem akan me-restart kluster Logstash untuk membuat pengaturan berlaku.
Save and Deploy: Setelah mengklik tombol ini, sistem akan me-restart kluster Logstash untuk membuat pengaturan berlaku.
Langkah 3: Lihat hasil migrasi data
Masuk ke konsol Kibana kluster Elasticsearch V6.7.0.
Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
Di panel navigasi sisi kiri, klik Dev Tools.
Pada tab Console halaman yang muncul, jalankan perintah berikut untuk melihat indeks yang menyimpan data yang dimigrasikan:
GET _cat/indices?v