Introducció

Les plantilles d'índex a Elasticsearch permeten definir configuracions predeterminades per a nous índexs. Això és especialment útil per assegurar que tots els índexs creats segueixin un conjunt de regles i configuracions consistents, com ara mappings, configuracions d'anàlisi, i configuracions de settings.

Conceptes Clau

Què és una Plantilla d'Índex?

Una plantilla d'índex és una configuració predefinida que s'aplica automàticament a nous índexs que coincideixen amb un patró de nom especificat. Les plantilles poden incloure mappings, settings, i configuracions d'anàlisi.

Components d'una Plantilla d'Índex

  1. Patterns (Patrons): Defineixen els noms dels índexs als quals s'aplicarà la plantilla.
  2. Settings (Configuracions): Inclouen configuracions com el nombre de shards i rèpliques.
  3. Mappings (Mapeig): Defineixen l'estructura dels documents dins de l'índex.
  4. Aliases (Àlies): Permeten definir àlies per als índexs.

Creant una Plantilla d'Índex

Exemples Pràctics

Exemple 1: Plantilla Bàsica

PUT _template/my_template
{
  "index_patterns": ["log-*"],
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "properties": {
      "timestamp": {
        "type": "date"
      },
      "message": {
        "type": "text"
      }
    }
  }
}

Explicació:

  • index_patterns: Aquesta plantilla s'aplicarà a tots els índexs que comencin amb "log-".
  • settings: Defineix que cada índex tindrà un shard.
  • mappings: Defineix que els documents tindran un camp timestamp de tipus date i un camp message de tipus text.

Exemple 2: Plantilla amb Àlies

PUT _template/my_template_with_alias
{
  "index_patterns": ["data-*"],
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  },
  "mappings": {
    "properties": {
      "user": {
        "type": "keyword"
      },
      "post_date": {
        "type": "date"
      },
      "message": {
        "type": "text"
      }
    }
  },
  "aliases": {
    "current_data": {}
  }
}

Explicació:

  • index_patterns: Aquesta plantilla s'aplicarà a tots els índexs que comencin amb "data-".
  • settings: Defineix que cada índex tindrà 3 shards i 2 rèpliques.
  • mappings: Defineix que els documents tindran camps user de tipus keyword, post_date de tipus date, i message de tipus text.
  • aliases: Assigna l'àlies current_data a tots els índexs que coincideixin amb el patró.

Exercicis Pràctics

Exercici 1: Crear una Plantilla d'Índex

Objectiu: Crear una plantilla d'índex que s'apliqui a tots els índexs que comencin amb "app-".

Requisits:

  • Els índexs han de tenir 2 shards i 1 rèplica.
  • Els documents han de tenir un camp user_id de tipus keyword i un camp created_at de tipus date.

Solució:

PUT _template/app_template
{
  "index_patterns": ["app-*"],
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "user_id": {
        "type": "keyword"
      },
      "created_at": {
        "type": "date"
      }
    }
  }
}

Exercici 2: Afegir un Àlies a una Plantilla d'Índex

Objectiu: Modificar la plantilla anterior per afegir un àlies app_data.

Solució:

PUT _template/app_template_with_alias
{
  "index_patterns": ["app-*"],
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "user_id": {
        "type": "keyword"
      },
      "created_at": {
        "type": "date"
      }
    }
  },
  "aliases": {
    "app_data": {}
  }
}

Errors Comuns i Consells

Errors Comuns

  1. Patrons Incorrectes: Assegura't que els patrons de nom d'índex siguin correctes i no massa restrictius.
  2. Configuracions Incompatibles: Verifica que les configuracions de shards i rèpliques siguin adequades per al teu clúster.

Consells

  • Utilitza Àlies: Els àlies són molt útils per gestionar índexs de manera més flexible.
  • Prova les Plantilles: Abans d'implementar una plantilla en producció, prova-la en un entorn de desenvolupament.

Conclusió

Les plantilles d'índex són una eina poderosa per assegurar la consistència i l'eficiència en la creació de nous índexs a Elasticsearch. Amb una comprensió clara dels components i la sintaxi, pots crear plantilles que simplifiquin la gestió dels teus índexs i millorin el rendiment del teu clúster.

En el següent tema, explorarem els àlies i la reindexació, que et permetran gestionar els teus índexs de manera més dinàmica i flexible.

© Copyright 2024. Tots els drets reservats