摘要:
准备工作 StreamInsight查询系列(一)——准备工作 StreamInsight查询系列(二)——在LINQPad中输出查询结果 基本查询 StreamInsight查询系列(三)——基本查询操作之过滤 StreamInsight查询系列(四)——基本查询操作之聚合 StreamInsight查询系列(五)——基本查询操作之用户自定义聚合 StreamInsight查询系列(六)——基本查询操作之分组聚合 StreamInsight查询系列(七)——基本查询操作之基础排序 StreamInsight查询系列(八)——基本查询操作之分组排序 StreamInsight查询系列(九... 阅读全文
摘要:
参考博客:http://blogs.msdn.com/b/domain_connect4 本文介绍将主要包括三个方面:首先会介绍一个StreamInsight应用消耗内存的场景,接下去会介绍与StreamInsight应用消耗内存相关的一些术语,最后会以一个实际案例为例进行分析结束本文。 应用场景 若假定StreamInsight应用程序是机器上唯一在运行的进程,那么所有可供其使用的内存将取决于“该进程所在的物理硬件与操作系统所提供的委托上限(Commit limit)”。这里委托上限是指物理内存与页面文件大小的总和。在真实情况下,并不是所有的物理内存都会被算作委托上限,因为操作系统本身会.. 阅读全文
摘要:
参考博客:http://blogs.msdn.com/b/domain_connect4 这篇文章是对前一篇博文《StreamInsight应用调优入门(二)——吞吐量》的后续介绍。本文主要会从适配器和引擎的角度来深层次探讨如何识别影响吞吐量的关键因素。本文的介绍将围绕以下三个方面展开: 吞吐量较低可能是因为引擎跟不上适配器的速度,也有可能是适配器自身在访问数据源时碰到了性能瓶颈;输出适配器速度太慢会导致引擎向输入适配器回推事件并因此降低吞吐量;如何调优适配器 使用StreamInsight事件调试器 事件流调试器是一个基于事件跟踪的独立调试工具。该调试器有两种用途: 事件流跟踪。调试... 阅读全文
摘要:
参考博客:http://blogs.msdn.com/b/domain_connect4 吞吐量 什么是吞吐量? StreamInsight吞吐量包含两个不同的方面:输入吞吐量和输出吞吐量。前者输入吞吐量是指事件从输入适配器进入StreamInsight引擎的速度有多快;后者输出吞吐量是指查询结果的输出事件被输出适配器接收到的时间有多快。 如何监控吞吐量? 一个简单的方法是使用Visual Studio中的Server Explorer。下面是具体的步骤: 1. 导航到Servers-><machine name>->Performance Counters (注:机器 阅读全文
摘要:
参考博客:http://blogs.msdn.com/b/domain_connect4 概述 学习如何调优是使用StreamInsight开发过程中必不可少的一个重要部分。如何让StreamInsight在复杂事件流处理中既保持很高的吞吐量,又保持较低的延滞且占用内存尽量少?对于StreamInsight应用开发人员而言,了解基本的调优知识是解决上述难题的关键。 总的来说,StreamInsight调优可以分为三大类: 吞吐量(Throughput) 输入吞吐量(Input Throughput) 输出吞吐量(Output Throughput) 总吞吐量(Total Thro... 阅读全文
摘要:
上篇文章介绍了查询模式中如何实现指数平滑法,这篇博文将介绍StreamInsight中如何实现模式匹配。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var startTime = new DateTime(2011, 9, 28).ToLocalTime();var source = new[]{ PointEvent.CreateInsert(startTime.AddSeconds(0), 1), PointEvent.CreateInsert(startTime.AddSeconds(20), 2), PointEvent.CreateInser... 阅读全文
摘要:
上篇文章介绍了查询模式中如何进行持续更新,这篇博文将介绍StreamInsight中如何实现指数平滑法。 概念介绍 在我们进行具体实现之前,让我们了解一下什么是指数平滑法? 概念介绍:指数平滑法是一个可以应用于时间序列上的计算方法,最初由Robert G..Brown提出。指数平滑法可以用来生成平滑数据以供展示之用,也可以用于预测未来趋势。它通常应用在金融市场和经济数据中,当然它本质上可以应用于任何不断重复的离散集合中。 我们通常将原始数据序列写作{xt},将指数平滑法的结果序列记为{st},用以估计下一个出现的x值。在t=0时刻,一个比较简单的指数平滑法公式可以写作: 其中α为平滑因子,它. 阅读全文
摘要:
上篇文章介绍了查询模式中如何使用地理数据,这篇博文将介绍StreamInsight中如何进行持续更新。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var sourceData = new []{ new { Value = 12, Status = 0, TimeStamp = DateTime.Parse("10/23/2009 9:00:00 AM") }, new { Value = 15, Status = 0, TimeStamp = DateTime.Parse("10/23/2009 10:10:00 AM") }, 阅读全文
摘要:
上篇文章介绍了查询模式中如何检测间隙事件,这篇博文将介绍StreamInsight中如何使用地理数据。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:// 创建包含地理位置的引用数据var assetData = new []{ new { AssetId = 1, AssetName = "My Stuff", Latitude = 47.64339, Longitude = -122.12840 }, new { AssetId = 2, AssetName = "My Other Stuff", Latitude = 47.64 阅读全文
摘要:
上篇文章介绍了查询模式中如何检测异常事件,这篇博文将介绍StreamInsight中如何检测间隙事件。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:// 创建数据源,要注意的是4:16和4:30之间存在的事件间隙var sourceData = new []{ new { Status = 1, TimeStamp = new DateTime(2009, 10, 23, 4, 12, 0) }, new { Status = 0, TimeStamp = new DateTime(2009, 10, 23, 4, 13, 0) }, new { Sta... 阅读全文