Разделение Индекса в Elasticsearch - API _split, примеры и многое другое

После создания индекса Elasticsearch пользователи не могут изменить количество шардов в индексе. Однако с помощью API Split Index можно разделить существующий индекс, чтобы создать новый индекс с дополнительными первичными осколками.

Почему пользователи хотят разделить существующий индекс и каковы преимущества?

  • Индекс уже превысил оптимальный размер 50 ГБ на шард, поэтому, разделив индекс на большее количество шардов, вы сможете уложиться в лимит 50 ГБ на шард.
  • Индекс не основан на времени и может превысить оптимальный размер 50 ГБ на шард (обратите внимание, что если индекс основан на времени, то, вероятно, лучше перенести индекс и создать новый).

Перед разделением индекса - важные замечания

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

Сделайте индекс доступным только для чтения с помощью следующей команды:

Принцип работы API _split

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

Ограничения

  • Количество создаваемых шардов должно быть кратно исходному количеству шардов.
  • Максимальное количество шардов в разделенном индексе также ограничено настройкой index.number_of_routing shards, которая по умолчанию зависит от количества шардов в индексе.
  • Узел, выполняющий операцию разделения, также должен иметь достаточно свободного диска для дублирования данных в индексе.

Как разделить индекс

API _split можно использовать следующим образом:

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

По умолчанию команда split возвращается сразу после создания нового индекса, но новый индекс не будет доступен для поиска до тех пор, пока все шарды не будут назначены, инициализированы и переведены в активное состояние. Проверьте прогресс с помощью следующей команды:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий