Миграция данных из внешнего S3 в Advanced
Мигрировать данные в Advanced можно несколькими способами:
Перед началом работы
Подготовьте данные, выбрав один из способов:
Разбейте файл на части, не превышающие 200–400 ГБ, чтобы переносить по частям.
Разложите файлы в источнике по разным директориям и переносите каждую директорию по отдельности.
Создайте архив переносимых файлов и переносите только архив.
Подготовьте S3-бакет на платформе Advanced:
Перейдите в платформу Advanced.
(Опционально) Создайте бакет в Object Storage Service Advanced.
При создании бакета отключите настройку шифрования SSE-KMS для корректного переноса данных без ошибок.
Способ 1. С помощью кастомного коннектора, используя правила переноса
По этому сценарию можно создать кастомный коннектор к S3-бакету на платформе Advanced и использовать правила переноса данных для миграции.
Шаг 1. Создайте кастомный коннектор к S3-бакету в Advanced
Для создания коннектора:
Перейдите в раздел Data Catalog → Data Transfer Service → Коннекторы.
Нажмите Создать коннектор.
Выберите источник — Custom S3.
Введите Название коннектора.
Укажите Общие данные коннектора:
S3 endpoint
Название S3 бакета
Укажите Секретные данные коннектора, полученные при подготовке S3-бакета на платформе Advanced.
Нажмите Создать.
После создания коннектор отобразится в таблице коннекторов.
Шаг 2. Создайте правило переноса
Перейдите в Data Catalog → Data transfer service → Правила переносов.
-
В качестве места назначения переноса укажите коннектор, созданный на шаге 1.
Если нет необходимости использовать правила переноса, можете загрузить файлы в бакет OBS.
Создание S3-бакета с помощью API в Advanced (en)
Способ 2. С помощью API
С помощью этого сценария можно создать коннектор к S3-бакету на платформе Advanced, используя API ML Space.
Шаг 1. Создайте коннектор к S3-бакету в Advanced с помощью API
Создайте коннектор к 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 будет создан персональный коннектор.
См.такжеСохраните advanced_connector_id, полученный в ответе на запрос.
Шаг 2. Создайте коннектор к внешнему S3-бакету
Создайте коннектор с типом custom к внешнему S3-бакету, выполнив API-запрос.
Сохраните connector_id, полученный в ответ на запрос.
Шаг 3. Запустите перенос данных из внешнего S3-бакета в S3-бакет Advanced
Создайте перенос с помощью 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 — идентификатор запущенного переноса.
Проверьте статус выполнения переноса с помощью API-запроса:
В ответе вернется transfer_id и history_id.
Возможно просмотреть сгруппированный лог по выполненному переносу через запрос, указав tranfser_id выполненного переноса.
Шаг 4. Получите логи выполненного переноса
Получите сгруппированный лог выполненного переноса, указав tranfser_id переноса с помощью API-запроса.