For more information on Siddhi functions, see Siddhi Query Guide - Functions.
More functions are available as Siddhi Extensions.
Filters are applied to input data received in streams to filter information based on given conditions. For more information, see Siddhi Query Guide - Filters.
e.g., Filtering cash withdrawals from an ATM machine where the withdrawal amount is greater tha $100, and the withdrawal data is between 01/12/2017-15/12/2017.
This window feature differs from the Defined Window concept elaborated herein Siddhi Application Overview due to this being specific to a single query only. If a window is to be shared among queries, the Defined Window must be used
For more information about windows, see Siddhi Query Guide - Window.
Aggregation functions allow executing aggregations such as sum, avg, min, etc. on a set of events grouped by a window. If a window is not defined, the aggregation(s) would be calculated by considering all the events arriving at a stream.
For more information on aggregate function, please refer to Siddhi Query Guide - Aggregate Functions.
With the group by functionality, events could be grouped based on a certain attribute, when performing aggregations.
For more information on group by, please refer to Siddhi Query Guide - Group By.
Having allows to filter events after processing the select statement.
For more information on having clause, please refer to Siddhi Query Guide - Having.
Join is an important feature of Siddhi, which allows combining pair of streams, pair of windows, stream with window, stream/ window with a table and stream/window with an aggregation
For more information on join queries, please refer to Siddhi Query Guide - Join.
Output Rate Limiting
Output rate limiting allows queries to output events periodically based on a specified condition. This helps to limit continuously sending events as output.
For more information on output rate limiting, please refer to Siddhi Query Guide - Output Rate Limiting
Partitioning in Siddhi allows to logically seperate events arriving at a stream, and to process them separately, in parallel.
Partitioning can be done based on an attribute value as above, or based on a condition. For more information on partitioning, please refer to Siddhi Query Guide - Partitioning
Triggers could be used to get events generated by the system itself, based on some time duration.
Trigger could be defined as a time interval, a cron job or to generate an event when Siddhi is started. For more information on triggers, please refer to Siddhi Query Guide - Trigger
Scripts allow to define function operations in a different programming language. An example is as follows.
For more information on scripts, please refer to Siddhi Query Guide - Script