Índice de clon de Elasticsearch

Índice de clon de Elasticsearch

En esta publicación, aprenderemos cómo clonar un índice existente en un clúster Elasticsearch. Esto puede permitirle realizar modificaciones a un índice sin alterar el índice original. También le permite cambiar el nombre, indexar y transferir rápidamente los datos antiguos en un solo comando.

Vamos a sumergirnos.

Solicitar sintaxis

El siguiente fragmento muestra la sintaxis para la API del índice de clonos:

CORREO //_clon/
PONER //_clon/


La solicitud clama el índice en un nuevo índice donde cada uno de los fragmentos primarios originales se copia en un nuevo primario compartido en el nuevo índice.

Tenga en cuenta que ElasticSearch no clonará las plantillas de índice y los metadatos del índice al índice de clonos. Dichos metadatos incluyen alias, seguidores de CCR, etc.

Cómo funciona la clonación del índice

Elasticsearch realiza las siguientes acciones al clonar un índice:

    1. Elasticsearch crea un nuevo índice con definiciones similares que el índice de origen.
    2. El siguiente paso es retirarse los segmentos del índice de origen en el nuevo índice de clon.
    3. Lastlty, Elasticsearch recupera el índice de clonas como si se hubiera recuperado de un estado cerrado.

Condiciones para la clonación del índice

Las siguientes condiciones son necesarias para clonar un índice:

    1. Un índice con un nombre similar al objetivo no debe existir en el clúster.
    2. El índice de origen debe ser índice.
    3. El número de fragmentos de una fuente e índice de destino debe ser similar.
    4. El nodo en el que se realiza el proceso de clon debe tener suficiente espacio en disco para acomodar el nuevo índice.

Ilustración de ejemplo

Veamos un ejemplo sobre cómo usar la API de Elasticsearch Clone para clonar un índice existente.

Supongamos que tenemos un índice llamado "Netflix". Podemos crear un índice de clon con la solicitud como se muestra:

Podemos comenzar configurando el índice en solo lectura. Elasticsearch no clonará un índice en el modo de escritura:

curl -xput "http: // localhost: 9200/netflix/_block/read_only" -h "kbn -xsrf: informes"


Esto debería volver de la siguiente manera:


"Reconocido": Verdadero,
"Shards_acknowledged": verdadero,
"índices": [

"Nombre": "Netflix",
"Bloqueado": Verdadero

]


Finalmente, podemos clonar el índice como se muestra a continuación:

curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_copy" -h "kbn -xsrf: informes"


Ejecutar la solicitud anterior debe crear un clon del índice y devolver una salida como:


"Reconocido": Verdadero,
"Shards_acknowledged": verdadero,
"índice": "netflix_copy"


Si desea especificar la configuración del índice y los alias, puede ejecutar el siguiente comando como se muestra:

curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_cp" -h "kbn -xsrf: informes de contenido" -h ": aplicación/json" -d '

"ajustes":
"índice.número_of_shards ": 1,
"Number_of_replicas": 3
,
"Alias":
"netflix_alias":

'


Tenga en cuenta que el número de fragmentos del índice de clon debe ser similar al número de fragmentos del índice de origen.

Producción:


"Reconocido": Verdadero,
"Shards_acknowledged": verdadero,
"índice": "netflix_cp"


Nota: Elasticsearch devuelve un estado reconocido: verdadero estado inmediatamente. La solicitud no espera a que el proceso de clonación complete.

Conclusión

En esta publicación, discutimos los fundamentos de trabajar con la API de clonación Elasticsearch. Esto le permite crear una copia de un índice existente en su clúster.

Gracias por leer!