Elastic Search

Elasticsearch reindexar todos os índices e verificar o status

Elasticsearch reindexar todos os índices e verificar o status
Ao trabalhar com bancos de dados, você inevitavelmente precisará fazer alterações, como adicionar, remover e modificar dados.

Quando você está modificando dados em um índice Elasticsearch, isso pode levar a um tempo de inatividade conforme a funcionalidade é concluída e os dados são reindexados.

Este tutorial lhe dará uma maneira muito melhor de atualizar os índices sem experimentar qualquer tempo de inatividade com a fonte de dados existente. Usando a API de reindexação Elasticsearch, copiaremos os dados de uma fonte específica para outra.

Vamos começar.

NOTA: Antes de começarmos, as operações de reindexação exigem muitos recursos, especialmente em grandes índices. Para minimizar o tempo necessário para reindexar, desabilite number_of_replicas definindo o valor para 0 e habilite-os assim que o processo for concluído.

Habilitar campo _Fonte

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

Habilite o campo _Source adicionando uma entrada conforme mostrado abaixo:

PUT index_1

“Mapeamentos”:
"_fonte":
"ativado": verdadeiro


Reindexar todos os documentos

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

NOTA: Para que a indexação ocorra com sucesso, a origem e o destino não podem ser semelhantes. Você também deve configurar o destino conforme necessário antes de reindexar, porque ele não aplica as configurações da fonte ou de qualquer modelo associado.

A sintaxe geral para reindexação é a seguinte:

POST / _reindex

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

PUT / source_index

"configurações": "numero_de_replicas": 0, "numero_de_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_1": ,
"alias_2":
"filtro": "termo":
"do utilizador.id ":" kibana "
, "roteamento": "1"


O comando cURL é:

curl -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

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

PUT / destination_index

"configurações": "numero_de_replicas": 0, "numero_de_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filtro": "termo":
"do utilizador.id ":" kibana "
, "roteamento": "1"


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

curl -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

Agora, temos os índices que queremos usar, podemos então prosseguir para reindexar os documentos.

Considere a solicitação abaixo que copia os dados de source_index para destination_index:

POST _reindex

"fonte":
"index": "source_index"
,
"dest":
"index": "destination_index"

O comando cURL para isso é:

curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " '

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

NOTA: O source_index deve ter dados.


"levou": 2836,
"timed_out": falso,
"total": 13059,
"atualizado": 0,
"criado": 13059,
"excluído": 0,
"lotes": 14,
"version_conflicts": 0,
"noops": 0,
"tentativas":
"em massa": 0,
"pesquisar": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0,
"falhas": []

Verificando o Status de Reindexação

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

GET / _tasks?detalhado = verdadeiro & ações = * reindexar & group_by = pais

O comando cURL é:

curl -XGET "http: // localhost: 9200 / _tasks?detalhado = verdadeiro & ações = * reindexar & group_by = pais "

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


"tarefas" :
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"node": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"tipo": "transporte",
"ação": "índices: dados / escrever / reindexar",
"status" :
"total": 13059,
"atualizado": 9000,
"criado": 0,
"excluído": 0,
"lotes": 10,
"version_conflicts": 0,
"noops": 0,
"tentativas":
"em massa": 0,
"pesquisar": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0
,
"descrição": "reindexar de [source_index] para [destination_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 (origem) para outro (destino). Embora haja mais na API de reindexação, este guia deve ajudá-lo a começar.

Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...
SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...