Вопрос не совсем про yii..
скорее архитектурный..
Есть большой csv файл. Фактически база данных. 5млн строк, объем около гига. При этом он регулярно обновляется (то есть компания получает его извне)
Он содержит кучу ошибок, да еще и структурирован через одно место (одни и те же значения могут быть занесены слегка по разному).
Нужно вычистить ошибки по возможности (sanitize) и сгруппировать элементы (заменить название чуть по разному на одно и тоже)
Вопрос в том как это делать)
Кидать все в базу и с ней работать, но это очень медленно. Работать кусками, но проблема, что почистить можно по частям, а вот группировать требует всех вариантов по файлу значит всех записей.
Ну и по времени такая процедура как сейчас написано требует пары дней))
Значит как то по частям делать и в крон или асинхронно.
Прошу прощения за сумбур, может у кого какие идеи есть?
используй генератор на yield. Читаешь к примеру по сто строк, обрабатываешь как надо. Дальше опять сто строк. И так до конца файла