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

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

  • Сценарии передачи данных из OpenSearch
  • Подготовка базы данных источника
  • Настройка эндпоинта-источника OpenSearch
  • Кластер Managed Service for OpenSearch
  • Пользовательская инсталляция
  • Дополнительные настройки
  • Настройка приемника данных
  • Решение проблем, возникающих при переносе данных
  • Прерывание трансфера с ошибкой
  • Дублирование документов на приемнике
  • Превышение лимита максимального количества полей
  • Прерывание трансфера с ошибкой mapper_parsing_exception
  • Ошибка SSL is required
  • Не удалось найти ни одной таблицы
  1. Пошаговые инструкции
  2. Настройка эндпоинтов
  3. OpenSearch
  4. Источник

Передача данных из эндпоинта-источника OpenSearch

Статья создана
Yandex Cloud
Обновлена 24 июля 2025 г.
  • Сценарии передачи данных из OpenSearch
  • Подготовка базы данных источника
  • Настройка эндпоинта-источника OpenSearch
    • Кластер Managed Service for OpenSearch
    • Пользовательская инсталляция
    • Дополнительные настройки
  • Настройка приемника данных
  • Решение проблем, возникающих при переносе данных
    • Прерывание трансфера с ошибкой
    • Дублирование документов на приемнике
    • Превышение лимита максимального количества полей
    • Прерывание трансфера с ошибкой mapper_parsing_exception
    • Ошибка SSL is required
    • Не удалось найти ни одной таблицы

С помощью сервиса Yandex Data Transfer вы можете переносить данные поиска и аналитики из базы OpenSearch и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:

  1. Ознакомьтесь с возможными сценариями передачи данных.
  2. Подготовьте базу данных OpenSearch к трансферу.
  3. Настройте эндпоинт-источник в Yandex Data Transfer.
  4. Настройте один из поддерживаемых приемников данных.
  5. Создайте и запустите трансфер.
  6. Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
  7. При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.

Сценарии передачи данных из OpenSearchСценарии передачи данных из OpenSearch

Миграция — перенос данных из одного хранилища в другое. Часто это перенос базы из устаревших локальных баз в управляемые облачные.

  • Миграция кластера OpenSearch.

  • Загрузка данных из OpenSearch в Object Storage.

  • Миграция со сменой хранилища: OpenSearch в YDB.

  • Миграция со сменой хранилища: OpenSearch в Greenplum®.

  • Копирование данных из Managed Service for OpenSearch в Managed Service for ClickHouse® с помощью Yandex Data Transfer

Подробное описание возможных сценариев передачи данных в Yandex Data Transfer см. в разделе Практические руководства.

Подготовка базы данных источникаПодготовка базы данных источника

OpenSearch

Если вы не планируете использовать для подключения к внешнему кластеру сервис Cloud Interconnect или VPN, разрешите подключения к такому кластеру из интернета с IP-адресов, используемых сервисом Data Transfer.

Подробнее о настройке сети для работы с внешними ресурсами см. в концепции.

Настройка эндпоинта-источника OpenSearchНастройка эндпоинта-источника OpenSearch

При создании или изменении эндпоинта вы можете задать:

  • Настройки подключения к кластеру Yandex Managed Service for OpenSearch или пользовательской инсталляции, в т. ч. на базе виртуальных машин Yandex Compute Cloud. Эти параметры обязательные.
  • Дополнительные параметры.

Кластер Managed Service for OpenSearchКластер Managed Service for OpenSearch

Важно

Для создания или редактирования эндпоинта управляемой базы данных вам потребуется роль managed-opensearch.viewer или примитивная роль viewer, выданная на каталог кластера этой управляемой базы данных.

Подключение с указанием идентификатора кластера в Yandex Cloud.

Консоль управления
  • Тип подключения — выберите вариант подключения к кластеру:

    • Ручная настройка — позволяет задать настройки подключения вручную.

      Выберите тип инсталляции Кластер Managed Service for OpenSearch и задайте настройки:

      • Кластер Managed Service for OpenSearch — выберите кластер, к которому необходимо подключиться.

      • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к кластеру.
      • Пароль — укажите пароль пользователя для доступа к кластеру.
    • Connection Manager — позволяет подключиться к кластеру через Yandex Connection Manager:

      • Выберите каталог, в котором находится кластер Managed Service for OpenSearch.

      • Выберите тип инсталляции Кластер управляемой БД и задайте настройки:

        • Кластер управляемой БД — выберите кластер, к которому необходимо подключиться.
        • Подключение — выберите подключение в Connection Manager или создайте его.

      Важно

      Чтобы использовать подключение из Connection Manager, у пользователя должны быть права доступа не ниже connection-manager.user к этому подключению.

  • Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.

    Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее см. в разделе Сеть в Yandex Data Transfer.

