Как скопировать большие данные из GCS в S3? - PullRequest
0 голосов
/ 17 февраля 2019

Как скопировать несколько терабайт данных из GCS в S3?

В GCS есть замечательная функция "Перенос", которая позволяет импортировать данные из S3 в GCS.Но как сделать экспорт другим способом (кроме перемещения заданий по генерации данных в AWS)?

В: Почему бы не gsutil?Да, gsutil поддерживает s3://, но передача ограничена пропускной способностью сети этой машины.Как проще сделать это параллельно?

Я попробовал Dataflow (он же Apache Beam сейчас), он бы работал нормально, потому что его легко распараллелить на сотне узлов, но не вижу, что все простоскопируйте его отсюда в функцию '.

ОБНОВЛЕНИЕ: Кроме того, похоже, что Beam вычисляет список исходных файлов на локальном компьютере в одном потоке перед запуском конвейера.В моем случае это занимает около 40 минут.Было бы неплохо распространить его в облаке.

ОБНОВЛЕНИЕ 2: Пока я склонен использовать два собственных сценария, которые будут:

  • Сценарий A: перечисляет все объекты для передачии поставьте задачу передачи для каждой задачи в очередь PubSub.
  • Скрипт B: выполняет эти задачи передачи.Работает в облаке (например, Kubernetes), много экземпляров параллельно

Недостатком является то, что он пишет код, который может содержать ошибки и т. Д., Не используя встроенное решение, такое как GCS "Transfer".

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете использовать gsutil на экземплярах Compute Engine (или EC2) (которые могут иметь более широкую полосу пропускания сети, чем ваша локальная машина).Использование gsutil -m cp распараллелит копирование между объектами, но отдельные объекты будут по-прежнему копироваться последовательно.

...