全部产品
Search
文档中心

Elasticsearch:Gunakan plug-in aliyun-codec

更新时间:Jun 24, 2025

aliyun-codec adalah plug-in kompresi indeks yang dikembangkan oleh Alibaba Cloud. Plug-in ini memungkinkan pengguna untuk mengompres berbagai jenis dokumen dalam indeks di lapisan bawah Elasticsearch dan menggunakan fitur source_reuse_doc_values. Plug-in ini cocok untuk skenario dengan volume data besar atau biaya penyimpanan tinggi, seperti analisis log dan deret waktu, serta dapat secara signifikan mengurangi biaya penyimpanan indeks.

Informasi Latar Belakang

Plug-in aliyun-codec mendukung berbagai algoritma kompresi dan fitur source_reuse_doc_values. Berikut adalah panduan untuk menggunakan fitur-fitur yang disediakan oleh plug-in aliyun-codec:

Berikut adalah informasi terkait pengujian kinerja yang dilakukan pada plug-in:

  • Lingkungan Pengujian

    • Data set: Log kluster dari kluster Elasticsearch Alibaba Cloud.

    • Volume data: Satu indeks yang menyimpan 1,2 TiB data dengan 22 shard utama.

    • Konfigurasi indeks: Kompresi diaktifkan untuk dokumen berorientasi baris, kolom, dan terbalik. Algoritma kompresi zstd digunakan untuk indeks tersebut.

  • Hasil Pengujian

    • Dibandingkan dengan kluster yang menggunakan plug-in aliyun-codec tanpa kompresi indeks, kluster dengan kompresi indeks menunjukkan peningkatan sebagai berikut:

      • Throughput tulis: Tetap tidak berubah.

      • Ukuran keseluruhan indeks: Berkurang sebesar 40%.

      • Latensi query intensif I/O: Berkurang sebesar 50%.

    • Dibandingkan dengan kluster yang menggunakan plug-in aliyun-codec tanpa source_reuse_doc_values, kluster dengan fitur tersebut menunjukkan peningkatan sebagai berikut:

      • Throughput tulis: Tetap tidak berubah.

      • Ukuran keseluruhan indeks: Berkurang hingga 40%. Persentase pengurangan bergantung pada proporsi bidang tempat fitur source_reuse_doc_values berlaku dalam indeks.

      • Latensi query intensif I/O: Latensi bergantung pada faktor-faktor seperti proporsi bidang tempat fitur source_reuse_doc_values berlaku dalam indeks dan tipe disk node. Hasil pengujian aktual yang berlaku.

Prasyarat

  • Sebuah kluster Elasticsearch V7.10.0 Alibaba Cloud telah dibuat.

    Untuk informasi lebih lanjut, lihat Buat kluster Elasticsearch Alibaba Cloud.

  • Versi kernel kluster Elasticsearch ditingkatkan sesuai kebutuhan bisnis Anda.

    • Versi kernel kluster Elasticsearch ditingkatkan ke V1.5.0 atau lebih baru untuk menggunakan fitur kompresi indeks.

    • Versi kernel kluster Elasticsearch ditingkatkan ke V1.6.0 atau lebih baru untuk menggunakan kedua fitur kompresi indeks dan source_reuse_doc_values.

    Untuk informasi lebih lanjut tentang cara meningkatkan versi kernel kluster Elasticsearch, lihat Tingkatkan versi kluster.

  • Plug-in aliyun-codec telah diinstal untuk kluster Elasticsearch. Secara default, plug-in aliyun-codec diinstal untuk kluster Elasticsearch V7.10.0.

    Anda dapat memeriksa apakah plug-in telah diinstal melalui halaman Plug-in di konsol Elasticsearch. Jika belum diinstal, instal terlebih dahulu. Untuk informasi lebih lanjut, lihat Instal dan hapus plug-in bawaan.

