Clickhouse Yandex log analyzer. Создаем анализатор логов на базе Clickhouse. Clickhouse vs mysql
Для многих коммерческий проектов встает вопрос сбора статистики для внутренних нужд. Чем больше показателей мы собираем, тем больше проблем возникает в дальнейшем.
Статистика сайта на базе mysql
Несколько лет назад в качестве базы для хранения данных статистики была выбрана mysql. В базу записывалась базовая информация о совершенных пользователями действиях. Какой товар посмотрели, когда и с какого ip посмотрел и возможно совершил нужное действие (например положил в корзину), был ли пользователь авторизован и тд.
Через полгода работы проекта мы уперлись в производительность SATA диска и заменили его на ssd. Еще через год индексы перестали помещаться в 32Gb ОЗУ. Следующий шагом для рост был новый сервер с 64Gb ОЗУ и 2x512 SSD. При росте объема накопленных данных встала проблема расширения собираемых данных. Те кто работает с mysql и таблицами больше 5G знают насколько затратной становится операция добавление нового поля. Для обеспечения приемлемой скорости выборки данных для отчета мы добавляем индексы — а это вызывает увеличение занимаемого дискового пространства.
Так 600_000_000 записей в год у нас занимают около 500Gb на ssd.
При росте данных требуется увеличение производительности железа. (скорость диска, размер ОЗУ).
Расширение функционала по сбору данных затруднена особенностями работы mysql c большими таблицами. Сейчас добавление новой колонки в основную таблицу занимает несколько суток
Источник