Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Управление данными

Уровни данных

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

  • Узлы уровня контента обрабатывают индексирование и запросы к контенту, такому как каталог продуктов.
  • Узлы горячего уровня обрабатывают индексирование временных рядов данных, таких как логи или метрики, и хранят ваши самые последние и чаще всего используемые данные.
  • Узлы тёплого уровня хранят временные ряды данных, к которым обращаются реже, и которые редко нужно обновлять.
  • Узлы холодного уровня хранят временные ряды данных, к которым обращаются редко и которые обычно не обновляются. Для экономии места вы можете хранить полностью смонтированные индексы поисковых снимков на уровне холодного хранилища. Эти полностью смонтированные индексы исключают необходимость в репликах, сокращая требуемое дисковое пространство примерно на 50% по сравнению с обычными индексами.
  • Узлы замороженного уровня хранят временные ряды данных, к которым редко обращаются и которые никогда не обновляются. Замороженный уровень хранит частично смонтированные индексы поисковых снимков исключительно. Это ещё больше расширяет ёмкость хранения — до 20 раз по сравнению с уровнем тёплого хранилища.

При индексировании документов напрямую в определённый индекс, они остаются на узлах уровня контента неопределённо долго.

При индексировании документов в поток данных, они первоначально находятся на узлах горячего уровня. Вы можете настроить политику управления жизненным циклом индексов (ILM), чтобы автоматически перемещать ваши временные ряды данных через уровни горячего, тёплого и холодного хранения в соответствии с вашими требованиями к производительности, отказоустойчивости и удержанию данных.

Роль данных узла узла данных настраивается в elasticsearch.yml. Например, самые производительные узлы в кластере могут быть назначены как на уровень горячего, так и на уровень контента:

node.roles: ["data_hot", "data_content"]

Уровень контента

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

Узлы уровня контента, как правило, оптимизированы для производительности запросов — они отдаЮт приоритет вычислительной мощности над пропускной способностью ввода-вывода, чтобы быстро обрабатывать сложные поиски и агрегации и быстро возвращать результаты. Хотя они также отвечают за индексирование, данные контента обычно не поступают с такой высокой скоростью, как данные временных рядов, такие как логи и метрики. С точки зрения отказоустойчивости индексы на этом уровне должны быть настроены на использование одной или нескольких реплик.

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

Горячий уровень

Горячий уровень — это точка входа Elasticsearch для данных временных рядов и он хранит ваши самые последние и наиболее часто используемые данные временных рядов. Узлы на горячем уровне должны быть быстрыми как для чтения, так и для записи, что требует большего количества аппаратных ресурсов и более быстрого хранения (SSD). Для отказоустойчивости индексы на горячем уровне должны быть настроены на использование одной или нескольких реплик.

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

Тёплый уровень

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

Холодный уровень

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

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

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

Замороженный уровень

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

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

Рекомендуется использовать отдельные узлы на уровне замороженных данных.

Назначение индекса уровня данных

При создании индекса Elasticsearch по умолчанию устанавливает index.routing.allocation.include._tier_preference в значение data_content, чтобы автоматически назначать фрагменты индекса на уровень контента.

Когда Elasticsearch создаёт индекс как часть потока данных, по умолчанию Elasticsearch устанавливает index.routing.allocation.include._tier_preference в значение data_hot, чтобы автоматически назначать фрагменты индекса на уровень горячего хранения.

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

Вы также можете явно установить index.routing.allocation.include._tier_preference, чтобы отказаться от стандартного распределения на основе уровней. Если вы установите предпочтение уровня в значение null, Elasticsearch проигнорирует роли уровней данных во время назначения.

Автоматическая миграция уровня данных

ILM автоматически перемещает управляемые индексы по доступным уровням данных, используя действие migrate. По умолчанию это действие автоматически включается в каждую фазу. Вы можете явно указать действие migrate, чтобы переопределить стандартное поведение, или использовать действие allocate, чтобы вручную указать правила распределения.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/data-tiers.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API