КХ для расширенной аналитики. Протестировали, все здорово. И встал вопрос - а нужна ли теперь в проекте mongodb. Проблема в чем: пользователям нужно забирать собранные данные. В монге завели автоинкрементное поле и на основе его забираем свежие данные порциями. Особенность входных данных в том, что дата/время этих данных может быть в прошлом. Мы решили добавить в КХ колонку (processedTime Int64), которая хранит дату обработки данных в миллисекундах. И на основе этой колонки можно отдавать пользователю свежие данные. Что посоветуете? Можно ли ставить один КХ на бэкенд, если будет одновременно сидеть 100/200/500 пользователей с короткими запросами типа:
SELECT field1, field2, field2
FROM table
WHERE
date > '2017-03-23' AND
userId = 123 AND
processedTime > 546545454
ORDER BY processedTime DESC LIMIT n,20
И такими:
SELECT field1,reportDate, count() as total
FROM table
WHERE
date > '2017-03-01' AND
userId = 123
GROUP BY field1, reportDate
HAVING total > 10
ORDER BY total DESC
Если первичный ключ - (userId, date), а количество таких запросов в секунду меньше сотен, то должно быть нормально.
Обсуждают сегодня