Как я могу прочитать огромный CSV-файл в Rails на Heroku? - PullRequest
0 голосов
/ 29 января 2020

Я работаю над приложением Rails, размещенным на Heroku.

Каждый день мне нужно загружать огромный ZIP-файл (> 200 МБ), содержащий CSV со списком продуктов, атрибутами продуктов и ценами, которые я Затем необходимо распаковать и go через, чтобы обновить цены на эти продукты на моем сайте.

Первоначально я делал:

  • Задание A для загрузки ZIP в tmp в Heroku, разархивируйте CSV в tmp папке
  • Задание B, чтобы прочитать CSV, найти продукты и обновить цены в БД

Это было все в порядке, пока я не добавил несколько рабочих и динамов в свое приложение, потому что временные файлы Heroku доступны только одному динамо, поэтому файл CSV будет доступен только для дина, отвечающего за задание А. Я добавил несколько динамов и рабочих для разделения задания B в меньшие куски и ускорить весь этот процесс в целом.

В качестве альтернативы я попытался вместо этого загрузить файл в корзину S3 - но проанализировал файл CSV объемом 200 МБ Файл от S3 очень длинный (примерно 15 минут). Поэтому я подумал о том, чтобы проанализировать его и преобразовать в массив хэшей, который я затем сохраню где-нибудь, чтобы иметь возможность легко получить к нему доступ, но где я мог бы сохранить это?

Буду признателен за любые указания по этому вопросу. Вероятно, есть очевидное решение, о котором я не думал, потому что я работаю над этим слишком долго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...