Если вы хотите обрабатывать огромные данные с миллионами строк, это можно рассматривать как базу данных временных рядов, которая регистрирует время и сохраняет данные в базе данных. Некоторые из способов хранения данных используют InfluxDB и MongoDB.
ы вы решили следующую проблему хранения и поиска?
Примерно 2.000.000 строк будут добавляться каждый день (365 дней в году) со следующей информацией в строке:
id (уникальный идентификатор строки)entity_id (принимает значения от 1 до 2.000.000 включительно)date_id (увеличивается на единицу каждый день - принимает значения от 1 до 3,650 (десять лет: 1 * 365 * 10))значение_1 (принимает значения от 1 до 1.000.000 включительно)значение_2 (принимает значения от 1 до 1.000.000 включительно)entity_id в сочетании с date_id является уникальным. Следовательно, в таблицу можно добавить не более одной строки для каждой сущности и даты. База данных должна содержать ежедневные данные за 10 лет (7.300.000.000 строк (3.650 * 2.000.000)).
Что описано выше, это шаблоны записи. Шаблон чтения прост: все запросы будут выполняться по определенному entity_id. То есть получить все строки, описывающие entity_id = 12345.
Поддержка транзакций не требуется, но решение для хранения должно быть с открытым исходным кодом. В идеале я хотел бы использовать MySQL, но я открыт для предложений.
Теперь - как бы вы решили описанную проблему?
Обновить: Меня попросили уточнить в отношении моделей чтения и записи. Запись в таблицу будет производиться одной серией в день, где новые записи 2М будут добавлены за один раз. Чтения будут выполняться непрерывно с одним чтением каждую секунду.