私はKapacitorバッチと、ベースラインを生成しようとしています|それから、4週間前InfluxDB 1、2、3とから同じ間隔を照会前方に移動させると、このように一緒に参加することで、クエリを:Kapacitorラムダ平均
var w1 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(1w).period(period).every(1m).align().groupBy(time(1m))
|shift(1w)
var w2 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(2w).period(period).every(1m).align().groupBy(time(1m))
|shift(2w)
var w3 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(3w).period(period).every(1m).align().groupBy(time(1m))
|shift(3w)
var w4 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(4w).period(period).every(1m).align().groupBy(time(1m))
|shift(4w)
var bj = w1
|join(w2, w3, w3)
.as('w1', 'w2', 'w3', 'w4')
.fill('null')
var b = bj
|eval(lambda: (""w1.mean"" + ""w2.mean"" + ""w3.mean"" + ""w4.mean"")/float(4.0))
.as('avg')
私はフルアウタージョインを使用しています。数週間で値が見つからない場合があります。この場合、3つの現在値の平均としてベースラインを計算します。
しかし、ラムダはMean()やそのような数学関数をサポートしていないようです。また、ヌル値のチェックもサポートしていないようです。
このようなベースラインを計算する方法はありますか?
また、ベースラインが計算されたら、受信ストリームデータがベースラインに対してチェックされるようにキャッシュを保持することはできますか?
ご協力いただきましてありがとうございます。ありがとう
ここでは大声で考えています。特定のデータが見つからない場合は 'linear interpolate'することができますか?そうすれば、常に4つの値が存在することを保証することができ、4で割ることができます。ありがとう –