DBAtlas · Atlas d'exploitation des bases de données

Construire un template d'index à partir de component templates et simuler le résultat

ElasticsearchCycle de vie des index

Commande

PUT _component_template/app-mappings
{
  "template": {
    "mappings": {
      "dynamic": "strict",
      "properties": {
        "@timestamp": { "type": "date" },
        "level": { "type": "keyword" },
        "msg": { "type": "text" }
      }
    }
  }
}
PUT _index_template/app-events
{
  "index_patterns": ["app-events-*"],
  "priority": 500,
  "composed_of": ["app-mappings"],
  "template": { "settings": { "number_of_shards": 1, "refresh_interval": "5s" } }
}
# See the final settings and mapping before the index is created:
POST _index_template/_simulate_index/app-events-000001
GET _cat/templates?v&s=name

Ce que fait la commande

Définit un component template de mapping réutilisable, le compose dans un template d'index, et affiche les paramètres et le mapping finaux qui s'appliqueraient à un nom d'index donné sans créer l'index.

Quand l'utiliser

Quand de nouveaux index sont créés avec un mauvais mapping ou un mauvais nombre de shards (explosion du dynamic mapping, text au lieu de keyword), et avant de déployer une modification de template.

Attention

Un template ne s'applique qu'aux index nouvellement créés ; le mapping des index existants ne change pas (voir reindex-alias-swap). Si deux templates correspondent au même motif, seul celui de plus haute priorité est utilisé ; ils ne sont pas fusionnés. dynamic: strict rejette les documents contenant des champs non définis ; si l'application envoie un nouveau champ, l'indexation échoue.

Ouvrir dans DBAtlas →

Voir aussi