Как импортировать сжатый файл .csv из AWS-EFS в кластер MariaDB - PullRequest
0 голосов
/ 21 января 2019

Мы копируем сжатые файлы .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 из-за более высоких сроков передачи и межрегиональных затрат на передачу.

Вопрос:

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

1 Ответ

0 голосов
/ 23 января 2019

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

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

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

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

...