DP>Если нет никаких других требований, то уже в той теме было как минимум 2 решения: от ТСа и от вас. Вот и берем любое. Юзаем. Потому, если вдруг надо будет — оптимизируем. Если изначально было требование по скорости: сразу прикидываем по скорости. Если ни у кого в команде не было очень близкого опыта, чтобы сразу сказать, какое стоит выбрать решение, то создаем специальную задачу на рисерч. Даем ей 3-5 дней на выполнение. На выходе будут несколько рассмотренных вариантов, репорт с цифрами, и уже наброски решения. Потом, исходя из полученных знаний, выбираем окончательное решение и расписываем дальнейшие задачи. После чего делаем финальное решение.
DP>Тут все очень зависит от контекста команды и проекта: какой стек знаний, какой стек CI/CD и прочие подобные вопросы. Одно дело — решить задачу с собеседования, другое — реальная задача в реальном окружении. Это окружение уже задает некоторые рамки, которые также влияют на скорость реализации и принятие решения.
Дополню: в качестве решения можно элементарно выделить тачку с 128 Гигами РАМа (она может быть в компании) и считать все в памяти. Что еще раз говорит о том, что нужно смотреть на контекст в реальности. А он может быть очень разным. А в другой компании это будет выгоднее считать где-то в кластере облаке.
Еще вопросы, которые я бы задал: насколько часто это нужно делать? На каком железе? Может это надо раз в месяц — можно мощный сервер на это время арендовать (да, тут будет вопрос, как туда сотню гигов закинуть). Может — это надо АРМовом мобильном проце делать на слабой железке, используемой для сетевого сниффера или для НАСа.