Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Transfer
  • Доступные трансферы
  • Начало работы
    • Все руководства
      • MySQL® в YDB
      • PostgreSQL в YDB
      • MySQL® в PostgreSQL
      • PostgreSQL в MySQL®
      • MySQL® в Greenplum®
      • Elasticsearch в OpenSearch
      • OpenSearch в YDB
      • OpenSearch в Greenplum®
      • PostgreSQL в OpenSearch
  • Решение проблем
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Настройте кластер-источник
  • Подготовьте тестовые данные
  • Настройте кластер-приемник
  • Подготовьте и активируйте трансфер
  • Проверьте работу трансфера
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Миграция со сменой типа хранения данных
  3. Elasticsearch в OpenSearch

Миграция данных из Elasticsearch в Yandex Managed Service for OpenSearch

Статья создана
Yandex Cloud
Обновлена 17 марта 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Настройте кластер-источник
  • Подготовьте тестовые данные
  • Настройте кластер-приемник
  • Подготовьте и активируйте трансфер
  • Проверьте работу трансфера
  • Удалите созданные ресурсы

Вы можете настроить перенос данных из индексов Elasticsearch в индексы Managed Service for OpenSearch с помощью сервиса Data Transfer. Для этого:

  1. Настройте кластер-источник.
  2. Подготовьте тестовые данные.
  3. Настройте кластер-приемник.
  4. Подготовьте и активируйте трансфер.
  5. Проверьте работу трансфера.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входит:

  • Плата за кластер Managed Service for OpenSearch: использование вычислительных ресурсов, выделенных хостам (в том числе хостам с ролью MANAGER), и дискового пространства (см. тарифы Managed Service for OpenSearch).
  • Плата за использование публичных IP-адресов для хостов кластера (см. тарифы Virtual Private Cloud).

Перед началом работыПеред началом работы

  1. Подготовьте инфраструктуру:

    1. Создайте пользовательскую инсталляцию Elasticsearch.

    2. Обеспечьте доступ к кластеру из Yandex Cloud.

    3. Создайте кластер-приемник Managed Service for OpenSearch любой подходящей конфигурации с хостами в публичном доступе.

  2. Установите утилиты:

    • curl — для запросов к кластерам.

      sudo apt update && sudo apt install --yes curl
      
    • jq — для потоковой обработки JSON-файлов.

      sudo apt update && sudo apt install --yes jq
      

Настройте кластер-источникНастройте кластер-источник

  1. (Опционально) Создайте пользователя, от имени которого будет выполняться трансфер.

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

    1. В кластере-источнике создайте роль с привилегиями create_index и write для всех индексов (*).

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

Подготовьте тестовые данныеПодготовьте тестовые данные

  1. В кластере-источнике создайте тестовый индекс people и задайте его схему:

    curl --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \
         --cacert ~/.elasticsearch/root.crt \
         --header 'Content-Type: application/json' \
         --request PUT 'https://<адрес_хоста_Elasticsearch_с_ролью_Data_Node>:9200/people' && \
    curl --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \
         --cacert ~/.elasticsearch/root.crt \
         --header 'Content-Type: application/json' \
         --request PUT 'https://<адрес_хоста_Elasticsearch_с_ролью_Data_Node>:9200/people/_mapping?pretty' \
         --data'
         {
               "properties": {
                  "name": {"type": "text"},
                  "age": {"type": "integer"}
               }
         }
         '
    
  2. Наполните тестовый индекс данными:

    curl --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \
         --cacert ~/.elasticsearch/root.crt \
         --header 'Content-Type: application/json' \
         --request POST 'https://<адрес_хоста_Elasticsearch_с_ролью_Data_Node>:9200/people/_doc/?pretty' \
         --data'
         {
               "name" : "Alice",
               "age" : "30"
         }
         ' && \
    curl --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \
         --cacert ~/.elasticsearch/root.crt \
         --header 'Content-Type: application/json' \
         --request POST 'https://<адрес_хоста_Elasticsearch_с_ролью_Data_Node>:9200/people/_doc/?pretty' \
         --data'
         {
               "name" : "Robert",
               "age" : "32"
         }
         '
    
  3. (Опционально) Проверьте данные в тестовом индексе:

    curl --user <имя_пользователя_в_кластере-приемнике>:<пароль_пользователя_в_кластере-приемнике> \
         --cacert ~/.elasticsearch/root.crt \
         --header 'Content-Type: application/json' \
         --request GET 'https://<адрес_хоста_Elasticsearch_с_ролью_Data_Node>:9200/people/_search?pretty'
    

Настройте кластер-приемникНастройте кластер-приемник

  1. Получите SSL-сертификат для подключения к кластеру Managed Service for OpenSearch.

  2. (Опционально) Создайте пользователя, от имени которого будет выполняться трансфер.

    Вы можете поставлять данные в кластер Managed Service for OpenSearch от имени пользователя admin, имеющего роль superuser, но безопаснее для каждой задачи создавать отдельных пользователей с ограниченными привилегиями.

    1. Создайте роль с привилегиями create_index и write для всех индексов (*).

    2. Создайте пользователя и назначьте ему эту роль.

Подготовьте и активируйте трансферПодготовьте и активируйте трансфер

  1. Создайте эндпоинт для источника Elasticsearch.

  2. Создайте эндпоинт для приемника OpenSearch.

  3. Создайте трансфер:

    Вручную
    Terraform
    1. Создайте трансфер типа Копирование, использующий созданные эндпоинты.
    2. Активируйте трансфер и дождитесь его перехода в статус Завершен.
    1. Укажите в файле data-transfer-mes-mos.tf переменные:

      • source_endpoint_id — значение идентификатора эндпоинта для источника;
      • target_endpoint_id — значение идентификатора эндпоинта для приемника;
      • transfer_enabled — значение 1 для создания трансфера.
    2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    3. Создайте необходимую инфраструктуру:

      1. Выполните команду для просмотра планируемых изменений:

        terraform plan
        

        Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

      2. Если вас устраивают планируемые изменения, внесите их:

        1. Выполните команду:

          terraform apply
          
        2. Подтвердите изменение ресурсов.

        3. Дождитесь завершения операции.

    4. Активируйте трансфер и дождитесь его перехода в статус Завершен.

Проверьте работу трансфераПроверьте работу трансфера

Проверьте, что индекс people кластера Managed Service for OpenSearch содержит отправленные данные:

Bash
OpenSearch Dashboards

Выполните команду:

curl --user <имя_пользователя_в_кластере-приемнике>:<пароль_пользователя_в_кластере-приемнике> \
     --cacert ~/.opensearch/root.crt \
     --header 'Content-Type: application/json' \
     --request GET 'https://<адрес_хоста_OpenSearch_с_ролью_Data_Node>:9200/people/_search?pretty'
  1. Подключитесь к кластеру-приемнику с помощью OpenSearch Dashboards.
  2. Выберите общий тенант Global.
  3. Откройте панель управления, нажав на значок .
  4. В разделе OpenSearch Dashboards выберите Discover.
  5. В поле CHANGE INDEX PATTERN выберите индекс people.

Удалите созданные ресурсыУдалите созданные ресурсы

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

  1. Удалите трансфер.

  2. Удалите эндпоинты для источника и приемника.

  3. Удалите кластер Managed Service for OpenSearch.

  4. Удалите подсеть и сеть.

Была ли статья полезна?

Предыдущая
MySQL® в Greenplum®
Следующая
OpenSearch в YDB
Проект Яндекса
© 2025 ООО «Яндекс.Облако»