У меня есть простое приложение Flink, которое суммирует события с тем же идентификатором и отметкой времени за последнюю минуту:
DataStream<String> input = env
.addSource(consumerProps)
.uid("app");
DataStream<Event> events = input.map(record -> mapper.readValue(record, Event.class));
pixels
.assignTimestampsAndWatermarks(new TimestampsAndWatermarks())
.keyBy("id")
.timeWindow(Time.minutes(1))
.sum("constant")
.addSink(simpleNotificationServiceSink);
env.execute(jobName);
private static class TimestampsAndWatermarks extends BoundedOutOfOrdernessTimestampExtractor<Pixel> {
public TimestampsAndWatermarks() {
super(Time.seconds(90));
}
// timestampReadable is timestamp rounded on minutes, in format yyyyMMddhhmm
@Override
public long extractTimestamp(Pixel pixel) {
return Long.parseLong(pixel.timestampReadable);
}
}
Я хотел бы реализовать сценарий:
Запустите встроенный Kafka
Publi sh пару сообщений в топи c
Используйте сообщения с Flink
Проверьте правильность вывода, произведенного Flink
Предоставляет ли Flink утилиты для тестирования работы со встроенным Kafka? Если да, каков рекомендуемый подход?
Спасибо.