Implementing Windowing Computations on Data Streams
Windowing is one of the most frequently used processing methods for streams of data. An unbounded stream of data (events) is split into finite sets, or windows, based on specified criteria, such as time. A window can be conceptualized as an in-memory table in which events are added and removed based on a set of policies. Storm performs computations on each window of events. An example would be to compute the top trending Twitter topic every hour.
You can use high-level abstractions to define a window in a Storm topology, and you can use stateful computation in conjunction with windowing. For more information, see Implementing State Management.
This chapter includes examples that implement windowing features. For more information about interfaces and classes, refer to the Storm 1.1.0 javadocs.