Elasticsearch Clone Index

Elasticsearch Clone Index

Neste post, aprenderemos a clonar um índice existente em um cluster de elasticsearch. Isso pode permitir que você execute modificações em um índice sem alterar o índice original. Ele também permite renomear, indexar e transferir rapidamente os dados antigos em um único comando.

Vamos mergulhar.

Solicitar sintaxe

O snippet a seguir mostra a sintaxe da API do índice de clone:

PUBLICAR //_clone/
COLOCAR //_clone/


A solicitação clones o índice em um novo índice em que cada um dos fragmentos primários originais é copiado para um novo primário compartilhado no novo índice.

Lembre -se de que o Elasticsearch não clonará os modelos de índice e os metadados do índice para o índice de clone. Tais metadados incluem aliases, seguidores da CCR, etc.

Como funciona a clonagem do índice

Elasticsearch executa as seguintes ações ao clonar um índice:

    1. Elasticsearch cria um novo índice com definições semelhantes ao índice de origem.
    2. O próximo passo é vincular os segmentos do índice de origem no novo índice de clone.
    3. LastLty, Elasticsearch recupera o índice de clone como se tivesse se recuperado de um estado fechado.

Condições para clonagem de índice

As seguintes condições são necessárias para clonar um índice:

    1. Um índice com um nome semelhante ao alvo não deve existir no cluster.
    2. O índice de origem deve ser índice.
    3. O número de fragmentos de uma fonte e índice de destino deve ser semelhante.
    4. O nó no qual o processo clone é realizado deve ter espaço em disco suficiente para acomodar o novo índice.

Exemplo de ilustração

Vejamos um exemplo de como usar a API do Elasticsearch Clone para clonar um índice existente.

Suponha que tenhamos um índice chamado "Netflix". Podemos criar um índice de clone com a solicitação, como mostrado:

Podemos começar definindo o índice como somente leitura. Elasticsearch não clonará um índice no modo de gravação:

Curl -xput "http: // localhost: 9200/netflix/_block/read_only" -h "kbn -xsrf: relatórios"


Isso deve retornar da seguinte maneira:


"Reconhecido": verdadeiro,
"shards_acknowleded": verdadeiro,
"índices": [

"Nome": "Netflix",
"Bloqueado": verdadeiro

]


Finalmente, podemos clonar o índice como mostrado no seguinte:

Curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_copy" -h "kbn -xsrf: relatórios"


A execução da solicitação anterior deve criar um clone do índice e retornar uma saída como:


"Reconhecido": verdadeiro,
"shards_acknowleded": verdadeiro,
"Índice": "netflix_copy"


Se você deseja especificar as configurações e aliases do índice, poderá executar o seguinte comando como mostrado:

Curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_cp" -h "kbn -xsrf: relatórios" -h "type: aplicativo/json" -d '

"configurações":
"índice.número_of_shards ": 1,
"number_of_replicas": 3
,
"apelido":
"netflix_alias":

'


Lembre -se de que o número de fragmentos do índice do clone deve ser semelhante ao número de fragmentos do índice de origem.

Saída:


"Reconhecido": verdadeiro,
"shards_acknowleded": verdadeiro,
"Índice": "netflix_cp"


Nota: Elasticsearch Retorna um reconhecido: status verdadeiro imediatamente. A solicitação não espera que o processo de clonagem seja concluído.

Conclusão

Nesta postagem, discutimos os fundamentos de trabalhar com a API de clonagem Elasticsearch. Isso permite que você crie uma cópia de um índice existente em seu cluster.

Obrigado pela leitura!