Каково практическое использование DataStream # assignAscendingTimestamps - PullRequest
2 голосов
/ 06 июля 2019

Javadoc для DataStream # assignAscendingTimestamps

* Assigns timestamps to the elements in the data stream and periodically creates * watermarks to signal event time progress. * * This method is a shortcut for data streams where the element timestamp are known * to be monotonously ascending within each parallel stream. * In that case, the system can generate watermarks automatically and perfectly * by tracking the ascending timestamps.

Этот метод предполагает that the the element timestamp are known to be monotonously ascending within each parallel stream. Но на практике почти ни один поток не может дать такую ​​гарантию, что метки времени событий расположены в порядке возрастания.

Я хотел бы заключить, что этот метод никогда не должен использоваться, но я хотел бы спросить, если я что-то пропустил (например, когда его использовать)

Ответы [ 2 ]

2 голосов
/ 07 июля 2019

в целом согласен, на практике его редко можно использовать.Исключением является следующее: Если Kafka используется в качестве источника с LogAppendTime, временные метки располагаются по порядку для каждого раздела.После этого вы можете использовать водяные знаки для каждой секции в Flink [1] с AscendingTimestampExtractor, и у вас будет довольно оптимальный водяной знак.

Cheers,

Константин

[1] https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/connectors/kafka.html#kafka-consumers-and-timestamp-extractionwatermark-emission

0 голосов
/ 20 июля 2019

После прочтения исходного кода DataStream#assignAscendingTimestamps он использует AscendingTimestampExtractor для извлечения отметки времени.

AscendingTimestampExtractor сохранит наибольшую отметку времени события, наблюдаемую на данный момент.Если время события не в порядке, он напечатает журнал, чтобы предупредить, что монотонно восходящие временные метки нарушены.

Итак, я думаю, что этот класс может быть полезен на практике для случая, который не допускает лени (водяной знак может продолжать расти).

...