Windowing
Open source and commercial streaming engines such as IBM Streams, Apache Storm, or Apache Flink are using the concept of windows.
Note
Windows specify the granularity or number of subsequent records, which are taken into account when executing aggregation functions on streams.
How streaming engines use windowing
There exist five different properties in two dimensions, which is how windows can be defined, where each window definition needs to use one property of each dimension.
The first property is the mode in which subsequent windows of a continuous stream of tuples can be created: sliding and tumbling.
The second is that the number of tuples that fall into a window has to be specified: either count-based, time-based or session-based.
Let's take a look at what they mean:
- Sliding windows: A sliding window removes a tuple from it whenever a new tuple is eligible to be included.
- Tumbling windows: A tumbling window removes all tuples from it whenever there are enough tuples arriving to create...