すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:aliyun-codec プラグインの使用

最終更新日:Aug 23, 2026

aliyun-codec プラグインは、Elasticsearch の行指向 (source)、列指向 (doc values)、および転置 (ポスティング) ファイルを圧縮し、source_reuse_doc_values 機能をサポートします。ロギングや時系列分析など、書き込み量が多く、インデックスのストレージコストが高いシナリオに最適です。

注意事項

  • 使用する前にプラグインをインストールしてください。詳細については、「組み込みプラグインのインストールまたはアンインストール」をご参照ください。

  • aliyun-codec プラグインは、Elasticsearch 7.10.0 インスタンスでのみサポートされています。

  • インデックス圧縮機能にはカーネルバージョン 1.5.0 以降が、source_reuse_doc_values 機能にはカーネルバージョン 1.6.0 以降が必要です。現在のカーネルバージョンがこれらの要件を満たしていない場合は、まず カーネルをアップグレード する必要があります。

パフォーマンスの参考

以下のパフォーマンスデータは、特定のテスト環境で記録されたものであり、参考用です。

テスト環境:サイズ 1.2 TB、22 シャードの単一インデックス。行指向、列指向、転置の圧縮を有効にしており、すべて zstd 圧縮アルゴリズムを使用しています。データセットは、Alibaba Cloud Elasticsearch の本番ログです。

インデックス圧縮:インデックス圧縮がないクラスターと比較して:

  • 書き込みスループット:変更なし。

  • インデックス全体のサイズ:40% 削減。

  • I/O 集中型のクエリシナリオでのレイテンシー:50% 削減。

source_reuse_doc_values :この機能を有効にしていないクラスターと比較して:

  • 書き込みスループット:変更なし。

  • インデックス全体のサイズ:最大 40% 削減。削減率は、インデックス内で source_reuse_doc_values 機能が有効なフィールドの割合によって異なります。

  • I/O 集中型のクエリシナリオでのレイテンシー:機能が有効なフィールドの割合やノードのディスクタイプなどの要因によって異なります。

インデックス圧縮機能の使用

index.codec 設定は静的です。この設定を変更する前にインデックスを閉じ、変更後に再度開く必要があります。

たとえば、test という名前のインデックスの圧縮を有効にするには、次のコマンドを実行します。

POST test/_close

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

POST test/_open

この設定により、Elasticsearch はデフォルトで zstd アルゴリズムを使用して、インデックスの行指向 (source)、列指向 (doc values)、および転置 (ポスティング) ファイルを圧縮します。

特定のファイルタイプに圧縮アルゴリズムを指定することもできます。次の例では、転置ファイルの圧縮を無効にし、行指向ファイルと列指向ファイルには zstd アルゴリズムを使用します。ファイルタイプの圧縮を無効にするには、対応するパラメーターを "" に設定します。

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

次の表に、インデックス設定パラメーターを示します。

パラメーター

説明

index.doc_value.compression.default

* lz4 :列指向 (doc values) ファイルに lz4 圧縮アルゴリズムを使用します。* zstd :列指向 (doc values) ファイルに zstd 圧縮アルゴリズムを使用します。現在、圧縮は numberdatekeywordip 型のフィールドの doc values ファイルにのみ適用されます。

index.postings.compression

zstd :転置 (ポスティング) ファイルに zstd 圧縮アルゴリズムを使用します。

index.source.compression

行指向 (source) ファイルの圧縮アルゴリズムを指定します。有効な値:* zstd :128 KB のブロックサイズで zstd アルゴリズムを使用します。* zstd_1024 :1024 KB のブロックサイズで zstd アルゴリズムを使用します。* zstd_dict :辞書付きの zstd アルゴリズムを使用します。これは zstd よりも高い圧縮率を実現しますが、読み書きのパフォーマンスは低下します。* best_compression :Elasticsearch ネイティブの source 圧縮アルゴリズムを使用します。* default :Elasticsearch ネイティブの source 圧縮アルゴリズムを使用します。

index.postings.pfor.enabled

転置インデックスのポスティングのエンコーディング最適化を有効にします。有効な値は true (有効) と false (無効) です。この機能は ES 8.0 のネイティブ機能として 利用可能です。これにより、keywordmatch_only_texttext フィールドのストレージを 14.4%、ディスク容量全体を 3.5% 節約できます。

source_reuse_doc_values 機能の使用

Elasticsearch は、_source、転置インデックス、および doc_values にデータの複数のコピーを格納します。source_reuse_doc_values 機能は、doc_values に既に存在するデータを _source から削除することで、インデックスサイズを削減します。

source_reuse_doc_values 機能の有効化

source_reuse_doc_values 機能は、インデックス作成時にのみ有効にでき、後で無効にすることはできません。

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

source_reuse_doc_values 設定の調整

source_reuse_doc_values 機能を有効にした後、次の設定を調整できます。

最大フィールド数の調整

source_reuse_doc_values が有効なフィールドの数が指定の値を超えると、Elasticsearch は例外をスローするか、この機能を自動的に無効にします。デフォルト値は 50 です。

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

最大フィールド制限を適用するかどうかの設定

  • true :制限を超えた場合、Elasticsearch は例外をスローします。

  • false :制限を超えた場合、Elasticsearch は source_reuse_doc_values 機能を自動的に無効にします。

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

フィールド値の読み取りの同時実行数の調整

元のドキュメントを取得する際、この機能は有効なフィールドから値を同時に読み取って組み立てます。デフォルトの同時実行数は 5 です。

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

スレッドプールとキューサイズの調整

デフォルトでは、スレッドプールのサイズはノードのコア数と同じで、キューサイズは 1000 です。これらの設定は、YML ファイルを変更することによってのみ変更できます。手順については、「YML パラメーターの設定」をご参照ください。

apack.doc_values_fetch:
size: 8
queue_size: 1000