Una de las funciones básicas pero muy útiles de Elasticsearch: los alias

0, título

Este artículo es el primero de una serie. Introduzca algunos puntos técnicos muy básicos pero muy útiles de Elasticsearch. Comprender estos puntos técnicos lo ayudará a diseñar un índice de datos más fácil de mantener, conocer de antemano los pozos en la batalla real del índice de big data a nivel de PB y mejorar la eficiencia del trabajo.

Este artículo proporciona una interpretación detallada de cinco aspectos: clasificación de alias, práctica de alias de índice, beneficios del alias de índice, problemas comunes de interpretación y alias de índice y práctica de alias de campo.

1. Clasificación de alias

Hay dos categorías de alias en Elasticsearch.

1.1 Alias ​​de índice

Interpretación oficial: los alias de índice pueden apuntar a uno o más índices y pueden usarse en cualquier API que requiera nombres de índice. Los alias nos proporcionan una gran flexibilidad. Nos permiten hacer lo siguiente:

1) Cambie de forma transparente entre un índice y otro índice en el clúster en ejecución;

2) Agrupar y combinar varios índices (por ejemplo, el alias de índice de lastthreemonths: es la combinación de logstash201903, logstash201904, logstash_201905 en los últimos 3 meses);

3) Cree "vistas" en el subconjunto de documentos en el índice (combinado con escenarios comerciales, mejorará la eficiencia de recuperación).

Explicación popular: los alias de índice son similares: accesos directos de Windows, enlaces suaves de Linux, vistas de MySQL.

  • Requisito previo: Después de que Elasitcsearch crea un índice, el nombre del índice no se puede cambiar. En muchos escenarios comerciales, es posible que un solo índice no cumpla con los requisitos.

  • Escenario 1: Los datos incrementales de nivel PB, realizados con la ayuda de la api de rollover, consisten en n índices basados ​​en la fecha. Obviamente, es muy conveniente usar alias para servicios externos.

  • Escenario 2: Imagine que hay un problema con un índice de servicios en línea. Por ejemplo, la definición de un determinado campo no es precisa. Cómo asegurarse de que el servicio externo no se detenga (sin cambiar el código comercial) y reemplazar el índice. Obviamente, el alias es más adecuado .

Nota: ¡El uso de alias en escenarios comerciales reales será muy conveniente, flexible, rápido y con una combinación flexible! !

1.2 Alias ​​de campo

El tipo de campo solo está disponible en la versión 6.4+ definida por Elasticsearch Mapping.

Explicación popular:

Imagínese un escenario empresarial. Por ejemplo, en el desarrollo empresarial real: es necesario recopilar Facebook y Twitter, y la recopilación y el almacenamiento son dos equipos comerciales.

Usaron dos campos para el contenido. Uno de ellos está contento. El otro es cont. En este momento, habrá dos campos almacenados en elasticsearch.

Entonces, si estamos buscando y escribiendo código comercial, ¿deberíamos escribir dos campos diferentes para su procesamiento? Si es posible escribirlo como un campo, el código evitará el acoplamiento empresarial, lo cual es muy conveniente.

Creo que este es el origen de los alias de campo.

2. Práctica de alias de índice

2.1 Suponiendo que no hay un alias, ¿cómo lidiar con la recuperación de múltiples índices?

  • Método 1: búsqueda separada por comas de varios índices.
POST visitor_logs_2017,visitor_logs_2018/_search
  • Método 2: búsqueda de índice comodín.
POST visitor_logs_*/_search

2.2 Con el alias, la operación se vuelve simple

En combate real, no necesitamos saber el nombre de índice real de la operación.Podemos cambiar de manera transparente el índice al que hace referencia el alias sin afectar a los usuarios que usan el alias.

  • Paso 1: el alias se asocia con el índice existente.
POST /_aliases?pretty
{
  "actions": [
    {
      "add": {
        "index": "visitor_logs_2017",
        "alias": "visitor_logs"
      }
    },
    {
      "add": {
        "index": "visitor_logs_2018",
        "alias": "visitor_logs"
      }
    }
  ]
}
  • Paso 2: utiliza la búsqueda de alias
GET /visitor_logs/_search

3. Los beneficios de los alias de índice

3.1 Gestión de grandes volúmenes de datos

Escenario: en un combate real, es posible que se requiera una estrategia de retención de datos basada en el tiempo (implementada mediante el mecanismo de transferencia) y se pueden eliminar los datos antiguos del sistema. Utilice alias de índice:

  • Beneficio 1: Simplificar el proceso de eliminación de datos de Elasticsearch.

  • Beneficio 2: Elimine los datos más antiguos de Elasticsearch sin tiempo de inactividad, sin interrupción de consultas y sin cambios de cliente.

El mecanismo de implementación basado en el índice de tiempo es el siguiente:
Una de las funciones básicas pero muy útiles de Elasticsearch: los alias
Lectura recomendada:

Solo piénselo: si usa un índice grande en lugar de un índice basado en el tiempo, ¿qué sucede si elimina los datos históricos?

responder:

  • 1. Eliminar datos de índice solo se puede utilizar: deletebyquery, en comparación con eliminar índices, deletebyquery elimina datos solo de forma lógica;

  • 2. La eliminación real es en realidad la eliminación física del segmento después de fusionar el segmento, es decir, después de eliminar por consulta, el espacio en disco no disminuye sino que aumenta durante un período de tiempo. La eficiencia de recuperación en este momento será muy baja.

3.2 Reconstruir índice sin percepción del usuario

