Я бы предложил вам использовать MongoDB, в настоящее время у меня есть несколько экземпляров, на которых хранятся миллионы документов.В отличие от вашей обычной реляционной схемы, вы можете использовать поддержку поддокументов MongoDB.
MongoDB - это база данных NoSQL, но ее очень легко использовать и начать с нее, если вы знакомы с базами данных и вашим днем.На сегодняшний день OO.
MongoDB имеет драйверы для большинства популярных языков, включая Ruby, так что вы можете установить драйвер для Ruby (при условии, что это то, что вы хотите использовать), выполнив следующую команду с использованием gem:
gem install mongo
И если запущенный Debian / Ubuntu просто не запускает mongodb со следующим:
apt-get install mongodb
Это должно помочь вам начать работу.
В зависимости от размера каждой записи вы можете использовать различныеВ различных проектах MongoDB в настоящее время имеет ограничение в 16 МБ на документ, поэтому вам необходимо знать об этом.
У меня была бы коллекция именованных веб-сайтов для хранения основной информации о сайтах, которые вы отслеживаете (имя,url, ссылка на клиента, ...)
Затем есть другая коллекция, которая будет использоваться для храненияВашу статистику, которую можно назвать «статистикой», я буду хранить каждый из ваших поддокументов (статистика каждую минуту) в другом документе, в котором будут храниться данные за один день.
Таким образом, каждый документ в статистике будет чем-токак:
{
_id : X,
website_id : STORE_THE_ID_HERE,
timestamp_start : PUT_THE_TIMESTAMP_WHEN_YOU_START_MONITORING_HERE,
timestamp_end : SAME_AS_ABOVE_REALLY,
stats_count : A_DENORMALIZED_COUNT_OF_STATS
stats : [ { views : X, clicks : X2, ... },
...
]
}
Надеюсь, что вы начали, я думаю, MongoDB идеально соответствует вашим требованиям, если вы хотите попробовать.