Подтвердить что ты не робот

Java framework для реализации агрегации и скользящих окон

У меня есть поток событий и хранилище ключей. Размер значения ограничен 4Kb. Мероприятие не очень тяжелое - максимум сотни в день.

В этом значении мне нужно сохранить сериализованное представление структуры данных, которое обеспечивает эффективный механизм для чтения, хранения и обновления агрегированного количества событий в течение 3 месяцев с ежедневными и недельными скоплениями и раздвижными окнами 1/2 час.

Решение должно эффективно выполнять следующие задачи как для простых счетчиков событий, так и для стандартного отклонения счетчика событий. (максимальный период для всех перечисленных ниже задач 3 месяца):

  • постоянные обновления (ленивым способом - по мере поступления соответствующего события) - в случае, если последние рассчитанные агрегаты слишком стары - выкидывают устаревшие данные и создают новые агрегации
  • обновление, вызванное запросами чтения (запросы пользователей некоторые данные, например, количество событий для конкретного пользователя, стандартное отклонение количества событий для одного пользователя и т.д.) в случае, если последние рассчитанные скопления являются слишком старыми - бросьте их

Интересно: есть какая-либо java-среда с открытым исходным кодом, которая может помочь в реализации вышеперечисленного?

Я также был бы признателен за рекомендации по дизайну: шаблоны дизайна и т.д.

Решение не сложно реализовать с нуля с помощью стандартного java-интерфейса API, но перед этим я буду благодарен за предложения с открытым исходным кодом (если они есть).

Googling для решения не привел меня нигде, кроме некоторых теоретических статей, решений на базе SQL и IBM (инструментарий с открытым исходным кодом, называемый SPL).

4b9b3361