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:
Conditions de clonage d'index
Les conditions suivantes sont nécessaires pour cloner un 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!