Joule
Search
K
Comment on page

Sliding window analytics

Sliding windows are useful to gain analytic insights over a period whereby some of the events contribute to the insight, these windows are either time-based or a fixed count of events.
This example provides a demonstration of the available OOTB aggregate functions Joule provides that work with sliding windows.

Use case configuration

File: app-slidingWindowAnalytics.env
SOURCEFILE=${PWD}/conf/sources/stockQuoteStream.yaml
ENGINEFILE=${PWD}/conf/usecases/slidingWindowAnalytics.yaml
PUBLISHFILE=${PWD}/conf/publishers/fileStandardAnalytics.yaml

Pipeline configuration

This pipeline will compute a sliding window function on a single event type based on symbol CVCO
stream:
name: standardQuoteAnalyticsStream
enabled: true
validFrom: 2020-01-01
validTo: 2025-12-31
eventTimeType: EVENT_TIME
sources: [ nasdaq_quotes_stream ]
processing unit:
pipeline:
- time window:
emitting type: slidingQuoteAnalytics
aggregate functions:
FIRST: [ask]
LAST: [ ask ]
MIN: [ ask ]
MAX: [ bid ]
SUM: [ volume ]
MEAN: [ volatility ]
HARMONIC_MEAN: [ volatility ]
VARIANCE: [ volatility ]
STDEV: [ volatility ]
policy:
type: slidingTime
slide: 500
window size: 2500
select:
expression: "symbol, ask_FIRST, ask_LAST, ask_MIN, bid_MAX, volume_SUM, volatility_MEAN, volatility_HARMONIC_MEAN, volatility_VARIANCE, volatility_STDEV"
group by:
- symbol