1

StreamInsightを試していますが、必要なクエリで問題が発生しました。

過去30分間に測定値にいくつかの変化(最大20%の変化)がある場合、警告をスローしようとしています。

これは私が今思いついたクエリですが、機能しておらず、正しくないと思います。

どうやら私はウィンドウでフィルタリングすることはできません...?

var deviationQuery = from s in wcfStream
                     group s by s.SensorId into grouped
                     from window in grouped.HoppingWindow(TimeSpan.FromMinutes(30),TimeSpan.FromMinutes(1))
                     where window.StdDev(e => e.Value) > measurableValue * 1.2
                     select new OutputEvent
                     {
                         Error = "Deviation"
                     };

前もって感謝します!

4

2 に答える 2

1

私が正しく理解していれば、これはあなたがやりたいことです:

  1. ストリームを。でグループ化しますSensorId
  2. 各グループを30分のウィンドウに分割します。
  3. 誤った値が多すぎるウィンドウのエラーメッセージを記述します。

うまくいけば、これでうまくいくはずです。

var deviationQuery = from s in wcfStream
                     group s by s.SensorId into grouped
                     from window in grouped.HoppingWindow(TimeSpan.FromMinutes(30),TimeSpan.FromMinutes(1))
                     where window.Count(event => event.Value > maxValue) > maxIncorrectValues                        
                     select new OutputEvent
                     {
                         Error = "Deviation"
                     };
于 2012-10-10T14:57:22.607 に答える
1

問題に対して有効なクエリが見つかりました。最初はうまくいかないと思いましたが、結果を誤解しました。最短で最良のクエリではないかもしれませんので、もっと良い答えがあれば教えてください!

var deviationQuery = from s in wcfStream
                     where s.Value > measurableValue * (1 + deviationThreshold) || s.Value < measurableValue * (1 - deviationThreshold)
                     group s by s.SensorId into grouped
                     from window in grouped.HoppingWindow(TimeSpan.FromSeconds(180), TimeSpan.FromSeconds(120))
                     select window.Count();
var deviation = from c in deviationQuery
                where c > maxIncorrectValues
                select new OutputEvent
                    {
                        M = new Measurement() { SensorId = "354354", Value = 53, Time = DateTime.Now },
                        Deflection = c,
                        Error = "Deviation"
                    };
于 2012-10-11T07:40:30.397 に答える