Как предотвратить запись данных в индекс ES, но разрешить обновления псевдонимов - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь разработать процесс для повторной индексации индекса Elasticsearch с нулевым временем простоя чтения, отклоняя попытки записи до завершения процесса.

Учитывая исходный индекс и псевдоним, указывающий на него, текущий поток выглядит следующим образом:

  1. Создание промежуточного индекса
  2. Сделать исходный индекс доступным только для чтения
  3. Копирование данных из исходного индекса в промежуточный индекс
  4. Сделать промежуточный индекс доступным только для чтения
  5. Обновить псевдоним, чтобы он указывал на промежуточный индекс
  6. Повторное создание исходного индекса
  7. Копировать данные из промежуточного индекса в исходный индекс
  8. Обновить псевдоним, чтобы он указывал на исходный индекс

Проблема в том, что, закрывая индекс или делая его доступным только для чтения с помощью index.blocks.read_only=true, я не могу обновить его псевдоним.

Важно сделать индекс доступным только для чтения, чтобы убедиться, что любой, кто пытается записать данные, получит ошибку и самостоятельно выполнит попытку.

Обновление псевдонима важно, чтобы каждый, кто пытается прочитать данные, получал данные без проблем.

Как мне добиться этого?

1 Ответ

0 голосов
/ 05 января 2019

Так что для этого есть хорошо документированный вариант:

index.blocks.write

Установите в значение true, чтобы отключить операции записи данных в индекс. В отличие от read_only, этот параметр не влияет на метаданные. Например, вы можете закрыть индекс с помощью блока записи, но не индекс с блоком read_only.

По какой-то причине я вижу его гораздо меньше, чем более ограничительный вариант read_only, но здесь он идеально подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...