全部产品
Search
文档中心

Elasticsearch:Gunakan API reindex untuk memigrasikan data antar kluster Elasticsearch di Alibaba Cloud

更新时间:Jul 02, 2025

Jika Anda ingin memigrasikan data antar kluster Elasticsearch di Alibaba Cloud, Anda dapat menggunakan API reindex untuk mengindeks ulang data. Topik ini menjelaskan cara menggunakan API reindex untuk memigrasikan data antar kluster Elasticsearch di Alibaba Cloud yang diterapkan dalam arsitektur jaringan asli.

Skenario

Bab ini menjelaskan penggunaan API reindex untuk migrasi data lintas kluster Elasticsearch di Alibaba Cloud. Pilih solusi yang sesuai berdasarkan data bisnis Anda dan arsitektur jaringan tempat kluster Elasticsearch diterapkan.

  • Anda ingin memigrasikan data antar kluster Elasticsearch.

  • Shard untuk indeks dalam kluster Elasticsearch didistribusikan secara tidak tepat. Sebagai contoh, volume data yang disimpan dalam indeks terlalu besar, tetapi jumlah shard untuk indeks tersebut terlalu kecil. Dalam kasus ini, Anda dapat menggunakan API reindex untuk mengindeks ulang data.

  • Anda ingin memodifikasi pemetaan untuk indeks yang menyimpan sejumlah besar data. Dalam kasus ini, Anda dapat menggunakan API reindex untuk menyalin data dalam indeks.

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 menjalankan operasi tersebut. Tabel berikut menyediakan solusi migrasi data untuk berbagai skenario.

Catatan

Kluster Elasticsearch di Alibaba Cloud yang dibuat sebelum Oktober 2020 menggunakan arsitektur jaringan asli, sedangkan kluster yang dibuat pada atau setelah Oktober 2020 menggunakan arsitektur jaringan baru.

Skenario

Struktur Jaringan

Solusi

Migrasikan data antar kluster Elasticsearch di Alibaba Cloud

Kedua kluster menggunakan arsitektur jaringan asli.

Gunakan API reindex. Untuk informasi lebih lanjut, lihat Gunakan API reindex untuk memigrasikan data antar kluster Elasticsearch di Alibaba Cloud.

Salah satu kluster menggunakan arsitektur jaringan asli.

Catatan

Kluster lainnya dapat menggunakan arsitektur jaringan asli atau baru.

Migrasikan data dari kluster Elasticsearch mandiri yang berjalan pada Instance ECS ke kluster Elasticsearch di Alibaba Cloud

Kluster Elasticsearch di Alibaba Cloud menggunakan arsitektur jaringan asli.

Gunakan API reindex. Untuk informasi lebih lanjut, lihat Gunakan API reindex untuk memigrasikan data dari kluster Elasticsearch mandiri ke kluster Elasticsearch di Alibaba Cloud.

Kluster Elasticsearch di Alibaba Cloud menggunakan arsitektur jaringan baru.

Gunakan API reindex. Untuk informasi lebih lanjut, lihat Migrasikan data dari kluster Elasticsearch mandiri ke kluster Elasticsearch di Alibaba Cloud yang menggunakan arsitektur jaringan baru.

Prasyarat

  • Dua kluster Elasticsearch di Alibaba Cloud telah dibuat dalam arsitektur jaringan asli, menggunakan virtual private cloud (VPC) dan vSwitch yang sama. Dalam contoh ini, kluster Elasticsearch V6.7.0 digunakan sebagai kluster lokal, sedangkan kluster Elasticsearch V6.3.2 digunakan sebagai kluster jarak jauh.

  • Data uji telah dipersiapkan.

    • Kluster lokal

      Buat indeks tujuan dalam kluster lokal.

      PUT dest
      {
        "settings": {
          "number_of_shards": 5,
          "number_of_replicas": 1
        }
      }
    • Kluster jarak jauh

      Persiapkan data yang ingin dimigrasikan dalam kluster jarak jauh. Dalam contoh ini, data dari topik "Memulai" digunakan. Untuk informasi lebih lanjut, lihat Memulai.本地集群测试数据

      Penting

      Jika Anda ingin menggunakan kluster Elasticsearch versi 7.0 atau lebih baru sebagai kluster jarak jauh, Anda harus menetapkan tipe indeks menjadi _doc.

