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.0ou ultérieure, et la fonctionnalitésource_reuse_doc_valuesrequiert une version du noyau1.6.0ou 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_valuesest 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 |
* |
|
index.postings.compression |
|
|
index.source.compression |
Spécifie l'algorithme de compression pour les fichiers orientés ligne (source). Valeurs valides : * |
|
index.postings.pfor.enabled |
Active l'optimisation de l'encodage pour les postings de l'index inversé. Les valeurs valides sont |
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_valuessi 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