hi, 图挂了。
1. 可以这么使用这个方法:
···
input.assignTimestampsAndWatermarks(
WatermarkStrategy.<String>forBoundedOutOfOrderness(Duration.ofMillis(10))
.withTimestampAssigner((event, timestamp) -> 42L));
···
TimestampAssigner 会从输入的event上读取数据 并由watermark generator 决定输出对应的watermark.
3. 容忍是由于数据会乱序.
Best,
Shengkai
陈柏含 <
[hidden email]> 于2021年4月1日周四 下午5:16写道:
> 您好:
>
> 我是目前正在自学Flink以完成毕业设计的计算机专业学生。目前对Flink时间戳与水位线的代码有很多不确定且找不到权威解答的疑问,自己调试程序也因为之前没有Flink经验而对Debug变量窗口中各种复杂的结构找不到头绪。因此,抱着试一试的想法尝试通过这个邮箱寻求解答。
> 下面两个图片是一个分配器
>
>
>
> 我有一下几个疑问:1.是不是我们只要调用env.addSource(...).assignTimestampsAndWatermarks(new
> PeriodicAssigner)就能分配时间戳和水位线了呢?但是我看不到这个类中有分配时间戳的行为,好像只是和获取时间戳和分配水位线相关。
> 2.maxTs这个变量为什么能够从Long.MinValue中观察到最大的时间戳呢?
> 3.这段代码的解释中提到“该分配器会返回一个时间戳等于最大时间戳减去1分钟容忍间隔的水位线”,这里所说的容忍间隔的目的是什么呢?
>
> 感谢您的回复,非常感谢您的点拨!
>