Лучший способ быстро работать с большими объемами данных CSV

У меня есть большие наборы данных CSV (более 10 миллионов строк), которые необходимо обработать. У меня есть два других файла, на которые нужно ссылаться для вывода - они содержат данные, которые дополняют то, что мы знаем о миллионах строк в файле CSV. Цель состоит в том, чтобы вывести новый CSV-файл, в котором каждая запись объединена с дополнительной информацией из других файлов.

Представьте, что в большом CSV-файле есть транзакции, но информация о клиенте и платежная информация записаны в двух других файлах, и мы хотим для вывода нового CSV, в котором каждая транзакция связана с идентификатором клиента, идентификатором учетной записи и т. д.

У коллеги есть функциональная программа, написанная на Java для этого, но она очень медленная. Причина в том, что CSV-файл с миллионами строк, по-видимому, должен быть просмотрен много-много-много раз.

Мой вопрос - да, Я подхожу к этому - как мне подойти к этому в Ruby? Цель состоит в том, чтобы это было быстрее (18+ часов прямо сейчас при очень низкой активности процессора)

Могу ли я загрузить такое количество записей в память? Если да, то как мне это сделать?

Я знаю, что это немного расплывчато. Просто ищу идеи, поскольку это для меня немного в новинку.

11
задан Andrew Marshall 5 April 2011 в 19:17
поделиться