Длинный набор данных из маленьких строк - нечастые записи, очень частые чтения - какая платформа лучше?
Часть платформы, которую я создаю, требует большой таблицы данных (начиная с десятков миллионов записей, масштабируясь до сотен миллионов в течение года или двух, возможно, достигая миллиардов в какой-то момент). Структура таблицы данных: int, int, float, datetime, datetime. Эта таблица данных будет принимать данные из одного источника (сценария импорта) партиями до десяти миллионов строк. У меня есть полный контроль над сценарием импорта. Различные приложения будут извлекать данные через веб-API и, возможно, пользовательский TCP-сервер. I am expecting requests for individual rows in bursts of up to 50,000 per second. At first this sounds like a good application of a key-value design, but many of the requests will take the form:
select float where int=A and datetime < B and datetime < C order by datetime, datetime limit 0,1
the basic idea is that I'm getting the datapoint for a given series that has the latest datetime pair below a user-defined threshhold. I will probably be able to do some logic on the application layer to pull an entire series at a time, but much of that ordering will still fall to the database layer.
I'm currently running a prototype off of SQL Server 2005 and it's very responsive at up to 1,000 requests per second with 10 million records. I am concerned about scaling to hundreds of millions of rows at 50,000 requests.
Как вы думаете? Is MySQL the tool for the job because it's more lightweight than SQL Server? Should I look into NoSQL solutions (can any even handle the sample query)? Любые другие идеи приветствуются.
Спасибо!
theserge
1 ответ
Является ли MySQL инструментом для этой работы, потому что он более легкий, чем SQL Server?
Нет.
Я смотрю на решения NoSQL (любой может даже обработать образец запроса)?
В общем нет как... примитивность делает их непригодными.
Посмотрите на типичные решения TickerPlant. Ожидайте, чтобы заплатить 50 000 долларов США вверх. Это ОЧЕНЬ специальное требование. Ожидайте использовать много серверов.