Elasticsearch Reindex Todos os índices e verifique o status

Elasticsearch Reindex Todos os índices e verifique o status
Ao trabalhar com bancos de dados, inevitavelmente precisará fazer alterações como adicionar, remover e modificar dados.

Quando você está modificando os dados em um índice de pesquisa de elasticidade, eles podem levar ao tempo de inatividade à medida que a funcionalidade é concluída e os dados são reindexados.

Este tutorial lhe dará uma maneira muito melhor de atualizar os índices sem experimentar nenhum tempo de inatividade com a fonte de dados existente. Usando a API de re-indexamento do Elasticsearch, copiaremos dados de uma fonte específica para outra.

Vamos começar.

OBSERVAÇÃO: Antes de começarmos, as operações de reindexação são pesadas de recursos, especialmente em grandes índices. Para minimizar o tempo necessário para a reindexação, desative o número_of_replicas, definindo o valor para 0 e habilitá -las assim que o processo for concluído.

Habilitar _ Campo de outores

A operação de reindexação exige que o campo de origem seja ativado em todos os documentos no índice de origem. Observe que o campo de origem não é indexado e não pode ser pesquisado, mas é útil para várias solicitações.

Ative o campo _Source, adicionando uma entrada como mostrado abaixo:

PUT INDEX_1

"Mapeamentos":
"_fonte":
"Enabled": verdadeiro


Reindex Todos os documentos

Para os documentos do Reindex, precisamos especificar a fonte e o destino. Fonte e destino podem ser um índice existente, alias de índice e fluxos de dados. Você pode usar índices do cluster local ou remoto.

OBSERVAÇÃO: Para que a indexação ocorra com sucesso, a fonte e o destino não podem ser semelhantes. Você também deve configurar o destino conforme exigido antes da reindexação, pois ele não aplica configurações da fonte ou qualquer modelo associado.

A sintaxe geral para reindexação é como:

Post /_reindex

Vamos começar criando dois índices. O primeiro será a fonte, e o outro será o destino.

Put /source_index

"Configurações": "number_of_replicas": 0, "number_of_shards": 1,
"Mappings": "_source": "habilitado": true, "aliases":
"Alias_1": ,
"Alias_2":
"filtro": "termo":
"do utilizador.id ":" kibana "
, "roteamento": "1"


O comando Curl é:

Curl -xput "http: // localhost: 9200/fonte_index" -h 'content -type: Application/json' -d '"Configurações": "number_of_replicas": 0, "number_of_shards": 1, "mapeamentos" : "_source": "Enabled": true, "aliases": "alias_1": , "alias_2": "filtro": "termo": "user user".id ":" kibana "," roteamento ":" 1 " ''

Agora, para o índice de destino (você pode usar o comando acima e alterar algumas coisas ou usar o dado abaixo):

Put /destino_index

"Configurações": "number_of_replicas": 0, "number_of_shards": 1,
"Mappings": "_source": "habilitado": true, "aliases":
"Alias_3": ,
"Alias_4":
"filtro": "termo":
"do utilizador.id ":" kibana "
, "roteamento": "1"


Como sempre, os usuários do CLL podem usar o comando:

Curl -xput "http: // localhost: 9200/destino_index" -h 'content -type: Application/json' -d '"Configurações": "number_of_replicas": 0, "number_of_shards": 1, "mapeamentos" : "_source": "Enabled": true, "aliases": "alias_3": , "alias_4": "filtro": "termo": "user user".id ":" kibana "," roteamento ":" 1 " ''

Agora, temos os índices que queremos usar, podemos seguir em frente para reindexar os documentos.

Considere a solicitação abaixo que copia os dados de fonte_index para destino_index:

Post _reindex

"fonte":
"Índice": "fonte_index"
,
"dest":
"Índice": "destino_index"

O comando Curl para este é:

Curl -xpost "http: // localhost: 9200/_reindex" -h 'content -type: application/json' -d '"fonte": "index": ".kibana "," dest ": " index ":" destination_index " '

A execução deste comando deve fornecer informações detalhadas sobre a operação realizada.

OBSERVAÇÃO: O fonte_index deve ter dados.


"Take": 2836,
"timed_out": false,
"Total": 13059,
"Atualizado": 0,
"Criado": 13059,
"Excluído": 0,
"Lotes": 14,
"Version_conflicts": 0,
"Noops": 0,
"EXTIEIRAS":
"Bulk": 0,
"Pesquisa": 0
,
"Throttled_millis": 0,
"requests_per_second": -1.0,
"Totão_until_millis": 0,
"Falhas": []

Verificando o status de reindexação

Você pode visualizar o status das operações de reindexação simplesmente usando as _tasks. Por exemplo, considere a solicitação abaixo:

Get /_Tasks?detalhado = true & ações =*reindex & group_by = pais

O comando Curl é:

Curl -xget "http: // localhost: 9200/_Tasks?detalhado = true & ações =*reindex & group_by = pais "

Isso deve fornecer informações detalhadas sobre o processo de reindexação, como mostrado abaixo:


"tarefas" :
"Ftd_2ixjsxudn_ua4tzhhg: 51847":
"Node": "ftd_2ixjsxudn_ua4tzhhg",
"ID": 51847,
"Tipo": "transporte",
"Ação": "índices: dados/write/reindex",
"status" :
"Total": 13059,
"Atualizado": 9000,
"Criado": 0,
"Excluído": 0,
"Lotes": 10,
"Version_conflicts": 0,
"Noops": 0,
"EXTIEIRAS":
"Bulk": 0,
"Pesquisa": 0
,
"Throttled_millis": 0,
"requests_per_second": -1.0,
"Totão_until_millis": 0
,
"Descrição": "Reindex de [fonte_index] para [destino_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"Running_time_in_nanos": 2094157836,
"Cancelável": verdadeiro,
"cabeçalhos":


Conclusão

Cobrimos tudo o que você precisa saber sobre o uso da API Elasticsearch Reindexing para copiar documentos de um índice (fonte) para outro (destino). Embora exista mais na API de reindexação, este guia deve ajudá -lo a começar.