Облачная платформаAdvanced

Разделение хранения индексов и вычислений в кластере Elasticsearch через управление жизненным циклом индекса

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Обзор

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

В этом примере для кластера Elasticsearch 7.10.2 создаётся политика жизненного цикла. Согласно этой политике, вновь созданный индекс автоматически замораживается через три дня, данные переносятся в OBS; и удаляется через семь дней.

Рисунок 1 Разделение хранения и вычислений


Ограничения

Только кластеры Elasticsearch 7.6.2 и 7.10.2 поддерживают разделённое хранение и вычисления.

Требования

Кластер Elasticsearch доступен.

Разделение хранения индекса и вычислений через управление жизненным циклом индекса

  1. Войдите в Kibana.
    1. Войдите в консоль управления CSS.
    2. В навигационной панели слева выберите Кластеры > Elasticsearch.
    3. В списке кластеров найдите целевой кластер и нажмите Kibana в Операция столбце, чтобы войти в консоль Kibana.
    4. В левой навигационной панели выберите Dev Tools.

      Левая часть консоли — это поле ввода команды, а треугольный значок в её верхнем‑правом углу — кнопка выполнения. Правая часть показывает результат выполнения.

  2. Создайте политику жизненного цикла с именем hot_warm_policy.

    Описание политики: Через три дня после создания индекса API для замораживания индексов вызывается автоматически для сброса данных в OBS. Через семь дней после создания индекса индекс удаляется.

    PUT _opendistro/_ism/policies/hot_warm_policy
    {
    "policy": {
    "description": "hot warm archive delete workflow",
    "error_notification": null,
    "default_state": "hot",
    "states": [
    {
    "name": "hot",
    "actions": [],
    "transitions": [
    {
    "state_name": "warm",
    "conditions": {
    "min_index_age": "3d"
    }
    }
    ]
    },
    {
    "name": "warm",
    "actions": [
    {
    "freeze_low_cost": {}
    }
    ],
    "transitions": [
    {
    "state_name": "delete",
    "conditions": {
    "min_index_age": "7d"
    }
    }
    ]
    },
    {
    "name": "delete",
    "actions": [
    {
    "delete": {}
    }
    ],
    "transitions": []
    }
    ]
    }
    }
  3. Создать шаблон индекса template_hot_warm.

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

    PUT _template/template_hot_warm
    {
    "index_patterns": "data*",
    "settings": {
    "number_of_replicas": 5,
    "number_of_shards": 1,
    "opendistro.index_state_management.policy_id": "hot_warm_policy"
    },
    "mappings": {
    "properties": {
    "name": {
    "type": "text"
    }
    }
    }
    }
    Таблица 1 Описание параметра

    Параметр

    Описание

    number_of_shards

    Количество шардов индекса

    number_of_replicas

    Количество реплик шардов индекса

    opendistro.index_state_management.policy_id

    Название политики жизненного цикла

  4. Создать data-2022-06-06 index. Индекс автоматически использует template_hot_warm шаблон и связывает шаблон индекса с политикой жизненного цикла hot_warm_policy. Таким образом, индекс автоматически замораживается через три дня, и удаляется через семь дней после создания.
    POST data-2022-06-06/_bulk
    {"index":{}}
    {"name":"name1"}
    {"index":{}}
    {"name":"name2"}
    {"index":{}}
    {"name":"name3"}
    {"index":{}}
    {"name":"name4"}
    {"index":{}}
    {"name":"name5"}
    {"index":{}}
    {"name":"name6"}
  5. Запросите данные и проверьте, автоматически ли разделены хранилище и вычисления.
    • Через три дня после создания индекса проверьте замороженный индекс.
      GET _cat/freeze_indices?s=i&v

      Ожидается, что индекс, созданный три дня назад, будет заморожен.

      health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
      green open data-2022-06-06 x8ab5NX6T3Ox_xoGUanogQ 1 1 6 0 7.6kb 3.8kb
    • Через семь дней после создания индекса проверьте индекс. Ожидается, что индекс будет удалён.