Я написал задание для чтения данных из Pubsub и применения к ним некоторых преобразований. Конвейер работает прекрасно в течение 2-3 часов, но позже значение водяного знака застревает на GBK. Не уверен почему. Я использовал стратегию «Окно и триггер»:
input
.apply("Get EventData from Row", ParDo.of(new PubSubMain.FilterInvalidEventsFn()))
.apply("Assign Random Keys Per EventString", ParDo.of(new PubSubMain.AssignRandomKeys(NUM_SHARDS)))
.apply(Window.<KV<String,String>>into(FixedWindows.of(Duration.standardMinutes(2)))
.triggering(Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane()
.plusDelayOf(Duration.standardMinutes(1))))
.withAllowedLateness(Duration.standardMinutes(1))
.discardingFiredPanes())
.apply(GroupByKey.create())
Пожалуйста, дайте мне знать, если я что-то упустил.
Спасибо.