Я пытаюсь создать поток дедуплицированных событий без указания какой-либо политики окон, кроме той, которая используется для дедупликации. Использование предложения output first every
в моих запросах дает желаемый эффект, но не тогда, когда эти запросы вставляются непосредственно в поток.
Для примера, приведенного ниже, предположим, что я пытаюсь определить только первый сигнал каждой машины в 4-часовом окне.
(define-event-type! "CarEvent"
{:license_plate java.lang.String})
(define-event-type! "HonkEvent"
{:volume java.lang.Integer}
:supertypes #{"CarEvent"})
(define-variant! "HonkEventDeduplicated" "HonkEvent")
(define-statement! "context-IndividualCarContext"
"create context IndividualCarContext partition by license_plate from CarEvent")
(define-statement! "populate-HonkEventDeduplicated"
"context IndividualCarContext
insert into HonkEventDeduplicated
select * from HonkEvent
group by license_plate
output first every 4 hours")
Однако -- select * from HonkEventDeduplicated
срабатывает при каждом сигнале, даже если один и тот же автомобиль подает сигнал два раза подряд.