Нужно записывать данные о посетителях. Посетителей очень много. Например 1000 в секунду.
Как наиболее эффективно записать данные сразу в несколько таблиц? Нужно минимизировать траффик к СУБД и нагрузку на СУБД.
Для посетителя с IP=1.2.3.4 от 2015-07-18
нужно записать
2015-07-18 в daily
2015-07-06 (понедельник) в weekly
2015-07-01 (первое число месяца) в montly
2015-01-01 в yearly.
Первичный ключ date-ip. В случае дупликатов увеличить count на единицу.
Желательно решение и для Postgres и для MySQL.
Пиши в файлы на каждом серваке отдельно
Файлы собирай с серваков
Читай из файлов
Агрегируй
Вставляй через транзакцию
Еженедельные и ежемесячные создавай, когда наступит их время
бадуу занимается таким через scribe, но тебе подойдет и rsync https://www.youtube.com/watch?v=LtdsjspZ4xM
А вообще, ты так теряешь большой пласт информации про пользователя
Простите, но все написанное выше - не поддаётся никакой критике и так делают только недалёкие люди в плане сбора и агрегирования большого объема потоковых данных.
Про потерю инфы - вот тут точно в 10-ку!