Вопрос слегка пространный. не понятно что вы потом будете делать с этими записями?
Возможно по крайнем мере 4 решения. Их выбор зависит от того, что вы потом с этим будете делать.
1. Обычный SQL. Например, Postgres + партицирование.
2. Посмотреть в сторону NoSQL решений. Поскольку у вас графовые решения, то есть HyperGraphDB, Neo4j
сам я эти БД не использовал, но как возможное решение попробовать стоит.
3. Посмотреть в сторону распределенных решений. Например, apache hadoop.
обработку данных осуществлять при помощи map-reduce технологии.
4. Если нужно будет искать что-нибудь, то можно воспользоваться каким-нибудь поисковым движком, который индексирует локальные файлы и ищет по нему быстро. под рукой ссылок нет, может позже скину ссылки на пару примеров.
Мне хватило 1-ого варианта. БД где-то 30Гб Выборка идет из конкретной секции по условию и так далее…
Знаю людей, которые используют 3-й вариант, тоже не жалуются. У них БД по больше до 64Tб