StreamInsight手札(一)——初识
StreamInsight是SQL Server 2008 R2的新模块。它是一个基于.NET的平台,用于复杂事件处理(CEP,Complex Event Processing),即对于来自多数据源的无限事件序列提供近乎零延时的连续处理。StreamInsight是一个临时查询处理引擎,它可以支持应用程序对时间窗口内的事件进行查询处理。它对流数据的处理范围包括简单聚合、多数据源事件相关性、事件模式检测、甚至建立复杂事件序列和分析模型。StreamInsight的程序模型可以让用户通过LINQ定义这些查询,同时支持将查询结果无缝整合到C#的代码中。
传统的数据库针对静态数据操作,所有信息先被实体化存储在数据库中,然后被取出,再进行一系列的计算。而StreamInsight则针对的是事件流的操作,事件流从入口通过适配器进入,经过一系列查询逻辑的处理,最终通过输出适配器分发到各个目标上。事件流数据暂时保存于内存中,减少了数据存储与读取的时间。同时,StreamInsight了引入了一种时间窗口机制,即对事件流按照时间窗口切片统计,随着事件流入不断推移时间窗口,保持窗口中统计最新的数据。
因此,StreamInsight适用场景有如下特点:
- 输入为数据流尤其是多源无限长数据流
- 数据处理实时性要求高
- 高吞吐量
- 不关心中间结果
- 数据不需要永久保留
比如,多个收费站车辆通过信息作为数据流输入,统计一段时间内车辆的平均数。
下图是StreamInsight的架构:
由上图可以看出,StreamInsight主要包括三个部分:输入适配器(Input Adapter)、输出适配器(Output Adapter)以及CEP服务器。由于输入输出和CEP服务器都是异步运行的,所以StreamInsight提供了事件流调试器(Event Flow Debugger)方便用户调试事件的处理过程。
参考资料:
- 下载CU2
https://blogs.msdn.com/b/streaminsight/archive/2010/06/28/update-on-the-update.aspx - StreamInsight MSDN文档
https://msdn.microsoft.com/en-us/library/ee362541(SQL.105).aspx - 博客
https://blogs.msdn.com/streaminsight/ - 论坛
https://social.msdn.microsoft.com/Forums/en-US/streaminsight - StreamInsight MSDN
https://msdn.microsoft.com/en-us/ee476990.aspx - 样例
https://streaminsight.codeplex.com - Twitter
https://twitter.com/streaminsight
软件测试工程师 金晶
Comments
- Anonymous
February 26, 2013
StreamInsight是作为一个组件提供给开发人员使用的吗?是COM组件还是什么? 第二,它是收费的吗?