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

Разделение хранения индексов и вычислений в кластере OpenSearch с помощью Index Lifecycle Management

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

Обзор

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

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

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


Требования

  • Доступны кластеры CSS.
  • Используется OpenSearch 1.3.6 или 2.19.0.

Разделение хранения индексов и вычислений с помощью Index Lifecycle Management

  1. Войдите в OpenSearch Дашборд.
    1. Войдите в консоль управления CSS.
    2. В левой навигационной панели выберите Кластеры > OpenSearch.
    3. В списке кластеров найдите целевой кластер и нажмите Dashboards в Операция колонка для входа в OpenSearch Dashboards.
    4. В левой панели навигации выберите Dev Tools.

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

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

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

    PUT _plugins/_ism/policies/hot_warm_policy
    {
    "policy": {
    "description": "hot warm 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": []
    }
    ],
    "ism_template": {
    "index_patterns": [
    "data*"
    ],
    "priority": 100
    }
    }
    }
  3. Создайте индекс с именем data-2022-06-06. Индекс автоматически связывается с политикой жизненного цикла 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"}
  4. Запросите данные и проверьте, автоматически ли разъединены хранилище и вычисления.
    • Три дня после создания индекса проверьте замороженный индекс.
      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
    • Через семь дней после создания индекса проверьте замороженный индекс. Ожидается, что индекс будет удалён.