0

Esper で問題をモデル化するための助けが必要です。

1 日に複数回測定値を作成します。毎日の終わりに、このタイプのすべての測定値を集計し、その日に作成されたソースごとにグループ化し、カウントと合計を作成して、これを新しい測定値に再注入します。私は週末と月末に同じことをします。

問題は、cron 式 (たとえば、毎日真夜中に言う)、タイム ウィンドウ (過去の日のすべてのイベントが必要だと言う)、およびイベント ストリーム (の測定値を選択する) を組み合わせる方法がわからないことです。私が欲しいタイプ)。

あなたの洞察に感謝します。

4

1 に答える 1

0

私が思う最良のアプローチは、次のような期間のコンテキストを定義することです。

create context DailyMeasurementAggregation
  context DailySourcePartition 
    partition by measurement.source.value from MeasurementCreated,
  context DailyTimerPartition 
    start (0,0,*,*,*,0) 
    end (59,23,*,*,*,59);


context DailyMeasurementAggregation
select
  count(m) as count,
  sum(getNumber(m, "myMeasurement.M.value")) as sum
from MeasurementCreated m
where getObject(m, "myMeasurement.M") is not null
output last when terminated;

他の範囲cron 構文は次のようになります。0) 終了 (59,23,最後, , ,59)

毎週は日曜日から土曜日までなので、数字を調整する必要があるかもしれません. cron 構文に関する esper ドキュメントの一部は次のとおりです

end after 1 day のようなことをしようとしましたが、1日おきにしかコンテキストがないため、これはうまくいかないようです。そのため、コンテキストを 1 秒早く終了しました。

于 2016-07-06T10:26:05.557 に答える