Пользовательская инсталляцияПользовательская инсталляция

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

Консоль управления
  • Тип подключения — выберите вариант подключения к базе данных:

    • Ручная настройка — позволяет задать настройки подключения вручную.

      Выберите тип инсталляции Пользовательская инсталляция и задайте настройки:

      • Узлы с данными — нажмите на значок , чтобы добавить новый узел с данными. Для каждого узла укажите:

        • Хост — IP-адрес или FQDN хоста с ролью DATA, к которому необходимо подключиться.
        • Порт — номер порта, который сервис Data Transfer будет использовать для подключения к хосту с ролью DATA.
      • SSL — выберите, если используется безопасное соединение SSL.

      • Сертификат CA — загрузите файл сертификата или добавьте его содержимое в текстовом виде, если требуется шифрование передаваемых данных, например, для соответствия требованиям PCI DSS.

        Важно

        Если не добавить сертификат, трансфер может завершиться ошибкой.

      • Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к базе данных.

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

        Если не указать подсеть, при активации трансфера может возникнуть ошибка.

      • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

      • Пароль — укажите пароль пользователя для доступа к базе данных.

    • Connection Manager — позволяет подключиться к базе данных через Yandex Connection Manager:

      • Выберите каталог, в котором создано подключение Connection Manager.

      • Выберите тип инсталляции Пользовательская инсталляция и задайте настройки:

        • Подключение — выберите подключение в Connection Manager или создайте его.

        • Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к базе данных.

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

          Если не указать подсеть, при активации трансфера может возникнуть ошибка.

      Важно

      Чтобы использовать подключение из Connection Manager, у пользователя должны быть права доступа не ниже connection-manager.user к этому подключению.

  • Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.

    Это позволит применить к ВМ и БД в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и БД. Подробнее см. в разделе Сеть в Yandex Data Transfer.

Дополнительные настройкиДополнительные настройки

Консоль управления
  • Перенести индекс с сопоставлением типов — выберите эту опцию, чтобы перенести типы данных с источника на приемник до начала трансфера. Если опция отключена, а схема индекса на приемнике не задана, то типы данных на приемнике будут определяться автоматически в процессе трансфера.

Важно

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

Настройка приемника данныхНастройка приемника данных

Настройте эндпоинт-приемник:

  • OpenSearch;
  • ClickHouse®;
  • Greenplum®;
  • Yandex Managed Service for YDB;
  • Yandex Object Storage;
  • Apache Kafka®;
  • YDS;

Полный список поддерживаемых источников и приемников в Yandex Data Transfer см. в разделе Доступные трансферы.

После настройки источника и приемника данных создайте и запустите трансфер.

Решение проблем, возникающих при переносе данныхРешение проблем, возникающих при переносе данных

  • Прерывание трансфера с ошибкой
  • Дублирование документов на приемнике
  • Превышение лимита максимального количества полей
  • Прерывание трансфера с ошибкой mapper_parsing_exception
  • Ошибка SSL is required
  • Не удалось найти ни одной таблицы

См. полный список рекомендаций в разделе Решение проблем.

Прерывание трансфера с ошибкойПрерывание трансфера с ошибкой

Тексты ошибок:

object field starting or ending with a [.] makes object resolution ambiguous <описание_поля>

Index -1 out of bounds for length 0

Трансфер прерывается из-за того что ключи в передаваемых документах невалидны для приемника OpenSearch. К невалидным относятся пустые ключи, а также ключи:

  • состоящие из пробелов;
  • состоящие из точек;
  • с точкой в начале или конце;
  • с точками, стоящими друг за другом;
  • с точками, разделенными пробелами.

Решение:

В дополнительных настройках эндпоинта-приемника включите опцию Исправить невалидные ключи в документах и активируйте трансфер повторно.

Дублирование документов на приемникеДублирование документов на приемнике

На приемнике возникают дубли документов при повторной передаче данных.