Batasan

  • Hanya kluster Elasticsearch V7.10.0 Alibaba Cloud dengan versi kernel V1.5.0 atau lebih baru yang mendukung fitur kompresi indeks dari plug-in aliyun-codec. Jika Anda menggunakan kluster Elasticsearch V6.7.0 Alibaba Cloud, hanya plug-in codec-compression yang dapat digunakan untuk kompresi. Untuk informasi lebih lanjut, lihat Gunakan plug-in codec-compression versi beta.

  • Hanya kluster Elasticsearch V7.10.0 Alibaba Cloud dengan versi kernel V1.6.0 atau lebih baru yang mendukung fitur source_reuse_doc_values dari plug-in aliyun-codec. Secara default, fitur kompresi indeks diaktifkan dalam template indeks default aliyun_default_index_template dari kluster tersebut. Ini menunjukkan bahwa index.codec dalam template indeks default dari kluster tersebut disetel ke true.

Gunakan fitur kompresi indeks

  1. Masuk ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai petunjuk.

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

    null

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

  2. Di pojok kanan atas halaman yang muncul, klik Dev tools.

  3. Pada tab Console, jalankan perintah untuk mengaktifkan kompresi indeks.

    Sebagai contoh, Anda dapat menjalankan perintah berikut untuk mengaktifkan kompresi indeks untuk indeks bernama test yang sudah ada:

    PUT test/_settings
    {
      "index.codec" : "ali"
    }

    Secara default, setelah kompresi indeks diaktifkan untuk indeks tersebut, sistem menggunakan algoritma kompresi zstd untuk mengompres dokumen berorientasi baris, kolom, dan terbalik dalam indeks.

    Anda juga dapat menggunakan algoritma kompresi lain untuk mengompres jenis dokumen tertentu dalam indeks. Kode berikut memberikan contoh tentang cara menggunakan algoritma zstd untuk mengompres dokumen berorientasi baris dan kolom, tetapi tidak mengaktifkan kompresi indeks untuk dokumen terbalik dalam indeks test.

    null

    Jika Anda ingin menonaktifkan kompresi indeks untuk jenis indeks tertentu, Anda dapat menyetel parameter terkait ke "". Sebagai contoh, parameter index.postings.compression disetel ke "" dalam kode berikut.

    PUT test/_settings
    {
      "index.codec":"ali",
      "index.doc_value.compression.default":"zstd",
      "index.postings.compression":"",
      "index.source.compression":"zstd"
    }

    Tabel berikut menjelaskan parameter terkait kompresi indeks.

    Parameter

    Deskripsi Nilai

    index.doc_value.compression.default

    • lz4: menunjukkan bahwa algoritma kompresi Iz4 digunakan untuk mengompres dokumen berorientasi kolom.

    • zstd: menunjukkan bahwa algoritma kompresi zstd digunakan untuk mengompres dokumen berorientasi kolom.

    null

    Plug-in aliyun-codec hanya dapat mengompres dokumen berorientasi kolom yang berisi bidang bertipe number, date, keyword, dan ip.

    index.postings.compression

    zstd: menunjukkan bahwa algoritma kompresi zstd digunakan untuk mengompres dokumen terbalik.

    index.source.compression

    • zstd: menunjukkan bahwa algoritma kompresi zstd digunakan untuk mengompres dokumen berorientasi baris. Ukuran blok adalah 128 KB.

    • zstd_1024: menunjukkan bahwa algoritma kompresi zstd digunakan untuk mengompres dokumen berorientasi baris. Ukuran blok adalah 1024 KB.

    • zstd_dict: menunjukkan bahwa algoritma kompresi zstd digunakan untuk mengompres dokumen berorientasi baris dan fitur dict digunakan untuk menyimpan data dalam dokumen. zstd_dict memberikan rasio kompresi yang lebih tinggi tetapi performa baca dan tulis yang lebih rendah dibandingkan zstd.

    • best_compression: menunjukkan bahwa algoritma kompresi best_compression yang disediakan oleh Elasticsearch sumber terbuka digunakan untuk mengompres dokumen berorientasi baris.

    • default: menunjukkan bahwa algoritma kompresi default yang disediakan oleh Elasticsearch sumber terbuka digunakan untuk mengompres dokumen berorientasi baris.

    index.postings.pfor.enabled

    Menentukan apakah akan mengoptimalkan encoding untuk dokumen terbalik. Nilai valid:

    • true

    • false

    Fitur ini disediakan oleh Elasticsearch sumber terbuka di versi 8.0. Fitur ini dapat mengurangi ruang penyimpanan sebesar 14,4% untuk bidang keyword, match_only_text, dan text serta mengurangi ukuran disk keseluruhan sebesar 3,5%. Kluster Elasticsearch Alibaba versi sebelumnya menyediakan fitur ini.

