Saltar al contenido

¿Para qué son los alias en elasticsearch?

Solución:

Los alias son como enlaces suaves o accesos directos a índices reales.

la ventaja es poder tener un alias que apunte a index1a mientras se construye o reindexa en index2b y el momento de intercambiarlos es atómico gracias al alias, al que todo código debe apuntar

Cambiar el nombre de un alias es una operación simple de eliminar y agregar dentro de la misma API. Esta operación es atómica, no hay necesidad de preocuparse por un corto período de tiempo en el que el alias no apunta a un índice:

[EDIT] como se señaló, los alias de @wholevinski tienen otras funcionalidades como:

Se pueden especificar varios índices para una acción …

toda la información está en la página que ha vinculado

[EDIT2] más sobre por qué la necesidad / beneficio de la atomicidad

la clave es “tiempo de inactividad cero” https://en.wikipedia.org/wiki/Zero_unscheduled_downtime o https://en.wikipedia.org/wiki/High_availability

https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html

Hablaremos más sobre los otros usos de los alias más adelante en el libro. Por ahora, explicaremos cómo usarlos para cambiar de un índice antiguo a un índice nuevo sin tiempo de inactividad.

@arhak cubrió el tema bastante bien. Un caso de uso que (al menos) me hizo comprender el valor de los índices fue la necesidad de eliminar documentos obsoletos y, más específicamente, cuando se utilizan índices basados ​​en el tiempo.

Por ejemplo, debe conservar los registros de una aplicación durante al menos un año. Decide utilizar índices basados ​​en el tiempo, lo que significa que guarda en índices con el siguiente formato: 2018-02-logs, 2018-03-logs etc. Para poder buscar en todos los índices se crea el siguiente alias:

POST /_aliases
{
 "actions": [{ 
     "add": {
          "alias": "current-logs", "indices": [ "2018-02-logs","2018-03-logs" ]
        }  
  }]
}

Y consulta como:

GET /current-logs/_search

Otra ventaja es que puede eliminar los valores desactualizados muy fácilmente:

POST /_aliases
{
  "actions": [

      { "remove": { "alias": "current-logs",  "index": "logs_2018-01" }}
  ]
}

y DELETE /logs_2018-01

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *