nav-img
ML Space

Миграция данных из внешнего S3 в Advanced

Мигрировать данные в Advanced можно несколькими способами:

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

  1. Подготовьте данные, выбрав один из способов:

    • Разбейте файл на части, не превышающие 200–400 ГБ, чтобы переносить по частям.

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

    • Создайте архив переносимых файлов и переносите только архив.

  2. Подготовьте S3-бакет на платформе Advanced:

    1. Перейдите в платформу Advanced.

    2. (Опционально) Создайте бакет в Object Storage Service Advanced.

      При создании бакета отключите настройку шифрования SSE-KMS для корректного переноса данных без ошибок.

    3. Создайте и получите ключи доступа AK/SK для OBS.

Способ 1. С помощью кастомного коннектора, используя правила переноса

По этому сценарию можно создать кастомный коннектор к S3-бакету на платформе Advanced и использовать правила переноса данных для миграции.

Шаг 1. Создайте кастомный коннектор к S3-бакету в Advanced

Для создания коннектора:

  1. Перейдите в раздел Data Catalog → Data Transfer Service → Коннекторы.

  2. Нажмите Создать коннектор.

  3. Выберите источник — Custom S3.

  4. Введите Название коннектора.

  5. Укажите Общие данные коннектора:

    • S3 endpoint

    • Название S3 бакета

  6. Укажите Секретные данные коннектора, полученные при подготовке S3-бакета на платформе Advanced.

  7. Нажмите Создать.

После создания коннектор отобразится в таблице коннекторов.

Шаг 2. Создайте правило переноса

  1. Перейдите в Data Catalog → Data transfer service → Правила переносов.

  2. Создайте правило переноса.

    В качестве места назначения переноса укажите коннектор, созданный на шаге 1.

Если нет необходимости использовать правила переноса, можете загрузить файлы в бакет OBS.

Способ 2. С помощью API

С помощью этого сценария можно создать коннектор к S3-бакету на платформе Advanced, используя API ML Space.

Шаг 1. Создайте коннектор к S3-бакету в Advanced с помощью API

  1. Авторизуйтесь в API.

  2. Создайте коннектор к S3-бакету в Advanced с помощью API-запроса:

    {
    "name":"connector to s3 advanced",
    "source_type":"s3custom",
    "workspace_id":"<workspace_id>""
    "parameters":{
    "endpoint":"<custom_connector_endpoint>",
    "bucket":"<custom_connector_bucket>",
    "access_key_id":"<custom_connector_key>",
    "security_key":"<custom_connector_secret>",
    }
    }

    Если требуется создать публичный коннектор, который доступен всем пользователям воркспейса — добавьте в тело запроса workspace_id. Без указания workspace_id будет создан персональный коннектор.

  3. Сохраните advanced_connector_id, полученный в ответе на запрос.

Шаг 2. Создайте коннектор к внешнему S3-бакету

  1. Создайте коннектор с типом custom к внешнему S3-бакету, выполнив API-запрос.

  2. Сохраните connector_id, полученный в ответ на запрос.

Шаг 3. Запустите перенос данных из внешнего S3-бакета в S3-бакет Advanced

  1. Создайте перенос с помощью API-запроса.

    В теле запроса укажите:

    {
    "name":"s3 user -> s3 advanced",
    "description":"",
    "connector_id":"<connector_id>",
    "destination_connector_id":"<advanced_connector_id>",
    "connector_type":"connector_type",
    "destination_connector_type":"s3custom",
    "cluster_name": "christofari-1",
    "query":{"source":"object_to_transfer","destination":"/destination-dir"},
    "strategy":"write_all",
    "favorite":false,
    "legacy":false
    }

    Где:

    • name — имя переноса;

    • description — описание переноса;

    • connector_id — UID коннектора к внешнему S3-бакету;

    • destination_connector_id — UID коннектора к S3-бакету Advanced;

    • query / source — путь к объекту, который требуется перенести;

    • query / destination — путь в месте назначения, куда требуется перенести объект.

    Остальные поля нужно оставить без изменения.

    В ответе на этот запрос вернется transfer_id — идентификатор запущенного переноса.

  2. Проверьте статус выполнения переноса с помощью API-запроса:

    В ответе вернется transfer_id и history_id.

    Возможно просмотреть сгруппированный лог по выполненному переносу через запрос, указав tranfser_id выполненного переноса.

Шаг 4. Получите логи выполненного переноса

Получите сгруппированный лог выполненного переноса, указав tranfser_id переноса с помощью API-запроса.