OpenSearch: Снапшоты с возможностью поиска

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

Снимки с возможностью поиска уже некоторое время доступны в Elasticsearch, но теперь они появились в качестве функции в OpenSearch. В данном документе рассматривается только реализация OpenSearch.

Снимки с возможностью поиска являются частью дорожной карты OpenSearch по хранению данных, представляющей собой пятиэтапный план, направленный на полную интеграцию внешних систем хранения объектов, таких как AWS S3 или GCS (Google Cloud Storage), с поисковыми кластерами. Такая интеграция является экономически эффективным решением, которое позволит пользователям иметь в своем распоряжении большие объемы данных, пригодных для долгосрочного поиска.

Определение OpenSearch: "Пользователи могут осуществлять поиск по моментальным снимкам в удаленных хранилищах без предварительной загрузки всех индексных данных на диск".

Когда следует использовать снимки с возможностью поиска

Снимки с возможностью поиска должны быть дешевле в хранении, чем обычный индекс OpenSearch. Однако это имеет несколько основных недостатков:

  • Вы не можете записывать в снимок с возможностью поиска
  • Задержки при поиске медленнее
  • Затраты на постоянное извлечение данных из хранилища могут перевесить экономию на хранении.

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

Как использовать поисковые снимки

Для создания поискового индекса моментальных снимков в OpenSearch выполните следующие действия:

Включите функцию

Перейдите в config/jvm.options и добавьте следующую строку:

В качестве альтернативы задайте переменную окружения:

Установка роли узла

Для того чтобы узел мог использовать снимки с возможностью поиска, он должен иметь роль "search". Роль "поиск" служит для следующих целей:

  • Требует резервирования части локального диска для кэширования данных удаленных индексов
  • Обеспечивает выделение "удаленных" шардов только этим узлам.

В файле opensearch.yml

Эта конфигурация создает узел с возможностью поиска по снимкам.

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

Создание репозитория моментальных снимков

Для создания моментального снимка пользователям необходимо зарегистрировать репозиторий.

Создание моментального снимка индекса

Создайте индекс для демонстрационных целей:

Затем пользователи могут создать моментальный снимок этого индекса:

Восстановление моментального снимка в виде индекса моментального снимка с возможностью поиска

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

Обратите внимание на параметр "storage_type". По умолчанию он имеет значение "local", что означает, что снимок будет полностью восстановлен в локальном хранилище. Если установить значение remote_snapshot, то он будет использовать возможности UltraWarm и превратится в снимок с возможностью поиска.

Переименуем восстановленный индекс, чтобы можно было сравнить его с существующим.

Для подтверждения того, что индекс является поисковым снимком, он должен содержать тип хранения remote_snapshot.

Поиск по моментальным снимкам с возможностью поиска

Разницы между обычным запросом на поиск и запросом на поиск по поисковым снимкам нет.

Пользователи должны увидеть результаты, поступающие из объектного хранилища.

Если вы видите ошибку, описанную ниже, то необходимо установить роль поиска в узле.

Известные ограничения на данном этапе

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

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

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

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

Заключение

Поиск по снимкам - это экспериментальная функция, позволяющая пользователям осуществлять поиск по снимкам в удаленных хранилищах без предварительной загрузки всех индексных данных на диски. Эта возможность является частью дорожной карты OpenSearch по хранению данных, целью которой является полная интеграция внешних систем хранения объектов, таких как AWS S3 или GCS, с поисковыми кластерами, что позволит осуществлять поиск по долгосрочным данным по разумной цене.

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

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