OpenSearch — распределенная система полнотекстового поиска и анализа данных с открытым исходным кодом. После добавления данных в OpenSearch можно выполнять полнотекстовый поиск со сложными функциями: поиск по полю, поиск по нескольким индексам, сортировка результатов по полю и агрегирование результатов.
В OpenSearch данные структурируются и управляются с помощью индексов, политик и потоков данных.
Индексы — основная единица хранения данных. Каждый индекс содержит множество документов, где каждый документ представляет собой отдельную запись данных, похожую на строку в таблице базы данных. Когда документ сохраняется в OpenSearch, он индексируется и помещается в определенный индекс, выбранный пользователем. Так документ становится доступным для поиска и анализа.
В OpenSearch документ — это набор полей, где каждое поле представляет собой пару «ключ-значение» и имеет определенный тип. Это позволяет эффективно хранить данные в индексе и обеспечивает возможность быстрого поиска по полям в документе.
Индексы могут находиться в различных статусах и состояниях, которые влияют на доступность данных и ресурсы кластера.
Статусы индексов:
«Открыт» — индекс доступен для записи, чтения и поиска.
«Закрыт» — индекс недоступен для записи, чтения и поиска.
Состояния индекса:
«Доступен» — первичные шарды и реплики распределены по узлам кластера и доступны для операций. Кластер полностью функционален, и данные доступны для чтения и записи.
«Частично доступен» — первичные шарды распределены по узлам кластера и доступны, но реплики хотя бы для одного индекса не распределены. Это может быть связано с нехваткой ресурсов или недоступностью некоторых узлов. Состояние указывает на потенциальную уязвимость к отказам, так как реплики не могут компенсировать нестабильность узлов.
«Недоступен» — хотя бы один первичный шард не распределен по узлам. Это критическое состояние, так как данные, которые относятся к нераспределенным первичным шардам, недоступны для операций. Основными причинами являются сбои узлов кластера или аварийное завершение процесса OpenSearch из-за высокой нагрузки на обработку.
Политика — набор правил и настроек, которые регулируют обновление, удаление и другие действия с индексами. Применение политик оптимизирует использование ресурсов и поддерживает производительность за счет автоматического управления индексами. Например, вы можете настроить политику, которая через семь дней переведет индекс в режим «только для чтения», а через 50 дней удалит его.
Потоки данных управляют временными данными, которые поступают непрерывным потоком, например в системах мониторинга или логирования. Они распределяют данные по индексам и непрерывно обрабатывают их как единое целое.