WEB开发网
开发学院数据库MSSQL Server StreamInsight 浅入浅出(二)—— 流与事件 阅读

StreamInsight 浅入浅出(二)—— 流与事件

 2010-09-27 00:00:00 来源:WEB开发网   
核心提示: 那么我们就可以理解,频繁的 CTI 可以让计算结果更快产生,StreamInsight 浅入浅出(二)—— 流与事件(3),而且,CTI 的时间戳和之前插入的 Insert 事件的时间戳相关,如果是非类型化适配器,则要注意保证生成的事件的负载字段和流的基本类型里的字段一致,通过设置 CTI 的延

那么我们就可以理解,频繁的 CTI 可以让计算结果更快产生。而且,CTI 的时间戳和之前插入的 Insert 事件的时间戳相关。通过设置 CTI 的延迟时间,我们可以控制 CTI 的时间戳是位于 CTI 事件之前的 Insert 事件的时间戳之前固定间隔的一个时间。

另外需要说明的是,在没有 Insert 事件产生的情况下,系统也不会自动生成 CTI 事件。

事件模型

所有的事件都拥有一个开始时间和结束时间,并且只在开始时间与结束时间内有效。对于点事件来说,结束时间是开始时间后一个时钟周期的时间点,也就是它的有效时间间隔是一个时钟周期。而还没有设置结束边缘的边缘事件的结束时间是 DateTimeOffset.MaxValue,可以认为它在整个过程中有效,直到被设置结束边缘。所以如果需要一些总是有效的事件,可以生成一堆边缘类型为开始的边缘事件。

而在使用边缘事件的时候,需要特别注意。当插入一个边缘类型为结束的边缘时,需要确保有相应的边缘类型为开始的事件已经被插入了,这里不仅要保证两个边缘事件的开始时间一致,还要保证其他的各个字段一致。否则会抛出“找不到相应的开始边缘事件”的异常。但是,这里没有要求边缘事件的有序关闭,也就是后开始的边缘事件可以先结束。

事件负载

真正的数据,也就是流里的数据,都被存放在事件的负载中。当然是手动设置,而不是自动对应。这里要注意的有两点:

负载字段只能是 CLR 标量和初级类型,也就是你不可能让一个负载字段的类型是你自定义的类型。

负载字段要和流里的类型保持一致。如果是由类型化适配器生成的事件,那么只要让类型化适配器的负载类型和流的基本类型一致就可以了,如果是非类型化适配器,则要注意保证生成的事件的负载字段和流的基本类型里的字段一致。具体情况会在下一篇关于适配器的介绍中细说。

上一页  1 2 3 

Tags:StreamInsight 事件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接