Миграция данных из внешнего 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 Distributed Train.
Шаг 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-запроса.
- Перед началом работы
- Способ 1. С помощью кастомного коннектора, используя правила переноса
- Способ 2. С помощью API