Я получил веб-виджет с 15 000 000 посещений в месяц, и я регистрирую каждую сессию. Когда я хочу создать отчет, я хотел бы знать, сколько существует уникальных IP-адресов. В обычном SQL это было бы просто, как я бы просто сделал:
SELECT COUNT(*) FROM (SELECT DISTINCT IP FROM SESSIONS)
Но так как это невозможно с движком приложения, я сейчас ищу решения о том, как это сделать. Это не должно быть быстро.
Решением, о котором я думал, было создание пустой таблицы Unique-IP, а затем задание MapReduce для прохождения всех сущностей сеанса, если IP-адрес сущности отсутствует в таблице, я добавлю его и добавлю один к счетчик. Тогда у меня была бы другая работа MapReduce, которая очистила бы стол. Это было бы сумасшествием? Если так, как бы вы это сделали?
Спасибо!