不分组,按照EventTime划分 滑动窗口
*
Non-keyed Window,
底层调用的是windowAll
public class EventTimeSlidingWindowAllDemo1 {
public static void main(String[] args) throws Exception {
// 前关后闭 0 -- 4999 5000- 9999
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());
// 老版本必须要设置时间标准 (1.20 之前的)
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
DataStreamSource<String> lines = env.socketTextStream("linux01", 8888);
// flink里面的时间都精确到毫秒
// 时间提取器 BoundedOutOfOrdernessTimestampExtractor : 允许时间乱序,并且可以指定窗口延时
// WaterMark (水位线,可以让窗口延迟触发的一种机制)
// 一个窗口中的一个分区的水位线 = 当前窗口当前分区最大的 EventTime - 延迟时间 Time.seconds(0)
SingleOutputStreamOperator<String> linesWithWaterMark = lines.assignTimestampsAndWatermarks(new BoundedOutOfOrdernessTimestampExtractor<String>(Time.seconds(2)) {
@Override
public long extractTimestamp(String s) {
return Long.