Using StreamInsight LINQ


Once data has been delivered into the StreamInsight server, computation may be continuously performed over the data. In other words, as events are inserted into the server, these events are processed by standing queries, which emit the processed output events. These standing queries are written in the language framework LINQ. LINQ is a mechanism for expressing declarative queries over data sets that is fully integrated into a host language such as C#. In the current release, StreamInsight only supports C# as a host language. This framework has been adapted for the StreamInsight platform, resulting in a tight integration of the StreamInsight server with C#. The topics in this section demonstrate a number of computational operations over events supported by this platform and demonstrate how these operations are specified with StreamInsight LINQ queries.


In StreamInsight version 2.0 and earlier, temporal streams were implemented using the CepStream<> interface. While the CepStream<> interface continues to be supported, in version 2.1 and later temporal streams are implemented through the IQStreamable<> interface and can be processed using StreamInsight LINQ. The syntax of temporal queries composed over IQStreamable<> is consistent with the syntax of the existing CepStream<> based LINQ provider, however, some changes have been made to take advantage of new capabilities in the IQStreamable<> interface. In this section, any differences between the IQStreamable<> and CepStream<> interfaces are identified.

For detailed guidance on writing LINQ queries for StreamInsight, see A Hitchhiker’s Guide to StreamInsight Queries.

In This Section

Group and Apply
Time Stamp Modifications
User-Defined Functions (StreamInsight)
User-Defined Stream Operators
Using Event Windows
Count Windows
Hopping Windows
Snapshot Windows
User-defined Aggregates and Operators

See Also

NIB StreamInsight Server Concepts
Language-Integrated Query