Я пытаюсь выполнить окно данных из потока Google Cloud pubsub с частотой 10 с, однако получаю эту ошибку:
java.lang.IllegalArgumentException: невозможно выводить с отметкой времени 2019-07-20T12: 13: 04.875Z. Отметки времени вывода должны быть не раньше отметки времени текущего ввода (2019-07-20T12: 13: 05.591Z) за вычетом допустимого перекоса (0 миллисекунд). Подробную информацию об изменении допустимого перекоса см. В документации Javadoc DoFn # getAllowedTimestampSkew (). org.apache.beam.runners.dataflow.worker.repackaged.org.apache.beam.runners.core.SimpleDoFnRunner $ DoFnProcessContext.checkTimestamp (SimpleDoFnRunner.java:587) org.apache.beam.runners.dataflow.worker.repackaged. org.apache.beam.runners.core.SimpleDoFnRunner $ DoFnProcessContext.outputWithTimestamp (SimpleDoFnRunner.java:566) или sdk.transforms.WithTimestamps $ AddTimestampsDoFn.processElement (WithTimestamps.java:136)
Вот код, вызывающий ошибку:
eventStream
.apply("Add Event Timestamps",
WithTimestamps.of((Event event) -> new Instant(event.getTime())))
.apply("Window Events",
Window.<Event>into(FixedWindows.of(Duration.parseDuration("10s"))));
В чем причина этого и каково подходящее решение?