Prosedur

  1. Masuk ke Konsol Elasticsearch di Alibaba Cloud.

  2. Di panel navigasi sisi kiri, klik Elasticsearch Clusters.

  3. Navigasikan ke kluster yang diinginkan.

    1. Di bilah navigasi atas, pilih grup sumber daya dan wilayah tempat kluster berada.

    2. Pada halaman Elasticsearch Clusters, temukan kluster dan klik ID-nya.

  4. Konfigurasikan daftar putih reindex untuk kluster lokal.

    1. Di panel navigasi sisi kiri halaman yang muncul, pilih Configuration and Management > Cluster Configuration.

    2. Pada halaman yang muncul, klik Modify Configuration di sebelah kanan YML File Configuration.

    3. Di panel Konfigurasi File YML, masukkan titik akhir dan nomor port kluster jarak jauh di bidang Other Configurations.

      Konfigurasi daftar putih reindex bervariasi berdasarkan jumlah zona kluster jarak jauh.

      • Jika kluster jarak jauh adalah kluster zona tunggal, konfigurasikan daftar putih reindex dalam format <Endpoint of the remote cluster>:9200. 单可用区配置示例Contoh kode:

        reindex.remote.whitelist: ["es-cn-09k1rgid9000g****.elasticsearch.aliyuncs.com:9200"]
      • Jika kluster remote merupakan kluster multi-zona, daftar putih reindex harus mencakup alamat IP dari semua node data dalam kluster dan nomor port kluster tersebut. 多可用区远程白名单配置Contoh kode:

        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"]
        Catatan

        Anda dapat memperoleh alamat IP semua node data dalam kluster dari tab Node Visualization pada halaman Basic Information kluster. Untuk informasi lebih lanjut, lihat Lihat status kluster dan informasi node.

      Untuk informasi tentang konfigurasi daftar putih reindex, lihat Konfigurasikan daftar putih reindex jarak jauh.

    4. Pilih This operation will restart the cluster. Continue? dan klik OK.

      Sistem akan me-restart kluster Elasticsearch. Anda dapat melihat kemajuan restart di kotak dialog Tugas. Setelah kluster direstart, konfigurasi selesai.

  5. Dalam kluster lokal, panggil API reindex untuk mengindeks ulang data.

    1. Masuk ke Konsol Kibana kluster lokal dan buka halaman utama Konsol Kibana sesuai petunjuk.

      Untuk informasi lebih lanjut tentang cara masuk ke Konsol Kibana, lihat Masuk ke Konsol Kibana.

      Catatan

      Dalam contoh ini, kluster Elasticsearch V6.7.0 digunakan. Operasi pada kluster versi lain mungkin berbeda. Operasi aktual di konsol yang berlaku.

    2. Di panel navigasi sisi kiri halaman yang muncul, klik Dev Tools.

    3. Pada tab Console, jalankan perintah berikut untuk memanggil API reindex guna mengindeks ulang data:

      POST _reindex
      {
        "source": {
          "remote": {
            "host": "http://es-cn-09k1rgid9000g****.elasticsearch.aliyuncs.com:9200",
            "username": "elastic",
            "password": "your_password"
          },
          "index": "product_info",
          "query": {
            "match": {
              "productName": "Manajemen kekayaan"
            }
          }
        },
        "dest": {
          "index": "dest"
        }
      }

      Kategori

      Parameter

      Deskripsi

      source

      host

      URL yang digunakan untuk terhubung ke kluster jarak jauh. URL harus mencakup protokol, titik akhir, dan nomor port. Contoh: https://otherhost:9200. Nilai parameter host bervariasi berdasarkan jumlah zona kluster jarak jauh.

      • Jika kluster jarak jauh adalah kluster zona tunggal, Anda harus mengonfigurasi parameter ini dalam format http://<Titik Akhir Kluster Jarak Jauh>:9200.

        Catatan

        Anda dapat memperoleh titik akhir pada halaman Informasi Dasar kluster jarak jauh. Untuk informasi lebih lanjut, lihat Lihat informasi dasar kluster.

      • Jika kluster jarak jauh adalah kluster multi-zona, Anda harus mengonfigurasi parameter ini dalam format http://<Alamat IP Node Data di Kluster Jarak Jauh>:9200.

      username

      Nama pengguna yang digunakan untuk terhubung ke kluster jarak jauh. Parameter ini hanya diperlukan jika otentikasi dasar perlu dilakukan pada permintaan yang dikirim ke kluster jarak jauh. Nama pengguna default yang digunakan untuk terhubung ke kluster Elasticsearch di Alibaba Cloud adalah elastic.

      Penting
      • Untuk alasan keamanan, kami sarankan Anda menggunakan HTTPS untuk mengirim permintaan jika otentikasi dasar perlu dilakukan. Jika tidak, kata sandi yang diperlukan ditransmisikan dalam teks biasa.

      • Untuk kluster Elasticsearch di Alibaba Cloud, Anda dapat menggunakan HTTPS dalam host hanya setelah Anda mengaktifkan protokol untuk kluster. Untuk informasi tentang cara mengaktifkan HTTPS untuk kluster Elasticsearch, lihat Aktifkan HTTPS.

      password

      Kata sandi yang digunakan untuk terhubung ke kluster jarak jauh. Kata sandi ditentukan saat Anda membuat kluster. Jika Anda lupa kata sandinya, Anda dapat menyetel ulang. Untuk informasi tentang prosedur dan perhatian saat menyetel ulang kata sandi, lihat Setel ulang kata sandi akses untuk kluster Elasticsearch.

      index

      Indeks sumber dalam kluster jarak jauh.

      query

      Menentukan data yang ingin Anda migrasikan. Untuk informasi lebih lanjut, lihat API Reindex.

      dest

      index

      Indeks tujuan dalam kluster lokal.

      Catatan

      Saat Anda mengindeks ulang data dari kluster jarak jauh, pemotongan manual dan otomatis tidak didukung untuk data tersebut. Untuk informasi lebih lanjut, lihat Pemotongan Manual dan Pemotongan Otomatis.

      Jika perintah berhasil dijalankan, hasil berikut akan dikembalikan:

      {
        "took" : 51,
        "timed_out" : false,
        "total" : 2,
        "updated" : 2,
        "created" : 0,
        "deleted" : 0,
        "batches" : 1,
        "version_conflicts" : 0,
        "noops" : 0,
        "retries" : {
          "bulk" : 0,
          "search" : 0
        },
        "throttled_millis" : 0,
        "requests_per_second" : -1.0,
        "throttled_until_millis" : 0,
        "failures" : [ ]
      }
  6. Jalankan perintah berikut untuk melihat data yang dimigrasikan:

    GET dest/_search

    Jika perintah berhasil dijalankan, hasil berikut akan dikembalikan:

    • Kluster zona tunggal查看迁移成功的数据

    • Kluster multi-zona查看迁移成功的数据

