全部产品
Search
文档中心

Elasticsearch:Gunakan elasticsearch-dump untuk migrasi data

更新时间:Jul 02, 2025

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

  1. Hubungkan ke instance ECS.

  2. Instal Node.js.

    1. Unduh paket instalasi.

      wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xz
    2. Ekstrak paket.

      tar -xf node-v16.18.0-linux-x64.tar.xz
    3. Konfigurasikan 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
  3. Instal elasticsearch-dump.

    npm install elasticdump -g

Contoh

Catatan

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=settings
  • Migrasikan pemetaan indeks

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=mapping
  • Migrasikan 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=settings
  • Migrasikan pemetaan indeks

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=mapping
  • Migrasikan dokumen indeks

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=data
  • Migrasikan 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=data

Untuk 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: /data/test.json.

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: {\"query\":{\"term\":{\"_id\":\"100\"}}}.

FAQ

T: Apa yang harus saya lakukan jika kesalahan Error: getaddrinfo ENOTFOUND elastic dilaporkan?

image.png

A: Kata sandi autentikasi HTTP berisi karakter khusus. Akibatnya, terjadi kesalahan penguraian URL. Untuk menyelesaikan masalah ini, Anda perlu menambahkan file autentikasi HTTP.

  1. Masukkan nama pengguna dan kata sandi untuk mengakses kluster Elasticsearch dalam file autentikasi auth.ini. Contoh:

    user=elastic
    password="Es#123456"
    Catatan

    Kata sandi harus diapit oleh tanda kutip ganda (").

  2. 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.