В какую бд лучше всего записывать много логов сайта?
У меня появилась задача написать свою систему сбора статистики посещения сайтов, что-то вроде Яндекс метрики и Google Analytics.
В пуле будет много сайтов, суммарная посещалка думаю до 100к пользователей в день.
Схема будет схожая: выдается js скрипт, который вешается на сайт, он собирает нужные данные и отправляет запись на сервер. В таблицах будет примерно по 50 параметров о посетителе (IP, User Agent, параметры браузера...)
Возник вопрос: как целесообразнее хранить данные? Какую базу данных выбрать? Mysql, Postgresql, Mongodb, Redis или другу?
Статистика системы будет выдавать не только само значение посещения, но и её можно будет группировать по разным параметрам (примерно как в Яндекс метрике).
Так же верно я понимаю, что записи в бд из js скрипта достаточно делать обычными ajax запросами, или уже придумано более эффективная схема, чтобы сервер по 100к записей в день не упал?
Спасибо за ответ. Я правильно понял, что clickhouse так же, как и mysql, устанавливается на unix, и точно так же могу добавлять туда данные в бд через sql? А если нужно из php подключиться, то просто на php специальную библиотеку устанавливать?
И чем может быть лучше ElasticSearch? :)
Ну, кроме clickhouse еще порекомендую kafka с записью в тот же сликхоус или hbase/hadoop. Причем из кафки данные можно вытащить в любой момент времени и за любой момент времени (ну это как ретеншион настроите). Так что пишите в кафку, а агрегируйте куда бог пошлет, хоть в hbase, хоть в clickhouse, хоть в postgres.
Чтобы не положило сервер, лучше писать в файл, затем раз в пол часа или десять минут (например) экспортировать в реляционную БД (postgresql или mariadb для вашей задачи особой разницы нету).
Также предусмотреть архивные таблицы (например по месяцам или годам).
Так сделано у piwik или сейчас уже matomo называется.
К стати, почему не хотите использовать piwik?