Flink CEP не обнаруживает последнюю запись - PullRequest
0 голосов
/ 25 февраля 2020

Мой код помогает определить, превышает ли сумма записи 25 или нет в Flink CEP. Следовательно, когда я использую время процесса, оно соответствует всем шаблонам, но когда я использую время события, оно не совпадает с последней записью.

{"trasanction_id":196,"customer_id":27,"datetime":"1576499008876","amount":6094,"state":"SUCCESS"}
{"trasanction_id":197,"customer_id":27,"datetime":"1576499017565","amount":547,"state":"SUCCESS"}
{"trasanction_id":198,"customer_id":27,"datetime":"1576499029116","amount":6824,"state":"SUCCESS"}
{"trasanction_id":196,"customer_id":27,"datetime":"1576499053211","amount":6094,"state":"SUCCESS"}
{"trasanction_id":197,"customer_id":28,"datetime":"1576499063867","amount":547,"state":"FAILED"}
{"trasanction_id":198,"customer_id":28,"datetime":"1576499073566","amount":6824,"state":"FAILED"}

Выше были мои записи. Я заинтересован в подборе каждого события с суммой больше 25 во времени события. В идеале он должен обнаруживать все записи (что он делает во время обработки), поскольку сумма больше 25 для всех записей. На данный момент я использую ограниченную технику извлечения времени в течение 3 секунд для неупорядоченности.

Пожалуйста, помогите мне понять это. Заранее спасибо! :)

1 Ответ

1 голос
/ 25 февраля 2020

Поскольку CEP соответствует временным шаблонам, при работе с временными метками событий события сначала сортируются по меткам времени. Эта сортировка включает в себя буферизацию каждого события до тех пор, пока водяной знак не догонит это событие, чтобы дать время для более ранних событий прибыть первыми.

Поскольку ваши водяные знаки настроены так, чтобы отставать от переднего края (т. Е. Самой большой отметки времени) вашего потока на 3 секунды, отметка уровня воды для вашего потока никогда не достигнет отметки времени последнего события. Вот почему последнее событие не обрабатывается. Flink ждет, пока не появятся какие-либо более ранние события, и не сдастся, пока водяной знак не покажет, что поток завершен до отметки времени этого последнего события.

...