Як об’єднати велику кількість рядків, підсумовуючи дані по однакових рядках

50 csv-файлів у форматі документ;колонка1;колонка2;колонка3 Усього близько мільярда рядків у всіх файлах. Документи можуть повторюватися як у межах одного файлу, так і між кількома файлами (заздалегідь кількість однакових документів невідома).

Об'єднати всі файли в один (або одну БД), підсумовуючи дані в колонці1, колонці2 і колонці3 для однакових документів.

Підкажіть будь ласка, як це можна зробити за мінімальний час? Поставив теги SQL, тому що думаю, що без якогось SQL-сервера тут не обійтися.

Написати парсер CSV-файлів неважко. Важче зробити так, щоб цей парсер пройшовся по мільярду рядків, обчислив однакові та підсумував дані щодо них. Де зберігати проміжні результати? На згадку вони не помістяться (файли займають близько 150 гб), тому доведеться робити це на жорсткому диску. Ось і цікавлюся готовими рішеннями – можливо, до мене хтось стикався з таким обсягом даних та підкаже, як це зробити за мінімальний час.

Уявіть навіть просто додавання до SQL-бази - потрібно для кожного документа з 1 млрд зробити SELECT для того, щоб дізнатися, є він в базі чи ні і, якщо є, підсумувати дані. 1 млрд SELECT'ів будуть робитися вічність, причому чим більше база, тим довше виконуватиметься кожен SELECT.