从表中跳转Windows/SQL StreamInsight/?

从表中跳转Windows/SQL StreamInsight/?,sql,streaminsight,Sql,Streaminsight,也许这可以在没有StreamInsight的情况下完成,但我很好奇 我有一个应用程序正在用“消息”(在表中插入一行)填充表 我想创建一个监控应用程序,用于监控此表中消息“到达”的速率,以及消息“处理”的速度(标志更新) 由于这是一个供应商的应用程序,我不想插入触发器或任何东西。但是我可以查询数据库,表中有一个使用标识列的PK 我如何获得跳转窗口查询?我想为过去30分钟显示一个折线图,显示传入消息的速率和处理消息的速率。编辑。根据此消息表中捕获的信息,我认为您可能只需运行SQL查询就可以更快地执行

也许这可以在没有StreamInsight的情况下完成,但我很好奇

我有一个应用程序正在用“消息”(在表中插入一行)填充表

我想创建一个监控应用程序,用于监控此表中消息“到达”的速率,以及消息“处理”的速度(标志更新)

由于这是一个供应商的应用程序,我不想插入触发器或任何东西。但是我可以查询数据库,表中有一个使用标识列的PK


我如何获得跳转窗口查询?我想为过去30分钟显示一个折线图,显示传入消息的速率和处理消息的速率。编辑。

根据此消息表中捕获的信息,我认为您可能只需运行SQL查询就可以更快地执行此操作

如果您仍然希望使用StreamInsight来完成这项工作,下面是一些代码

var app = Application;
var interval = TimeSpan.FromSeconds(1);
var windowSize = TimeSpan.FromSeconds(10);
var hopSize = TimeSpan.FromSeconds(1);

/* Replace the Observable.Interval with your logic to poll the database and
   convert the messages to instances of TPayload. It just needs to be a class
   that implements the IObservable<TPayload> interface. */
var observable = app.DefineObservable(()=> Observable.Interval(interval));

// Convert the observable to a point streamable.
var streamable = observable.ToPointStreamable(
            e=> PointEvent.CreateInsert(DateTimeOffset.Now, e),
            AdvanceTimeSettings.IncreasingStartTime);

/* Using the streamable from the step before, write your actual LINQ queries
   to do the analytics you want. */
var query = from win in streamable.HoppingWindow(windowSize, hopSize)
        select new Payload{
            Timestamp = DateTime.UtcNow,
            Value = win.Count()
        };

/* Create a sink to output your events (WCF, etc). It just needs to be a
   class that implements the IObserver<TPayload> interface. The
   implementation is highly dependent on your needs. */
var observer = app.DefineObserver(()=> Observer.Create<Payload>(e => e.Dump()));

query.Bind(observer).Run();
var-app=应用程序;
var间隔=从秒开始的时间跨度(1);
var windowSize=TimeSpan.FromSeconds(10);
var hopSize=时间跨度从秒(1);
/*用逻辑替换Observable.Interval以轮询数据库并
将消息转换为TPayload的实例。它只需要是一门课
实现IObservable接口的*/
var可观测=应用定义可观测(()=>可观测区间(区间));
//将可观测值转换为可流化的点。
var streamable=可观测的。ToPointStreamable(
e=>PointEvent.CreateInsert(DateTimeOffset.Now,e),
高级时间设置。增加开始时间);
/*使用前面步骤中的streamable,编写实际的LINQ查询
做你想要的分析*/
var query=来自streamable.HoppingWindow中的win(窗口大小,hopSize)
选择新的有效载荷{
时间戳=DateTime.UtcNow,
Value=win.Count()
};
/*创建一个接收器以输出事件(WCF等)。它只需要是一个
类,该类实现IObserver接口。这个
实施在很大程度上取决于您的需求*/
var observer=app.DefineObserver(()=>observer.Create(e=>e.Dump());
Bind(observer.Run();

使用您的示例,我能够找到以下内容:它记录了一个端到端的示例!谢谢当我吃午饭时,我突然意识到我应该补充一点,我提供的示例使用的是StreamInsight 2.1。