然后我们再来看,如何设置时间语义.
可以看到:
我们再设置环境以后,设置并行度,然后设置
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
这里设置了,时间语义采用,数据产生时间来算.
我们可以去看看这个TimeCharacteristic这个是个枚举类
可以看到有ingestionTime这个是进入到flink的时间对吧
然后这个processingTime这个是flink进行数据处理的时间,我们这里就用的这个时间.
然后我们再看,这里的
EventTime,这个是事件数据发生的时间
可以看到这里,我们依然是从 socket 中获取数据,
然后把env.execute加上
然后我们看不是说,让生成数据的时候,带上,时间戳,我们这里是SensorReading中有Long型的
时间戳啊
但是我们想一下,虽然我们这里定义了,这个字段是时间戳,但是,flink知道么?
他不知道对吧.
所以这里就需要我们告诉flink ,时间戳是什么?
这里可以通过这个,可以看到整理后的map后的SensorReading流,有个
assignTimestampsAndWatermarks这个,就可以进行告诉,flink哪个字段是时间戳和
waterMark的设置,这里这个waterMark我们还没有说,所以说了
waterMark以后,我们这里再继续说.