Какие есть хранилища для логов и статистики?

Дано:
Игровой сервер, к которому подключается множество пользователей.
Для каждого пользователя пишем в БД различные статистические данные об использовании сервера (логи, статистика).

Что сейчас:
Выполняется большое кол-во insert и update в базу данных, высокая нагрузка, тормоза и пр.

Какие есть решения, чтобы все эти данные собирать, и не мучить базу данных? Специальные БД? Какие?
  • Вопрос задан
  • 6453 просмотра
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Пригласить эксперта
Ответы на вопрос 4
romy4
@romy4
Exception handler
Отключить индексы. Это основной вид тормозов при вставке. Для поиска использовать слейв копию.
Смотря что ищите в данных. Но может подойдёт Mongo, Redis.
Ответ написан
Комментировать
igruschkafox
@igruschkafox
Специалист по сопровождению БД MS SQL
а у меня сейчас на работе такая же фигня ....
давайте будем применять NO SQL .... и началось....

Ну запишешь ты 10 миллионов строк в секунду
как ты их потом обрабатывать будешь?
Яровая стайл?

выход простой - писать в маленькие секционированные таблицы в которых (маленькие по времени - например данные хранить в них не более 2 недель, есть варианты где и по суткам секционированно)
потом переключать эти таблицы в хранилище - там хранить месяца 2-3 (примерно)
когда уже обработка вся закончилась (данные стали редко востребованными) перекидывать в долгосрочное хранение при этом грохать все индексы, включать компрессию страниц и хранить уже полгода (желательно в другой БД)
потом эту Архивную БД бэкапить и убирать с сервера

И правильно сказали выше
чем больше индексов тем больше тормозят операции вставки и апдейты

так же встречал схему где такие базы логов хранятся исключительно на отдельном сервере - а в аналитические хранилища переходят логшипингом или олвейс Он или бэк аром раз в два дня

Не переживайте - и Монго Вы тоже можете забить инсертами, а уж Апдейты там вообщето уязвимое место (данные копируются сразу в несколько таблиц - денормализация, и что бы апдейтануть одну запись она будет искаться везде где она есть .... надеюсь понятно объяснил. А искаться блин JSONом! ) :)
Ответ написан
ClickHouse оптимизирована по хранению скорости записи/аналитики.
Есть также Druid.
Ответ написан
Комментировать
@bnytiki
для статистики influxdb - как раз разработана для быстрого сохранения огромного количества показателей. sic! для сбора показателей, но вовсе не для их длительного хранения.
для хранения переносить в другую СУБД.

для логов elasticsearch, можно логи туда загонять в отложенном режиме.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы