Лучший способ передачи данных из RDBM в S3 партиями - PullRequest
0 голосов
/ 03 мая 2020

У меня есть требование для передачи данных (частота = одна передача каждый вечер) из локальной реляционной базы данных (SQL сервер) в AWS S3 (поскольку требование к файлам csv и формату csv является обязательным). Размер данных составляет около 500 ГБ. При отсутствии CD C вся база данных будет копироваться каждый вечер.

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

Я подумал о соединении JDB C с кластером EMR-spark для импорта данных из предварительной базы данных RDBM перед преобразованием их в csv и отправкой в ​​S3, но я не уверен, что это является наиболее оптимальной архитектурой.

Для JDB C я не знаю, существует ли способ иметь несколько соединений (между emr-spark и sqlserver) параллельно для ускорения передачи.

Это VPN-соединение, которое соединяет локальный сайт и часть aws.

Может кто-нибудь посоветовать мне лучший способ получить самый быстрый перевод, соблюдая принципы aws с хорошей архитектурой?

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Использование apache искры для передачи данных объемом 500 ГБ - большая проблема, поскольку искра - это больше обработка больших наборов данных, чем прием пищи.

Так что AWS Клей здесь не следует рассматривать. Теперь вы можете использовать AWS EMR и выполнять импорт SQ OOP в вашу корзину s3 с большим количеством картографов, поскольку это значительно повысит производительность, и 500 ГБ данных могут быть переданы менее чем за 2 часа в зависимости от конфигурации rdbms.

Другие инструменты, если вы используете AWS, которые можно считать

  1. Служба миграции данных (DMS) Это быстрый и надежный способ ежедневной передачи данных, и его Конфигурация также очень проста. Вы можете go через него здесь .

  2. Инструмент преобразования схемы (SCT) Это второй aws рекомендуемый способ перемещения данных из rdbms в s3. Вы можете использовать это преобразование существующих сценариев SQL для совместимости с красным смещением, а также вы можете переместить ваши данные из rdbms в s3. Это требует некоторого опыта в настройке. Прочитайте об этом здесь .

  3. SQ OOP на EMR: это мой предпочтительный способ переноса данных, но для этого потребуется знание SQ OOP. Если вам не безразличен SQ OOP, выберите эту опцию, чтобы создать свою работу в качестве временных кластеров emr и объединить ее, используя aws пошаговые функции.

Надеюсь, это поможет.

1 голос
/ 03 мая 2020

Вы можете использовать AWS Клей или Amazon EMR для подключения к локальной базе данных и планирования заданий запуска для ежедневного перемещения данных в S3. Я бы порекомендовал Glue, чтобы избежать головной боли при управлении кластером EMR.

...