мигающее окно для отметки времени

У меня есть поток данных вроде

Eventname, Event id, Start_time ( Time Stamp) ..

здесь я хочу применить преобразование окна к последнему полю Start_time, которое имеет отметку времени, мое требование такое, как будто я хочу взять данные за последние 30 минут.

Итак, то, что я вижу в окне флинка, - это что-то такое .timeWindow(Time.minutes(30)), поэтому я предполагаю, что это принимает события за последние 30 минут, но не относится к start_time

Я хочу взять данные, в которых start_time находится за последние 30 минут, тогда как мне написать это преобразование? мне нужно использовать filter в этом столбце?

Я новичок в моргании.

Спасибо


person Sanjay Rabari    schedule 18.05.2017    source источник


Ответы (1)


Вам нужно сделать две вещи:

  1. Включите обработку во время события, вызвав setStreamTimeCharacteristic(TimeCharacteristic.EventTime) на StreamExecutionEnvironment.
  2. Назначьте отметки времени своим записям и водяным знакам. Это делается с помощью AssignerWithPeriodicWatermarks или AssignerWithPunctuatedWatermarks путем вызова `DataStream.assignTimestamps (yourAssigner).

В режиме событий-времени Flink будет строить окна на основе временных меток, которые вы присвоили своим записям. Водяные знаки сообщают Flink «логическое время ваших данных». Водяной знак 1000 означает, что больше не ожидается записей с отметкой времени менее 1000.

Вся тема обработки времени события слишком сложна, чтобы ее здесь обсуждать. Я бы рекомендовал взглянуть на Apache Flink документация.

person Fabian Hueske    schedule 18.05.2017
comment
в этом я могу дать время окну, прочитав это имя столбца 'start_time'? - person Sanjay Rabari; 18.05.2017
comment
TimestampAssigner должен прочитать поле start_time и вернуть его метку времени как значение long. - person Fabian Hueske; 18.05.2017