Самый очевидный ответ - просто «разделить данные».Поместите их в разные файлы, например.1 млн строк на файл.NTFS неплохо справляется с сотнями тысяч файлов в папке.
Тогда у вас есть несколько ответов относительно уменьшения размера данных.
Далее, зачем хранить данные в виде текста, если у вас есть структура фиксированного размера?Храните числа как двоичные файлы - это еще больше сократит пространство (текстовый формат очень избыточен).
Наконец, СУБД может стать вашим лучшим другом.СУБД NoSQL должна работать хорошо, хотя я не эксперт в этой области, и я не знаю, какая из них будет хранить триллион записей.
На вашем месте я бы использовал двоичный формат фиксированного размера,где каждая запись занимает фиксированные (16-20?) байты пространства.Затем, даже если я храню данные в одном файле, я легко могу определить, с какой позиции мне нужно начать чтение файла.Если вам нужно выполнить поиск (скажем, по столбцу 1) и данные не генерируются повторно все время, то можно было бы выполнить одноразовую сортировку по ключу поиска после генерации - это будет медленно, но какодноразовая процедура была бы приемлемой.