Gunakan fitur source_reuse_doc_values

Aktifkan fitur source_reuse_doc_values

Jalankan perintah berikut untuk mengaktifkan fitur source_reuse_doc_values saat membuat indeks:

PUT test
{
  "settings": {
    "index": {
      "ali_codec_service": {
        "source_reuse_doc_values": {
          "enabled": true
        }
      }
    }
  }
}
null

Anda hanya dapat mengaktifkan fitur source_reuse_doc_values saat membuat indeks. Fitur ini tidak dapat dinonaktifkan setelah diaktifkan.

Ubah konfigurasi terkait fitur source_reuse_doc_values

null

Lapisan bawah Elasticsearch sumber terbuka menyimpan beberapa salinan data. Misalnya, data disimpan di _source, dokumen terbalik, dan doc_values secara bersamaan. Fitur source_reuse_doc_values memangkas data JSON yang disimpan di _source untuk mengurangi ukuran indeks keseluruhan.

Setelah mengaktifkan fitur source_reuse_doc_values, Anda dapat mengubah konfigurasi terkait fitur ini berdasarkan kebutuhan bisnis Anda.

  • Ubah ambang batas untuk jumlah bidang tempat fitur source_reuse_doc_values dapat berlaku.

    Jika jumlah bidang tempat fitur source_reuse_doc_values berlaku melebihi ambang batas yang ditentukan, Elasticsearch melaporkan kesalahan atau menonaktifkan fitur source_reuse_doc_values. Ambang batas default adalah 50. Anda dapat menjalankan perintah berikut untuk mengubah ambang batas:

    PUT _cluster/settings
    {
      "persistent": {
           "apack.ali_codec_service.source_reuse_doc_values.max_fields": 100
      }
    }
  • Tentukan apakah jumlah bidang tempat fitur source_reuse_doc_values berlaku harus kurang dari atau sama dengan ambang batas yang ditentukan.

    • true: Jika jumlah bidang tempat fitur source_reuse_doc_values berlaku melebihi ambang batas yang ditentukan, Elasticsearch melaporkan kesalahan.

    • false: Jika jumlah bidang tempat fitur source_reuse_doc_values berlaku melebihi ambang batas yang ditentukan, Elasticsearch menonaktifkan fitur source_reuse_doc_values.

    PUT _cluster/settings
    {
      "persistent": {
           "apack.ali_codec_service.source_reuse_doc_values.strict_max_fields": true
      }
    }
  • Ubah jumlah thread konkuren yang digunakan untuk membaca nilai bidang tempat fitur source_reuse_doc_values berlaku.

    Saat membaca data dari dokumen, sistem menggunakan thread konkuren untuk membaca nilai bidang tempat fitur source_reuse_doc_values berlaku dalam dokumen dan menggabungkan nilai-nilai tersebut. Untuk mengurangi biaya waktu, Anda dapat mengubah jumlah thread konkuren yang digunakan untuk membaca nilai bidang tempat fitur source_reuse_doc_values berlaku. Jumlah default thread konkuren adalah 5. Anda dapat menjalankan perintah berikut untuk mengubah jumlah:

    PUT test/_settings
    {
      "index": {
        "ali_codec_service": {
          "source_reuse_doc_values": {
            "fetch_slice": 2
          }
        }
      }
    }
  • Ubah ukuran thread pool dan antrian yang digunakan untuk membaca nilai bidang tempat fitur source_reuse_doc_values berlaku.

    Ukuran default thread pool sama dengan jumlah total vCPU node data dalam kluster. Ukuran default antrian adalah 1.000. Anda hanya dapat mengubah dua konfigurasi ini dengan mengubah file konfigurasi YML kluster Anda. Untuk informasi lebih lanjut tentang cara mengubah file konfigurasi YML, lihat Konfigurasikan file YML. Anda dapat menambahkan informasi konfigurasi berikut ke file konfigurasi YML kluster Anda untuk mengubah konfigurasi:

    apack.doc_values_fetch:
        size: 8
        queue_size: 1000