В кластере Elasticsearch, имеющем узлы с холодными данными, данные индекса могут переключаться между холодным и горячим хранилищем. Это помогает оптимизировать затраты на хранение и улучшить производительность запросов.
Переключение горячего/холодного хранилища заключается в распределении данных по различным типам узлов данных в зависимости от их производительности и стоимости, исходя из ожидаемой частоты доступа к данным. Узлы горячих данных хранят данные в реальном времени, которые часто обновляются и запрашиваются. Обычно они используют высокопроизводительное оборудование (например, SSD), чтобы обеспечить быструю запись/чтение и извлечение. Узлы холодных данных хранят исторические данные, к которым редко обращаются. Обычно узлы холодных данных используют более дешёвое оборудование для хранения данных.
Как это работает
Рисунок 1 Как работает переключение холодного/горячего хранилища

При создании кластера узлы холодных данных помечаются холодный для холодного хранилища, тогда как обычные узлы данных помечаются горячий для горячего хранилища. Внутри кластера вы можете настроить хранение реже запрашиваемых данных указанных индексов на узлах с холодными данными. По сравнению с обычными узлами данных, узлы с холодными данными обеспечивают более низкую производительность запросов, но также более низкие затраты на хранение. Обычные узлы данных будут помечены горячий только когда есть узлы с холодными данными.
Вы можете масштабировать узлы с холодными данными, добавляя или уменьшая количество узлов или их ёмкость хранилища. Для получения подробной информации см Масштабирование кластера Elasticsearch.
Ограничения
Только кластеры, имеющие узлы с холодными данными, поддерживают переключение между хранением холодных и горячих данных. Узлы с холодными данными могут быть включены только при создании кластера. Вы не можете включить узлы с холодными данными в существующем кластере. Если ваш кластер не имеет узлов с холодными данными, но вы хотите сократить затраты на хранение, можете попробовать использовать разделение хранения и вычислений. Для получения подробной информации см Настройка разделения хранения и вычислений для кластера Elasticsearch.
Переключение между горячим и холодным хранилищем
- Войдите в консоль управления CSS.
- Проверьте, включены ли узлы холодных данных в кластере.
На Кластеры странице, выберите кластер, в котором вы хотите включить разделение хранения и вычислений, нажмите название кластера, чтобы перейти на страницу информации о кластере. В Узел области, проверьте, есть ли информация об узлах холодных данных.
Рисунок 2 Информация об узле холодных данных

- Если есть информация об узлах холодных данных, кластер имеет узлы холодных данных. Перейдите к следующему шагу.
- В противном случае кластер не имеет узлов холодных данных, и вы не сможете переключаться между хранением холодных и горячих данных.
- Нажмите Доступ к Kibana в Операция столбце, чтобы войти в консоль Kibana.
- Щелкнуть Инструменты разработчика в навигационном дереве слева.
- На странице Kibana задайте шаблон индекса для хранения данных индекса на холодных или горячих узлах данных.
Например, выполните следующую команду, чтобы задать шаблон для хранения индексов, начинающихся с myindex на холодные узлы данных:
- Для кластера Elasticsearch версии ранее 6.x:PUT _template/test{"order": 1,"template": "myindex*","settings": {"index": {"refresh_interval": "30s","number_of_shards": "3","number_of_replicas": "1","routing.allocation.require.box_type": "cold"}}}
- Для кластера Elasticsearch версии 6.x или новее:PUT _template/test{"order": 1,"index_patterns": "myindex*","settings": {"refresh_interval": "30s","number_of_shards": "3","number_of_replicas": "1","routing.allocation.require.box_type": "cold"}}
Или вы можете просто указать холодное или горячее хранилище для существующих индексов.
Например, выполните следующую команду для хранения индекса myindex на холодные узлы данных:
PUT myindex/_settings{"index.routing.allocation.require.box_type": "cold"}myindex указывает имя индекса. Вы можете изменить cold на hot если вам нужно горячее хранилище.
- Для кластера Elasticsearch версии ранее 6.x:
- При необходимости выполните следующую команду, чтобы отменить конфигурацию холодного или горячего хранилища. После этого данные индекса будут случайным и равномерным образом распределены по холодным и горячим узлам данных.PUT myindex/_settings{"index.routing.allocation.require.box_type": null}
myindex указывает имя индекса.