En combate real, el diseño del índice puede no estar en su lugar en un solo paso. A medida que el negocio se expande, la estructura de mapeo de índices puede ajustarse en las etapas intermedia y tardía del desarrollo, como:

  • 1) Cambie la segmentación de palabras de iksmart a ikmax_word para una segmentación de palabras eficiente,

  • 2) Cambie el tipo largo a palabra clave para mejorar la eficiencia de recuperación,

  • 3) Modificar el número de fragmentos de índice para facilitar la expansión horizontal de la máquina.

  • 4) El índice se divide en índices de grano más pequeño para mejorar el rendimiento.

La práctica habitual requiere la ayuda de: operación de reindexación para completar la migración del índice. Si desea asegurar el funcionamiento confiable del entorno en línea y el desconocimiento del usuario (es decir, no es necesario informar al usuario y el negocio del usuario no se ve afectado), usar un alias para señalar el índice antes y después del cambio es una excelente solución.

Ejemplos prácticos:

POST /_aliases?pretty
{
  "actions": [
    {
      "remove": {
        "index": "visitor_logs_2018",
        "alias": "visitor_logs"
      }
    },
    {
      "add": {
        "index": "visitor_logs_2018_01",
        "alias": "visitor_logs"
      }
    }
  ]
}

Imagínese, ¿qué pasa si no hay un alias de índice?

responder:

  • 1. No se puede garantizar la continuidad de la consulta;

  • 2. No se puede garantizar la confiabilidad de la consulta comercial en línea (los usuarios deben ser notificados de que la actividad comercial se interrumpirá durante un período de tiempo).

4. Problemas habituales e interpretación de los alias de índices

Pregunta 1: ¿Puede la inserción masiva ES utilizar inserción de alias?

Reportará un error:

no se define ningún índice de escritura para el alias [xxx] ....

Nota: Los alias de índice no son universales. Al escribir o actualizar datos, debe especificar el índice físico y no escribir datos en el alias.

Pregunta 2: ¿Cómo obtiene ES toda la información de alias?

O pregunta: ¿Cómo encontrar el nombre de índice real por alias de índice?

GET _cat/aliases

mensajes devueltos:

visitor_logs visitor_logs_2017 - - -
.kibana      .kibana_1         - - -
visitor_logs visitor_logs_2018 - - 
`

Pregunta 3: ¿Es el uso de alias lo mismo que la eficiencia basada en índices?

Es consistente.

Requisito previo: el índice y el alias apuntan a los mismos datos y las mismas condiciones de búsqueda.

Principio: El alias de índice es solo el nombre del enlace flexible del índice físico.

Pregunta 4: ¿Cómo usar alias para mejorar la eficiencia de recuperación?

  • Método 1: cree un índice basado en el tiempo y especifique varios alias de índice. Por ejemplo, se divide en: alias de índice en el último año, alias de índice en los últimos 3 meses, alias de índice en el último mes, alias de índice en la última semana y alias de índice en los últimos 3 días. Al buscar, primero determine el rango de tiempo y luego busque bajo el alias del rango especificado.

Principio básico: la separación física basada en el tiempo, junto con un mecanismo para separar los datos fríos y calientes, reducirá en gran medida la muestra de búsqueda.

  • Método 2: utilice un mecanismo de alias de filtro o alias de enrutamiento para mejorar la eficiencia. El código del filtro Alias ​​se pasa por alto fácilmente en los negocios reales, pero mejorará enormemente la eficiencia.
POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "test1",
                 "alias" : "alias2",
                 "filter" : { "term" : { "user" : "kimchy" } }
            }
        }
    ]
}

El mecanismo de enrutamiento puede referirse al documento oficial.

5. Practica los alias de campo

Pregunta de los amigos estrella:

"Aliasdatatype, ¿cuál es el escenario de uso de este tipo de datos en el trabajo real? Mira el documento oficial, ¿no lo entiendes bien?"

La primera parte del principio de alias de campo se ha explicado en detalle y no se repetirá. Practique aquí para profundizar su comprensión.

PUT trips
{
  "mappings": {
    "_doc": {
      "properties": {
        "distance": {
          "type": "long"
        },
        "route_length_miles": {
          "type": "alias",
          "path": "distance"
        },
        "transit_mode": {
          "type": "keyword"
        }
      }
    }
  }
}

Nota: Cuando los usuarios utilizan la búsqueda, pueden utilizar el campo routelengthmile en lugar de la distancia de búsqueda para lograr el mismo efecto que la distancia.

6. Resumen

  • En el combate real, la belleza de los alias de índice generalmente se descubre en las etapas media y tardía del desarrollo. Como se analiza en el artículo: 1. Gestión eficiente de índices 2. Los usuarios no perciben la modificación y actualización de los datos de mantenimiento.

  • Sugerencia: Los índices físicos con el mismo alias de índice tienen una estructura de datos y mapeo coherente para mejorar la eficiencia de recuperación.

  • Nota: Para aprovechar los alias de índice en la recuperación, se deben utilizar índices físicos al escribir y actualizar.

En su escenario empresarial actual de Elasticsearch, ¿cuáles son los puntos técnicos básicos pero útiles para el desarrollo real? Bienvenido a dejar un mensaje y dejar sus pensamientos, ¡trabajemos duro juntos!

referencia:

https://cambium.consulting/articles/2018/2/22/our-favorite-elasticsearch-features-part-2-index-aliases

Lectura recomendada:

Heavy | Hoja de ruta de aprendizaje de Elasticsearch7.X

Elasticsearch 7.0 se lanza oficialmente, ¡déjalo ir!

Productos secos | Elasticsearch 7.1 seguridad gratuita incluye conciencia panorámica

Una de las funciones básicas pero muy útiles de Elasticsearch: los alias

¡Únase al planeta y aprenda más productos secos en menos tiempo y más rápido!

Supongo que te gusta

Origin blog.51cto.com/15050720/2562063
Recomendado
Clasificación