Как будет правильно хранить большой объём данных парсинга, например у меня есть 5 тысяч ссылок, в каждой из которых таблица в 5 колонок, 5000 строк.
И каждую ссылку нужно будет парсить раз в n-дней, и сохранять результат не удаляя старый.
Т.е в итоге получится очень и очень много данных.
Как правильно будет хранить все эти данные?
Наверно нужно применять тот же подход, что и в системах контроля версий. Тогда каждый результат одного URL можно обновлять (commit), не затирая предыдущего. При этом место в БД будет увеличиваться на дельту (diff).
раз в день обновляем все ссылки
25 000 000 * 365 = 9 125 000 000 000 в год
Да, для одной таблицы это пожалуй многовато
Рекомендую поступить так
хранить данные в двух таблицах
в первой 25 000 000
во второй (архивной) все записи которые были раньше - до обновления
то есть вся история изменений у Вас будет во второй таблице
Соответственно секционировать архивную таблицу примерно по 2 недели
Таким образом Вы добьетесь что актуальные данные будут доставаться быстро
Архивные подольше - но это и понятно
Потом данные за прошлые периоды можно бэкапить оставляя только последние записи изменений (например хранить в архиве только данные за полгода)
В случае необходимости - всё можно достать и посчитать,
но практика говорит что такие бешеные объемы если и доставать то они считаться будут очень долго, а ввиду давности времени зачастую бывают неактуальны. По прошлогодним ссылкам явно никто аналитику проводить не будет.
Тогда предлагаю как то кластеризовать ссылки
то есть создаем таблицу ссылок в этой таблице поле с номером хранилища (например номер репозитория 1,2,3,4,5)
и разделяем хранение по 5 актуальным таблицам
и соответственно 5 архивным таблицам
Тогда Вы от проблемы бэкапирования не избавитесь - но сможете в архиве держать больше данных в архиве
П.С.
Блин 9 триллионов строковых значений это у Вас диски раньше закончатся, чем Вы начнете что то анализировать
igruschkafox: Я погоречился с обновлением в каждый день. Раз в месяц буду обновлять. Решил не парится с БД и записывать всё в xlsx, в бд буду заносить только данные по "количеству запросов в топе".