StreamInsight查询中的代码

时间:2010-10-11 19:40:54

标签: c# sql-server streaminsight

我正在开发一个使用复杂事件处理的算法交易应用程序,我正在研究Microsoft StreamInsight作为CEP处理器。但是我不确定在StreamInsight中我是否可以做任何事情。

特别是,我需要能够动态创建策略,然后将其作为常设查询插入到服务器中。例如,人员A创建了一种策略,当30天的股票X平均值超过某个值时,必须下达买入订单。然后,这必须在StreamInsight查询中进行转换,并在运行时放在服务器上。

我可以在StreamInsight查询中执行哪种代码?我不确定在StreamInsight查询中是否可以执行我想要执行的所有处理,因为它们是linq查询。我可以使用其他数据源的数据吗?我可以在查询中使用开关,循环,变量声明等吗?或者只是一个单一的查询,比如编译查询?

这一切可能听起来有点模糊,如果需要我会尝试进一步澄清。基本上,我的问题是,我可以对StreamInsight查询进行编程有多复杂?我找到的样本只显示简单的过滤,分组等。

也欢迎有关其他CEP服务器的建议,但我更愿意留在我的专业领域,即.NET / C#。

2 个答案:

答案 0 :(得分:1)

几个扩展点允许您在StreamInsight查询中嵌入自定义逻辑:

  • 用户定义的聚合和运算符(http://msdn.microsoft.com/en-us/library/ee842720.aspx)允许您对窗口内容执行任意计算。
  • 用户定义的函数(http://msdn.microsoft.com/en-us/library/ee378928.aspx)支持“原始”类型(字符串,数字等)的自定义逻辑。

StreamInsight的适配器模型(http://msdn.microsoft.com/en-us/library/ee378877.aspx)允许您连接到任意数据源,无论它们是实时的还是历史的。

如果您对如何启用特定功能有疑问,请告诉我们!

-Colin

答案 1 :(得分:1)

您可以在StreamInsight服务器运行时创建查询以执行新操作。一旦熟悉StreamInsight API,就可以轻松完成,并且可以在StreamInsight服务器本地完成(如果您正在进行托管)或远程使用管理服务。正如Colin所说(上图),您可以在查询中添加自定义代码以执行自定义评估。