Rangkuman

Konfigurasi yang diperlukan untuk migrasi data dari kluster zona tunggal serupa dengan konfigurasi untuk migrasi data dari kluster multi-zona. Tabel berikut menjelaskan perbedaan-perbedaan tersebut.

Tipe Kluster

Konfigurasi Daftar Putih Reindex

Konfigurasi Parameter Host

Kluster zona tunggal

Titik akhir dan nomor port kluster

https://Titik Akhir Kluster:9200

Kluster multi-zona

Alamat IP semua node data dalam kluster dan nomor port kluster

https://Alamat IP Node Data dalam Kluster:9200

Informasi Tambahan

Saat menggunakan API reindex untuk mengindeks ulang data, Anda dapat menentukan ukuran batch dan periode timeout.

  • Ukuran Batch

    Kluster Elasticsearch jarak jauh menggunakan heap untuk menyimpan data indeks. Ukuran batch default adalah 100 MB. Jika indeks dalam kluster jarak jauh berisi dokumen besar, disarankan untuk mengubah ukuran batch menjadi nilai yang lebih kecil.

    Dalam contoh berikut, size diatur ke 10.

    POST _reindex
    {
      "source": {
        "remote": {
          "host": "http://otherhost:9200"
        },
        "index": "source",
        "size": 10,
        "query": {
          "match": {
            "test": "data"
          }
        }
      },
      "dest": {
        "index": "dest"
      }
    }
  • Periode Timeout

    Anda dapat menggunakan socket_timeout untuk menentukan periode timeout untuk pembacaan socket. Nilai default dari socket_timeout adalah 30s. Anda juga dapat menggunakan connect_timeout untuk menentukan periode timeout untuk koneksi. Nilai default dari connect_timeout adalah 1s.

    Dalam contoh berikut, socket_timeout diatur menjadi 1m, dan connect_timeout diatur menjadi 10s.

    POST _reindex
    {
      "source": {
        "remote": {
          "host": "http://otherhost:9200",
          "socket_timeout": "1m",
          "connect_timeout": "10s"
        },
        "index": "source",
        "query": {
          "match": {
            "test": "data"
          }
        }
      },
      "dest": {
        "index": "dest"
      }
    }