Как импортировать сжатый файл.csv из AWS-EFS в кластер MariaDB

Мы копируем сжатые файлы.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, поэтому не отказоустойчив).

Наш SysAdmin рекомендует написать сценарий bash для распаковки файла, используя один из серверов БД в кластере, а затем выполнить импорт, используя mySqlImport LOAD DATA INFILE. Проблема заключается в том, что мы замедлили бы работу сервера (-ов) БД для задачи распаковки, которая обычно не выполняется сервером БД (ввод-вывод, ЦП, влияние на память, влияющее на пользователей в сети).

Мы не можем распаковать в США и отправить распакованный файл в регион AWS Europe из-за более высоких сроков передачи и межрегиональных затрат на передачу.

Вопрос:

Является ли решение добавить один или два сервера рядом с кластером БД для обработки декомпрессии (для обеспечения надежности необходимо обеспечить отработку отказа, балансировку нагрузки и т. Д.), Или для обеспечения правильной декомпрессии используется сервер БД, возможно, "усиление" серверов БД приведет к достаточно? ... или любые другие варианты?

1 ответ

Если AWS даже позволяет вам LOAD DATA, затем

  1. Сожмите CSV-файл в США.
  2. Отправьте сжатый файл в Европу.
  3. Распакуйте файл в Европе.
  4. Бежать LOAD DATA INPUT,

Примечание. Шаги 1,2,3 не затрагивают базу данных. Даже если вы используете одну и ту же виртуальную машину для работы, воздействие на базу данных должно быть минимальным (пережевывание IOP).

Типичный файл CSV сжимает только 3:1. Стоит ли прилагать усилия, чтобы сэкономить только 1,3 ГБ затрат на xfer для файла 2 ГБ?

Другие вопросы по тегам