摘要: 上篇文章介绍了查询模式中如何发现趋势,这篇博文将介绍StreamInsight中如何检测异常。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var now = DateTime.Parse("09/12/2011 8:57:00 PM");var input = new[]{ new { Time = now + TimeSpan.FromSeconds(1), Value = 20}, new { Time = now + TimeSpan.FromSeconds(2), Value = 30}, new { Time = now + TimeSpa 阅读全文
posted @ 2011-09-12 23:36 StreamInsight 阅读(989) 评论(0) 推荐(1) 编辑
摘要: 上篇文章介绍了查询模式中如何应对瞬变及报警泛滥,这篇博文将介绍StreamInsight中的趋势发现。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var sourceData = new []{ new { SourceId = "A", Value = 22, Status = 1, TimeStamp = DateTime.Parse("10/23/2009 4:12:00 PM") }, new { SourceId = "A", Value = 24, Status = 0, TimeStamp = D 阅读全文
posted @ 2011-09-09 00:17 StreamInsight 阅读(1284) 评论(1) 推荐(2) 编辑
摘要: 上篇文章介绍了查询模式中的左外联接部分,这篇博文将介绍StreamInsight中如何处理报警及瞬变。 瞬变 我们用一个例子来解释如何使用StreamInsight处理瞬变情形,例如: 设定一个特定事件的“报警值”,如果2分钟内没有新事件出现,则产生一个报警? 如下,我们希望为Status为1的事件发生后2分钟内没有没有新事件出现的瞬变进行报警。var sourceData = new[]{ new { Status = 1, TimeStamp = DateTime.Parse("10/23/2009 4:12:00 PM") }, new { Status = 0, T 阅读全文
posted @ 2011-09-06 09:57 StreamInsight 阅读(1131) 评论(2) 推荐(1) 编辑
摘要: 上篇文章介绍了查询模式中窗口比率部分,这篇博文将介绍StreamInsight中的左外联接(Left Outer Join)。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var time = DateTime.Parse("10/23/2011 09:37:00 PM");var inputEvents = new[]{ new { Timestamp = time+TimeSpan.FromMinutes(1), accountNo = "800001", branchName="43rd Street", 阅读全文
posted @ 2011-09-06 00:26 StreamInsight 阅读(1035) 评论(0) 推荐(1) 编辑
摘要: 上篇文章介绍了查询模式中相异计数部分,这篇博文将介绍窗口比率,即找出某类事件占事件总数的百分比。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var sourceData = new[]{ new { SourceId = "A", Value = 22, Status = "SUCCESS", TimeStamp = DateTime.Parse("10/23/2009 4:12:00 PM") }, new { SourceId = "A", Value = 24, Status = &q 阅读全文
posted @ 2011-09-05 13:23 StreamInsight 阅读(1038) 评论(0) 推荐(1) 编辑
摘要: 上篇文章介绍了查询模式中基本模式部分,这篇博文将介绍相异计数,即在事件流中找出互不相同的事件并进行计数。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var dataWithDups = new []{ new { EventType = 'A', OrderNumber = 101, Action = 'S', Price = 8.65, Shares = 2000 }, new { EventType = 'A', OrderNumber = 102, Action = 'S', Price = 8.60 阅读全文
posted @ 2011-09-05 09:46 StreamInsight 阅读(1082) 评论(0) 推荐(3) 编辑
摘要: 上篇文章介绍了查询模式中事件对齐部分,这篇博文将介绍基本模式。 基本模式 问题1:怎样检查事件B是否位于事件A发生后的90秒内? 让我们用一个例子来回答这个问题,先准备一些测试数据:var sourceDataAB = new[]{ new { SourceId = "A", Value = 22, Status = 1, TimeStamp = DateTime.Parse("10/23/2009 4:12:00 PM") }, new { SourceId = "A", Value = 24, Status = 0, TimeSt 阅读全文
posted @ 2011-09-04 22:29 StreamInsight 阅读(1052) 评论(2) 推荐(1) 编辑
摘要: 上篇文章介绍了查询模式中窗口对齐部分,这篇博文将介绍事件对齐。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var sourceIntervalDataType = new []{ new { Id = "A", StartTime = DateTime.Parse("10/23/2009 11:59:01 PM"), EndTime = DateTime.Parse("10/23/2009 11:59:59 PM") }, new { Id = "A", StartTime = DateTi 阅读全文
posted @ 2011-09-03 10:33 StreamInsight 阅读(1048) 评论(0) 推荐(1) 编辑
摘要: 前面部分介绍了StreamInsight的基础查询系列,从这篇文章开始,我会开始不断介绍StreamInsight中的查询模式。这篇博文作为查询模式的第1篇,主要介绍窗口对齐部分。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var weatherData = new[]{ new { Timestamp = new DateTime(2010, 1, 1, 0, 00, 00, DateTimeKind.Utc), Temperature = -9.0, StationCode = 71395, WindSpeed = 4}, new { Timestam... 阅读全文
posted @ 2011-09-02 16:52 StreamInsight 阅读(1181) 评论(1) 推荐(2) 编辑
摘要: 上篇博文介绍了StreamInsight基础查询操作中的决胜排序部分。这篇文章将主要介绍如何StreamInsight基本查询的最后一篇——联接。 测试数据准备 为了方便测试查询,我们首先准备一些静态的测试数据源。如下input1和input2是一个包含时间戳和[1,5]区间数字的复杂事件流:// 创建一个包含[1,5]区间连续数字的事件流var now = DateTime.Now;var input1 = Enumerable.Range(1, 5).ToPointStream(Application, e => PointEvent.CreateInsert(now.AddSeco 阅读全文
posted @ 2011-08-26 11:52 StreamInsight 阅读(1033) 评论(0) 推荐(2) 编辑