Anda dapat menggunakan alat elasticsearch-dump untuk memigrasikan pengaturan, pemetaan, dan dokumen indeks antara kluster Alibaba Cloud Elasticsearch atau antara mesin lokal dan kluster Alibaba Cloud Elasticsearch. Topik ini menjelaskan cara menginstal dan menggunakan elasticsearch-dump.
Informasi latar belakang
elasticsearch-dump adalah alat sumber terbuka yang digunakan untuk memigrasikan data Elasticsearch. Untuk informasi lebih lanjut, lihat dokumentasi resmi elasticsearch-dump.
Prasyarat
Kluster Alibaba Cloud Elasticsearch telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster Alibaba Cloud Elasticsearch.
Fitur Auto Indexing diaktifkan untuk kluster tujuan Alibaba Cloud Elasticsearch, atau indeks telah dibuat dalam kluster tersebut. Untuk informasi lebih lanjut tentang cara mengaktifkan fitur Auto Indexing, lihat Konfigurasikan file YML.
Instance Elastic Compute Service (ECS) telah dibuat. Instance ECS digunakan untuk menginstal elasticsearch-dump. Untuk informasi lebih lanjut, lihat Buat instance menggunakan wizard.
Skenario penggunaan
elasticsearch-dump digunakan untuk memigrasikan volume data kecil dalam skenario dengan sejumlah kecil indeks.
Instal elasticsearch-dump
Hubungkan ke instance ECS.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan kata sandi atau kunci.
Instal Node.js.
Unduh paket instalasi.
wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xzEkstrak paket.
tar -xf node-v16.18.0-linux-x64.tar.xzKonfigurasikan variabel lingkungan.
Jika Anda ingin variabel lingkungan berlaku sementara, jalankan perintah berikut:
export PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/Jika Anda ingin variabel lingkungan berlaku secara permanen, jalankan perintah berikut:
vim ~/.bash_profile export PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/ source ~/.bash_profile
Instal elasticsearch-dump.
npm install elasticdump -g
Contoh
Jika kata sandi yang digunakan untuk mengakses kluster sumber atau tujuan Alibaba Cloud Elasticsearch berisi karakter khusus seperti # dan $, permintaan akan diblokir oleh Alibaba Cloud Web Application Firewall (WAF), dan kesalahan dilaporkan setelah perintah terkait dijalankan. Untuk informasi lebih lanjut tentang kesalahan yang dilaporkan dan metode pemecahan masalah, lihat FAQ.
Migrasikan data ke kluster Alibaba Cloud Elasticsearch
Migrasikan pengaturan indeks
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=settingsMigrasikan pemetaan indeks
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=mappingMigrasikan dokumen indeks
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=data
Migrasikan data ke mesin lokal Anda
Migrasikan pengaturan indeks
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=settingsMigrasikan pemetaan indeks
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=mappingMigrasikan dokumen indeks
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=dataMigrasikan data berdasarkan kueri
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> ----searchBody="<YourQuery>"
Pulihkan data dari mesin lokal Anda ke kluster Alibaba Cloud Elasticsearch
Pulihkan dokumen indeks
elasticdump --input=<YourLocalFile> --output=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --type=dataUntuk informasi lebih lanjut tentang skenario migrasi data lainnya, lihat dokumentasi resmi elasticsearch-dump.
Tabel berikut menjelaskan parameter yang digunakan dalam contoh sebelumnya.
Parameter | Deskripsi |
<YourEsHost>/<OtherEsHost> | Titik akhir internal atau publik dari kluster sumber atau tujuan Alibaba Cloud Elasticsearch. Anda dapat memperoleh titik akhir internal atau publik dari halaman Informasi Dasar kluster. Untuk informasi lebih lanjut, lihat Lihat informasi dasar kluster. Catatan Jika server tempat elasticsearch-dump diinstal berada di virtual private cloud (VPC) yang sama dengan kluster Elasticsearch sumber dan tujuan, Anda dapat menggunakan titik akhir internal. Jika tidak, Anda harus menggunakan titik akhir publik dan mengonfigurasi daftar putih alamat IP publik. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih alamat IP publik atau privat untuk kluster Elasticsearch. |
<UserName>/<OtherName> | Nama pengguna yang digunakan untuk mengakses kluster sumber atau tujuan Alibaba Cloud Elasticsearch. Nama pengguna default untuk kluster Alibaba Cloud Elasticsearch adalah elastic. |
<YourPassword>/<OtherPassword> | Kata sandi yang digunakan untuk mengakses kluster sumber atau tujuan Alibaba Cloud Elasticsearch. Kata sandi ditentukan saat Anda membuat kluster. Jika Anda lupa kata sandi, Anda dapat menyetel ulang. Untuk informasi lebih lanjut tentang prosedur dan tindakan pencegahan untuk menyetel ulang kata sandi, lihat Setel ulang kata sandi akses untuk kluster Elasticsearch. |
<YourEsIndex>/<OtherEsIndex> | Nama indeks sumber atau tujuan. |
<YourLocalFile> | Path lokal yang digunakan untuk menyimpan data yang akan dimigrasikan. Contoh: Penting Saat Anda memigrasikan data ke mesin lokal Anda, elasticsearch-dump secara otomatis menghasilkan file tujuan di path yang ditentukan. Oleh karena itu, sebelum Anda memigrasikan data ke mesin lokal, Anda harus memastikan bahwa nama file tujuan unik di direktori terkait. |
<YourQuery> | Pernyataan kueri. Contoh: |
FAQ
T: Apa yang harus saya lakukan jika kesalahan Error: getaddrinfo ENOTFOUND elastic dilaporkan?

A: Kata sandi autentikasi HTTP berisi karakter khusus. Akibatnya, terjadi kesalahan penguraian URL. Untuk menyelesaikan masalah ini, Anda perlu menambahkan file autentikasi HTTP.
Masukkan nama pengguna dan kata sandi untuk mengakses kluster Elasticsearch dalam file autentikasi
auth.ini. Contoh:user=elastic password="Es#123456"CatatanKata sandi harus diapit oleh tanda kutip ganda (").
Jalankan perintah berikut dan tentukan file autentikasi menggunakan parameter
--httpAuthFile:elasticdump --input=http://es-*****.public.elasticsearch.aliyuncs.com:9200/customers --output=/root/customers.json --httpAuthFile=/root/auth.ini --type=settings
T: Apa yang harus saya lakukan jika kesalahan URIError: URI malformed dilaporkan?
A: Plugin elasticsearch-dump tidak dapat menguraikan nama pengguna dan kata sandi yang berisi karakter khusus. Jika nama pengguna atau kata sandi kluster Alibaba Cloud Elasticsearch Anda berisi karakter khusus, sistem melaporkan kesalahan di atas. Anda dapat menggunakan salah satu metode berikut untuk memecahkan masalah:
Metode 1: Hapus karakter khusus dalam nama pengguna atau kata sandi untuk mengubah nama pengguna atau kata sandi.
Metode 2: Masuk ke konsol Kibana kluster, buat pengguna, berikan izin yang diperlukan kepada pengguna, dan kemudian gunakan pengguna baru untuk migrasi data.