All Products
Search
Document Center

Elasticsearch:Gunakan Plugin aliyun-codec

Last Updated:Aug 23, 2026

Plugin aliyun-codec mengompresi file Elasticsearch berorientasi baris (source), berorientasi kolom (doc values), dan terbalik (postings), serta mendukung fitur source_reuse_doc_values. Plugin ini ideal untuk skenario dengan volume penulisan tinggi dan biaya penyimpanan indeks besar, seperti pencatatan log (logging) dan analisis deret waktu (time series).

Catatan penggunaan

  • Instal plugin sebelum menggunakannya. Untuk informasi lebih lanjut, lihat Instal atau uninstal plugin bawaan.

  • Plugin aliyun-codec hanya didukung pada instans Elasticsearch 7.10.0.

  • Fitur kompresi indeks memerlukan versi kernel 1.5.0 atau lebih baru, dan fitur source_reuse_doc_values memerlukan versi kernel 1.6.0 atau lebih baru. Jika versi kernel Anda saat ini tidak memenuhi persyaratan ini, Anda harus terlebih dahulu upgrade kernel.

Referensi kinerja

Data kinerja berikut direkam dalam lingkungan pengujian tertentu dan hanya bersifat referensi.

Lingkungan pengujian: Satu indeks berukuran 1,2 TB dengan 22 shard. Kompresi berorientasi baris, berorientasi kolom, dan terbalik diaktifkan, semuanya menggunakan algoritma kompresi zstd. Set data terdiri dari log produksi Alibaba Cloud Elasticsearch.

Kompresi indeks: Dibandingkan dengan kluster tanpa kompresi indeks:

  • Throughput penulisan: Tidak berubah.

  • Ukuran indeks keseluruhan: Berkurang 40%.

  • Latensi dalam skenario kueri intensif I/O: Berkurang 50%.

source_reuse_doc_values: Dibandingkan dengan kluster yang tidak mengaktifkan fitur ini:

  • Throughput penulisan: Tidak berubah.

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

  • Latensi dalam skenario kueri intensif I/O: Bergantung pada faktor-faktor seperti proporsi bidang yang mengaktifkan fitur tersebut dan tipe disk node.

Gunakan fitur kompresi indeks

Pengaturan index.codec bersifat statis. Anda harus menutup indeks sebelum mengubah pengaturan ini dan membukanya kembali setelahnya.

Sebagai contoh, untuk mengaktifkan kompresi pada indeks bernama test, jalankan perintah berikut:

POST test/_close

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

POST test/_open

Dengan konfigurasi ini, Elasticsearch secara default menggunakan algoritma zstd untuk mengompresi file berorientasi baris (source), berorientasi kolom (doc values), dan terbalik (postings) untuk indeks tersebut.

Anda juga dapat menentukan algoritma kompresi untuk tipe file tertentu. Contoh berikut menonaktifkan kompresi untuk file terbalik dan menggunakan algoritma zstd untuk file berorientasi baris dan berorientasi kolom. Untuk menonaktifkan kompresi pada tipe file tertentu, atur parameter yang sesuai menjadi "".

POST test/_close

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

POST test/_open

Tabel berikut mencantumkan parameter konfigurasi indeks.

Parameter

Deskripsi

index.doc_value.compression.default

* lz4: Menggunakan algoritma kompresi lz4 untuk file berorientasi kolom (doc values). * zstd: Menggunakan algoritma kompresi zstd untuk file berorientasi kolom (doc values). Saat ini, kompresi hanya diterapkan pada file doc values untuk bidang bertipe number, date, keyword, dan ip.

index.postings.compression

zstd: Menggunakan algoritma kompresi zstd untuk file terbalik (postings).

index.source.compression

Menentukan algoritma kompresi untuk file berorientasi baris (source). Nilai yang valid: * zstd: Menggunakan algoritma zstd dengan ukuran blok 128 KB. * zstd_1024: Menggunakan algoritma zstd dengan ukuran blok 1024 KB. * zstd_dict: Menggunakan algoritma zstd dengan kamus (dictionary). Ini memberikan rasio kompresi lebih tinggi daripada zstd, tetapi dengan kinerja baca/tulis yang lebih rendah. * best_compression: Menggunakan algoritma kompresi source bawaan Elasticsearch. * default: Menggunakan algoritma kompresi source bawaan Elasticsearch.

index.postings.pfor.enabled

Mengaktifkan optimasi pengkodean untuk postings indeks terbalik. Nilai yang valid adalah true (diaktifkan) dan false (dinonaktifkan). Fitur ini tersedia di ES 8.0 bawaan. Fitur ini dapat menghemat 14,4% ruang penyimpanan untuk bidang keyword, match_only_text, dan text, serta 3,5% dari total disk space.

Gunakan fitur source_reuse_doc_values

Elasticsearch menyimpan beberapa salinan data di _source, indeks terbalik, dan doc_values. Fitur source_reuse_doc_values mengurangi ukuran indeks dengan menghapus data dari _source yang sudah ada di doc_values.

Aktifkan fitur source_reuse_doc_values

Fitur source_reuse_doc_values hanya dapat diaktifkan saat pembuatan indeks dan tidak dapat dinonaktifkan setelahnya.

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

Sesuaikan pengaturan source_reuse_doc_values

Setelah Anda mengaktifkan fitur source_reuse_doc_values, Anda dapat menyesuaikan pengaturan berikut.

Sesuaikan jumlah maksimum bidang

Jika jumlah bidang yang mengaktifkan source_reuse_doc_values melebihi nilai yang ditentukan, Elasticsearch akan melemparkan pengecualian (exception) atau secara otomatis menonaktifkan fitur tersebut. Nilai default-nya adalah 50.

PUT _cluster/settings
{
  "persistent": {
       "apack.ali_codec_service.source_reuse_doc_values.max_fields": 100
  }
}

Tentukan apakah batas maksimum bidang diberlakukan secara ketat

  • true: Elasticsearch melemparkan pengecualian jika batas dilampaui.

  • false: Elasticsearch secara otomatis menonaktifkan fitur source_reuse_doc_values jika batas dilampaui.

PUT _cluster/settings
{
  "persistent": {
       "apack.ali_codec_service.source_reuse_doc_values.strict_max_fields": true
  }
}

Sesuaikan konkurensi saat membaca nilai bidang

Saat mengambil dokumen asli, fitur ini membaca dan menggabungkan nilai dari bidang tempat fitur diaktifkan secara konkuren. Konkurensi default-nya adalah 5.

PUT test/_settings
{
  "index": {
    "ali_codec_service": {
      "source_reuse_doc_values": {
        "fetch_slice": 2
      }
    }
  }
}

Sesuaikan ukuran kolam thread dan antrian

Secara default, ukuran kolam thread sama dengan jumlah core node, dan ukuran antrian adalah 1.000. Anda hanya dapat mengubah pengaturan ini dengan memodifikasi file YML. Untuk petunjuknya, lihat Konfigurasi parameter YML.

apack.doc_values_fetch:
size: 8
queue_size: 1000