Index de clone Elasticsearch

Index de clone Elasticsearch

Dans cet article, nous apprendrons à cloner un index existant dans un cluster Elasticsearch. Cela peut vous permettre d'effectuer des modifications à un index sans modifier l'index d'origine. Il vous permet également de renommer, d'indexer et de transférer rapidement les anciennes données dans une seule commande.

Plongeons-nous dans.

Demander une syntaxe

L'extrait suivant montre la syntaxe de l'API d'index de clone:

POSTE //_cloner/
METTRE //_cloner/


La demande clones L'index dans un nouvel index où chacun des fragments primaires d'origine est copié dans un nouveau primaire partagé sur le nouvel index.

Gardez à l'esprit qu'Elasticsearch ne clonera pas les modèles d'index et les métadonnées d'index à l'indice de clone. Ces métadonnées comprennent des alias, des abonnés du CCR, etc.

Comment fonctionne le clonage d'index

Elasticsearch effectue les actions suivantes lors du clonage d'un index:

    1. Elasticsearch crée un nouvel index avec des définitions similaires à celle de l'index source.
    2. L'étape suivante consiste à rédiger dur les segments de l'indice source dans le nouvel index de clone.
    3. Lastlty, Elasticsearch récupère l'indice de clone comme s'il s'était remis d'un état fermé.

Conditions de clonage d'index

Les conditions suivantes sont nécessaires pour cloner un index:

    1. Un index avec un nom similaire à la cible ne doit pas exister dans le cluster.
    2. L'indice source doit être index.
    3. Le nombre d'éclats d'un indice source et cible doit être similaire.
    4. Le nœud sur lequel le processus de clone est effectué doit avoir suffisamment d'espace disque pour accueillir le nouvel index.

Exemple d'illustration

Examinons un exemple sur la façon d'utiliser l'API Elasticsearch Clone pour cloner un index existant.

Supposons que nous ayons un index appelé "Netflix". Nous pouvons créer un index de clone avec la demande comme indiqué:

Nous pouvons commencer par définir l'index de lecture seule. Elasticsearch ne clonera pas un index en mode écriture:

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


Cela devrait revenir comme suit:


"Reconnu": vrai,
"Shards_ackNowledged": vrai,
"Indices": [

"Nom": "Netflix",
"bloqué": vrai

]]


Enfin, nous pouvons cloner l'index comme indiqué dans ce qui suit:

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


L'exécution de la demande précédente doit créer un clone de l'index et renvoyer une sortie comme:


"Reconnu": vrai,
"Shards_ackNowledged": vrai,
"index": "netflix_copy"


Si vous souhaitez spécifier les paramètres d'index et les alias, vous pouvez exécuter la commande suivante comme indiqué:

curl -xpost "http: // localhost: 9200 / netflix / _clone / netflix_cp" -h "kbn-xsrf: reportage" -h "contenu-type: application / json" -d '

"paramètres":
"indice.numéro_of_shards ": 1,
"numéro_of_replicas": 3
,
"alias":
"Netflix_alias":

'


Gardez à l'esprit que le nombre d'éclats de l'indice de clone doit être similaire au nombre de fragments de l'indice source.

Sortir:


"Reconnu": vrai,
"Shards_ackNowledged": vrai,
"index": "netflix_cp"


Remarque: Elasticsearch renvoie un statut reconnu: le vrai statut. La demande n'attend pas que le processus de clonage se termine.

Conclusion

Dans cet article, nous avons discuté des principes fondamentaux du travail avec l'API de clonage Elasticsearch. Cela vous permet de créer une copie d'un index existant dans votre cluster.

Merci d'avoir lu!