Умный ответ в стиле «отстаньте» — hadoop.
Если же думать как решить — если проблем с производительностью нет и 5Тб одним файлом устраивает, то надо просто использовать деревья для хранения индекса и обновлять индексы только на порцию пришедших данных.
Вот простейший пример индекса: ключ превращем в хеш (не важно как, либо 1-в-1, либо md5 от него и младшие биты), после этого делаем каталоги с именем первого байта хеша, в нём каталоги с вторым байтом и т.д., до тех пор, пока не остаётся что-то очень компактное. В момент добавления данных при их индексации просто обновляется маленькая порция тех кусочков индекса, которые поменялись.
Это решение «на коленке», если что-то крутое — смотрите в сторону специализированных баз данных.