Tous les produits
Search
Centre de documentation

Elasticsearch:Use the aliyun-codec plug-in

Dernière mise à jour :Aug 22, 2026

Le plug-in aliyun-codec compresse les fichiers orientés ligne (source), orientés colonne (doc values) et inversés (postings) d'Elasticsearch, et prend en charge la fonctionnalité source_reuse_doc_values. Il est idéal pour les scénarios impliquant des volumes d'écriture élevés et des coûts de stockage d'index importants, tels que la journalisation et l'analyse de séries temporelles.

Remarques sur l'utilisation

  • Installez le plug-in avant de l'utiliser. Pour plus d'informations, consultez la rubrique Installer ou désinstaller des plug-ins intégrés.

  • Le plug-in aliyun-codec est pris en charge uniquement sur les instances Elasticsearch 7.10.0.

  • La fonctionnalité de compression d'index nécessite une version du noyau 1.5.0 ou ultérieure, et la fonctionnalité source_reuse_doc_values requiert une version du noyau 1.6.0 ou ultérieure. Si votre version actuelle du noyau ne répond pas à ces exigences, vous devez d'abord mettre à niveau le noyau.

Référence des performances

Les données de performance suivantes ont été enregistrées dans un environnement de test spécifique et sont fournies à titre indicatif uniquement.

Environnement de test : Un index unique d'une taille de 1,2 TB avec 22 shards. La compression orientée ligne, orientée colonne et inversée est activée, toutes utilisant l'algorithme de compression zstd. L'ensemble de données est constitué de journaux de production Alibaba Cloud Elasticsearch.

Compression d'index : Par rapport à un cluster sans compression d'index :

  • Débit d'écriture : Inchangé.

  • Taille globale de l'index : Réduite de 40 %.

  • Latence dans les scénarios de requête à forte intensité d'E/S : Réduite de 50 %.

source_reuse_doc_values : Par rapport à un cluster sans cette fonctionnalité activée :

  • Débit d'écriture : Inchangé.

  • Taille globale de l'index : Réduite jusqu'à 40 %. Le pourcentage de réduction dépend de la proportion de champs pour lesquels la fonctionnalité source_reuse_doc_values est activée dans l'index.

  • Latence dans les scénarios de requête à forte intensité d'E/S : Dépend de facteurs tels que la proportion de champs pour lesquels la fonctionnalité est activée et le type de disque des nœuds.

Utiliser la fonctionnalité de compression d'index

Le paramètre index.codec est statique. Vous devez fermer l'index avant de modifier ce paramètre, puis le rouvrir ensuite.

Par exemple, pour activer la compression pour un index nommé test, exécutez les commandes suivantes :

POST test/_close

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

POST test/_open

Avec cette configuration, Elasticsearch utilise par défaut l'algorithme zstd pour compresser les fichiers orientés ligne (source), orientés colonne (doc values) et inversés (postings) de l'index.

Vous pouvez également spécifier un algorithme de compression pour un type de fichier spécifique. L'exemple suivant désactive la compression pour les fichiers inversés et utilise l'algorithme zstd pour les fichiers orientés ligne et orientés colonne. Pour désactiver la compression pour un type de fichier, définissez le paramètre correspondant sur "".

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

Le tableau suivant répertorie les paramètres de configuration de l'index.

Paramètre

Description

index.doc_value.compression.default

* lz4 : Utilise l'algorithme de compression lz4 pour les fichiers orientés colonne (doc values). * zstd : Utilise l'algorithme de compression zstd pour les fichiers orientés colonne (doc values). Actuellement, la compression s'applique uniquement aux fichiers doc values pour les champs de types number, date, keyword et ip.

index.postings.compression

zstd : Utilise l'algorithme de compression zstd pour les fichiers inversés (postings).

index.source.compression

Spécifie l'algorithme de compression pour les fichiers orientés ligne (source). Valeurs valides : * zstd : Utilise l'algorithme zstd avec une taille de bloc de 128 KB. * zstd_1024 : Utilise l'algorithme zstd avec une taille de bloc de 1024 KB. * zstd_dict : Utilise l'algorithme zstd avec un dictionnaire. Cela offre un taux de compression plus élevé que zstd, mais avec des performances de lecture et d'écriture inférieures. * best_compression : Utilise l'algorithme natif de compression source d'Elasticsearch. * default : Utilise l'algorithme natif de compression source d'Elasticsearch.

index.postings.pfor.enabled

Active l'optimisation de l'encodage pour les postings de l'index inversé. Les valeurs valides sont true (activé) et false (désactivé). Cette fonctionnalité est disponible dans ES 8.0 natif. Elle permet d'économiser 14,4 % de stockage pour les champs keyword, match_only_text et text, et 3,5 % d'espace disque total.

Utiliser la fonctionnalité source_reuse_doc_values

Elasticsearch stocke plusieurs copies des données dans _source, les index inversés et doc_values. La fonctionnalité source_reuse_doc_values réduit la taille de l'index en supprimant les données de _source qui sont déjà présentes dans doc_values.

Activer la fonctionnalité source_reuse_doc_values

La fonctionnalité source_reuse_doc_values ne peut être activée que lors de la création de l'index et ne peut pas être désactivée par la suite.

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

Ajuster les paramètres source_reuse_doc_values

Après avoir activé la fonctionnalité source_reuse_doc_values, vous pouvez ajuster les paramètres suivants.

Ajuster le nombre maximal de champs

Si le nombre de champs avec source_reuse_doc_values activé dépasse la valeur spécifiée, Elasticsearch lève soit une exception, soit désactive automatiquement la fonctionnalité. La valeur par défaut est 50.

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

Définir si la limite maximale de champs doit être appliquée strictement

  • true : Elasticsearch lève une exception si la limite est dépassée.

  • false : Elasticsearch désactive automatiquement la fonctionnalité source_reuse_doc_values si la limite est dépassée.

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

Ajuster la concurrence pour la lecture des valeurs de champ

Lors de la récupération d'un document original, cette fonctionnalité lit et assemble simultanément les valeurs des champs pour lesquels elle est activée. La concurrence par défaut est de 5.

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

Ajuster la taille du pool de threads et de la file d'attente

Par défaut, la taille du pool de threads est égale au nombre de cœurs du nœud, et la taille de la file d'attente est de 1000. Vous ne pouvez modifier ces paramètres qu'en modifiant le fichier YML. Pour obtenir des instructions, consultez la rubrique Configurer les paramètres YML.

apack.doc_values_fetch:
size: 8
queue_size: 1000