Подсчет Уникального Пользовательского использования Mapreduce для Java Appengine

Я пытаюсь считать число уникальных пользователей в день на моем Java appengine приложением. Я решил использовать mapreduce платформу (mapreduce.appspot.com) для Java appengine, чтобы сделать это вычисление офлайн. Мне удалось создать карту, уменьшают задание, которое проходит все мои объекты, которые представляют событие сессии отдельных пользователей. Я могу использовать простой счетчик также. У меня есть несколько вопросов хотя:

1) Как я только увеличиваю счетчик однажды для каждого идентификатора пользователя? Я в настоящее время отображаюсь по объектам, которые содержат свойство идентификатора пользователя, но многие из этих объектов могут содержать тот же идентификатор пользователя поэтому, как я только считаю его однажды?

2) После того как у меня есть эти результаты задания, сохраненного в этих счетчиках - как я могу сохранить их к хранилищу данных? Я вижу результаты счетчиков на странице состояния mapreduce, но я хочу эти результаты, автоматически сохраненные к хранилищу данных.

Идеи?

6
задан aloo 28 June 2010 в 00:14
поделиться

1 ответ

Я еще не использовал функциональность MapReduce, но теоретически я понимаю, что вы можете записывать данные в хранилище данных из вашего маппера. Вы можете создать тип Entity под названием UniqueCount, и вставлять одну сущность каждый раз, когда ваш mapper видит ID, который он не видел раньше. затем вы можете подсчитать, сколько уникальных ID у вас есть. На самом деле, вы можете просто обновлять счетчик каждый раз, когда находите новую уникальную сущность. Вы можете погуглить "sharded counter" для подсказок по созданию счетчика в хранилище данных, который может работать с высокой пропускной способностью.

В конечном итоге, когда они закончат функциональность Reduce, я полагаю, что вся эта задача станет довольно тривиальной.

1
ответ дан 17 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: