Мы копируем сжатые файлы .csv из AWS-S3 (США) в AWS-EFS (Европа) и должны импортировать их в кластер MariaDB (Европа). Задача состоит в том, где и как лучше всего выполнить декомпрессию при вызове mySQLImport или LOAD DATA INFILE.
Справочная информация:
Пользователи (через клиент на основе браузера) будут загружать большие файлы .csv (<= 2 ГБ), используя предварительно подписанный URL-адрес, в AWS-S3, чтобы затем импортировать их в наш европейский кластер MariaDB. Мы копируем сжатые файлы из S3 в AWS-EFS (Европа). Мы используем EFS из-за скорости (выше S3) и не знаем, какой сервер БД с балансировкой нагрузки будет обрабатывать INFILE LOAD DATA (EBS зависит от EC2, поэтому не отказоустойчив). </p>
Наш SysAdmin рекомендует написать сценарий bash для распаковки файла, используя один из серверов БД в кластере, а затем выполнить импорт, используя mySqlImport LOAD DATA INFILE. Проблема заключается в том, что мы замедлили бы работу сервера (-ов) БД для задачи распаковки, которая обычно не выполняется сервером БД (ввод-вывод, ЦП, влияние на память, влияющее на пользователей в сети).
Мы не можем распаковать в США и отправить распакованный файл в европейский регион AWS из-за более высоких сроков передачи и межрегиональных затрат на передачу.
Вопрос:
Является ли решение добавить один или два сервера рядом с кластером БД для обработки декомпрессии (для обеспечения надежности необходимо обеспечить отработку отказа, балансировку нагрузки и т. Д.) Или использует сервер БД для декомпрессии в порядке, возможно, «усиливая» серверов дб хватит? ... или другие варианты?