> it is not clear to me if watermarks are also used by map/flatmpat
operators or just by window operators.

Watermarks are most liked only used by timing segmented aggregation
operator to trigger result materialization. In streaming, this “timing
segmentation” is usually called “windowing”, so in this sense, watermarks
are just used by window operators. But, there are other type of window,
say, count-window.

> My application reads from a kafka topic (with multiple partitions) and
extracts assigns timestamp on each tuple based on some fields of the kafka
records.

Watermarks depend on timestamps, but the two are different things.
Windowing operations use timestamps to segment/pane/bucket elements to
window, while watermarks signal time-progress to window operations, so they
can materialize memorized window results to downstream.

> it seems that the flatmap operator *does not* guaranteed that it will
process elements in an deterministic time order.

Most operators just pass timestamps/watermarks to downstream. All operators
including window operators process element arriving order. If you want
event time ordered elements, you need do window operation in upstream
operators.

Resources:
*
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/event_timestamps_watermarks.html
*
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/stream/operators/windows.html
* https://www.oreilly.com/radar/the-world-beyond-batch-streaming-102/

Hope it could be helpful.

Best,
Kezhu Wang

On February 4, 2021 at 23:17:07, Antonis Papaioannou (papai...@ics.forth.gr)
wrote:

Hi,

reading through the documentation regarding waterrmarks, it is not clear to
me if watermarks are also used by map/flatmpat operators or just by window
operators.

My application reads from a kafka topic (with multiple partitions) and
extracts assigns timestamp on each tuple based on some fields of the kafka
records. A following keyBy operator creates partitions and sends the tuples
to the corresponding downstream map/flatmap operator. I have set the
timecharacteristic to EventTime.

However, it seems that the flatmap operator *does not* guaranteed that it
will process elements in an deterministic time order.
Is this correct?

Antonis

Reply via email to