Aggregates module

Aggregates are calculated both in on-line and off-line mode, in both modes the same computational code is used.

On-line mode

In on-line mode, the computing is parallel for every user id. For active users, on-line aggregates are calculated and held in memory. After fixed time of user's inactivity, defined in configuration file, aggregates are saved in a database.

Off-line mode

In off-line mode, the computing is also parallel for every user id. Aggregates are calculated basing on retail events saved in a repository. Off-line aggregating can be scheduled.

Types of aggregates

  • Counted incremently for all data
  • Counted in time window with specific number of events
  • Counted in sliding time windows with specific number of events
  • Target windows - used to count target (only off-line mode)

One event may belong to multiple windows. A list of calculated aggregates is defined in metadata.

List of aggregates

  • Number of occurences
  • Sum
  • Last value
  • Flag
  • Minimum value
  • Maximum value
  • Derived aggregates defined in Java (for example: aggregate1 + aggregate2)
  • Aggregates resulting from defined dictionaries (see Dictionaries section)