Все документы, передаваемые из одной таблицы источника, попадают в один индекс с именем <schemaName.tableName> на приемнике. При этом по умолчанию приемник автоматически генерирует идентификаторы документов (_id). В результате одинаковые документы получают разные идентификаторы и дублируются.

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

Генерация происходит следующим образом:

  1. Если значение ключа содержит ., она экранируется \: some.key --> some\.key.
  2. Значения всех первичных ключей преобразуются в строку: <some_key1>.<some_key2>.<...>.
  3. Полученная строка преобразуется функцией url.QueryEscape.
  4. Если длина итоговой строки не превышает 512 символов, то она используется в качестве _id. Если длина больше 512 символов, то она хешируется алгоритмом SHA-1, и в качестве _id используется полученный хеш.

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

Решение:

  1. Установите первичный ключ для одного или нескольких столбцов на источнике или в правилах конвертации эндпоинта.
  2. Запустите трансфер.

Превышение лимита максимального количества полейПревышение лимита максимального количества полей

Текст ошибки:

Limit of total fields [<значение_лимита>] has been exceeded

Трансфер прерывается, если количество колонок в базе данных источника превышает максимальное количество полей в индексах OpenSearch базы данных приемника.

Решение: увеличьте в базе данных приемника максимальное количество полей с помощью параметра index.mapping.total_fields.limit.

Прерывание трансфера с ошибкой mapper_parsing_exceptionПрерывание трансфера с ошибкой mapper_parsing_exception

Текст ошибки:

mapper_parsing_exception failed to parse field [details.tags] of type [text]

Трансфер прерывается из-за несовместимости типов данных на источнике и приемнике.

Решение: перенесите данные в новый индекс OpenSearch, в котором тип поля details изменен на flat_object.

  1. Деактивируйте трансфер.

  2. Создайте новый индекс в OpenSearch:

    curl \
    --user <имя_пользователя_OpenSearch>:<пароль> \
    --header 'Content-Type: application/json' \
    --request PUT 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/<название_нового_индекса>/_settings' \
    --data '{"index.mapping.total_fields.limit": 2000}'
    
  3. Измените тип поля details:

    curl \
    --user <имя_пользователя_OpenSearch>:<пароль> \
    --header 'Content-Type: application/json' \
    --request PUT 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/<название_нового_индекса>/_mapping' \
    --data '
        {
            "properties": {
                "details": {
                    "type": "flat_object"
                }
            }
        }'
    
  4. Перенесите данные из исходного индекса в новый:

    curl \
    --user <имя_пользователя_OpenSearch>:<пароль> \
    --header 'Content-Type: application/json' \
    --request POST 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/_reindex' \
    --data '
        {
        "source":{
            "index":"<название_исходного_индекса>"
        },
        "dest":{
            "index":"<название_нового_индекса>"
        }
        }'
    
  5. Удалите исходный индекс:

    curl \
    --user <имя_пользователя_OpenSearch>:<пароль> \
    --header 'Content-Type: application/json' \
    --request DELETE 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/<название_исходного_индекса>'
    
  6. Присвойте новому индексу псевдоним:

    curl \
    --user <имя_пользователя_OpenSearch>:<пароль> \
    --header 'Content-Type: application/json' \
    --request POST 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/_aliases' \
    --data '
        {
        "actions": [
            {
            "add": {
                "index": "<название_нового_псевдонима>",
                "alias": "<название_исходного_псевдонима>"
            }
            }
        ]
        }'
    

Ошибка SSL is requiredОшибка SSL is required

Ошибка возникает при подключении к кластеру Managed Service for OpenSearch как к пользовательской инсталляции через FQDN хоста OpenSearch, если вы не включили опцию SSL в настройках эндпоинта. Кластер Managed Service for OpenSearch по умолчанию требует SSL-шифрование для подключений по FQDN хоста.

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

Решение:

В настройках эндпоинта активируйте опцию SSL.

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

Если ваш источник использует самоподписанный сертификат, загрузите CA-сертификат в соответствующее поле в настройках эндпоинта.

Не удалось найти ни одной таблицыНе удалось найти ни одной таблицы

Текст ошибки:

Unable to find any tables

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

Решение:

  • Проверьте наличие индекса. Убедитесь, что вы верно указали название индекса и в источнике действительно есть индекс, который вы собираетесь переносить.

  • Убедитесь, что пользователь имеет нужные права для работы с индексом.

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

Предыдущая
Приемник
Следующая
Приемник
Проект Яндекса
© 2025 ООО «Яндекс.Облако»