Using Subjects to Deploy Queries Dynamically

In the previous blog posting, we showed how to construct and deploy query fragments to a StreamInsight server, and how to re-use them later. In today’s posting we’ll integrate this pattern into a method of dynamically composing a new query with an existing one. The construct that enables this scenario in StreamInsight V2.1 is a…

1

Taming Hopping Windows

At first glance, hopping windows seem fairly innocuous and obvious. They organize events into windows with a simple periodic definition: the windows have some duration d (e.g. a window covers 5 second time intervals), an interval or period p (e.g. a new window starts every 2 seconds) and an alignment a (e.g. one of those…


Changes to the LINQ-to-StreamInsight Dialect

In previous versions of StreamInsight (1.0 through 2.0), CepStream<> represents temporal streams of many varieties: Streams with ‘open’ inputs (e.g., those defined and composed over CepStream<T>.Create(string streamName) Streams with ‘partially bound’ inputs (e.g., those defined and composed over CepStream<T>.Create(Type adapterFactory, …)) Streams with fully bound inputs (e.g., those defined and composed over To*Stream – sequences…


New in V1.2: Default Window Output Policies

Who knows what window output policies in StreamInsight LINQ are? Anyone? Well, you have been using them whenever you have used a window. Output policies specify the timestamps of the result of the aggregation that happens on the window. Even if you didn’t really care about that, you had to specify the output policy parameter…


New in V1.2: LINQ Macros

StreamInsight LINQ is powerful and expressive. At the same time, the learning curve for a new user can be steep, because the query operators work on a semantically basic level. This means that complex use cases need to be build bottom up, composing the built-in operators to create higher-level query modules, etc. Many such modules…


New in V1.2: Primitive Event Types

In a previous posting, we introduced nested types as one of the new features in StreamInsight V1.2. The second improvement in the type system represents the other end of the complexity spectrum, namely the ability to use “primitive” event types, without any struct or class. Remember the LINQ statement to compute the distances between two…


New in V1.2: Nested Event Types

One of the focus areas for us in V1.2 was the LINQ surface of StreamInsight. We have straightened out many of the kinks people complained about in previous versions and have added new features. Too many improvements for a single blog post, so today we’ll start with new features in the event type system. One…

2

Rolling Out 101 Samples

StreamInsight’s LINQ query and analytics language is powerful and versatile. To ease users and developers over the inevitable initial learning curve, we know that high-quality documentation and a variety of examples are absolutely crucial. While we are trying to improve the former with every new release, we have also maintained a set of samples of…


StreamInsight LINQPad Driver

Joseph Albahari’s LINQPad has become an indispensable tool for many of us on the StreamInsight team. It allows you to quickly design, test and visualize results for LINQ queries. We’ve now developed a dedicated LINQPad driver for StreamInsight with Joe’s help that you can use to quickly explore temporal data and StreamInsight’s temporal LINQ dialect! To…

4

Windows in StreamInsight: The Basics

If you start learning how to write StreamInsight queries, most likely one of the first concepts you come across are windows. In this article, we’d like to shed some light on the usage of windows, hoping to provide a better understanding for the benefits as well as constraints of using windows. And I will spare…