In questo post, impareremo come clonare un indice esistente in un cluster di Elasticsearch. Ciò può consentire di eseguire modifiche a un indice senza alterare l'indice originale. Ti consente inoltre di rinominare, indicizzare e trasferire rapidamente i vecchi dati in un unico comando.
Immerciamoci.
Richiedi sintassi
Il seguente snippet mostra la sintassi per l'API dell'indice clone:
INVIARE //_clone/
METTERE //_clone/
La richiesta clone l'indice in un nuovo indice in cui ciascuno dei frammenti primari originale viene copiato in un nuovo primario condiviso sul nuovo indice.
Tieni presente che Elasticsearch non clonerà i modelli dell'indice e i metadati dell'indice per l'indice clone. Tali metadati includono alias, follower del CCR, ecc.
Come funziona la clonazione dell'indice
ElasticSearch esegue le seguenti azioni durante la clonazione di un indice:
Condizioni per la clonazione dell'indice
Le seguenti condizioni sono necessarie per la clonazione di un indice:
Esempio illustrazione
Vediamo un esempio su come utilizzare l'API Clone Elasticsearch per clonare un indice esistente.
Supponiamo di avere un indice chiamato "Netflix". Possiamo creare un indice clone con la richiesta come mostrato:
Possiamo iniziare impostando l'indice in sola lettura. Elasticsearch non clonerà un indice nella modalità di scrittura:
Curl -xput "http: // localhost: 9200/netflix/_block/read_only" -h "kbn -xsrf: reporting"
Questo dovrebbe tornare come segue:
"riconosciuto": vero,
"shards_acknowledged": vero,
"Indici": [
"Nome": "Netflix",
"bloccato": vero
"
Infine, possiamo clonare l'indice come mostrato nel seguente:
CURL -XPost "http: // localhost: 9200/netflix/_clone/netflix_copy" -H "kbn -xsrf: reporting"
L'esecuzione della richiesta precedente dovrebbe creare un clone dell'indice e restituire un output come:
"riconosciuto": vero,
"shards_acknowledged": vero,
"INDICE": "Netflix_Copy"
Se si desidera specificare le impostazioni dell'indice e gli alias, è possibile eseguire il seguente comando come mostrato:
Curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_cp" -h "kbn -xsrf: reporting" -h "contenuti -type: applicazione/json" -d '
"impostazioni":
"indice.NUMBER_OF_SHARDS ": 1,
"Number_of_replicas": 3
,
"Aliases":
"Netflix_alias":
'
Tieni presente che il numero di frammenti dell'indice clone deve essere simile al numero di frammenti dell'indice di origine.
Produzione:
"riconosciuto": vero,
"shards_acknowledged": vero,
"INDICE": "Netflix_CP"
Nota: ElasticSearch restituisce un riconoscimento: stato vero immediato. La richiesta non attende il completamento del processo di clonazione.
Conclusione
In questo post, abbiamo discusso dei fondamenti del lavoro con l'API di clonazione di Elasticsearch. Ciò consente di creare una copia di un indice esistente nel cluster.
Grazie per aver letto!