Flink从入门到真香(1三、时间语义的定义)

在watermark以前先说下时间的概念,在https://blog.51cto.com/mapengfei/2554577 里面有各类时间窗口,实际生产中那是以哪一个时间为准产生的窗口呢? 事件发生的时间? 进入flink程序的时间?仍是flink开始处理的时间
Flink提供了一套设计解决方案
设置能够在代码中env直接设置ide

val env = StreamExecutionEnvironment.getExecutionEnvironment

//    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)  //以事件时间做为窗口聚合
//env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime)   //以数据进入flink的时间做为窗口时间
//    env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime) //以Flink实际处理时间做为窗口时间

时间语义

Flink从入门到真香(1三、时间语义的定义)

只能说不一样的场景下,每一个时间都有使用场景,具体根据实际状况来实施设计

在代码中设置

咱们能够直接在代码中,对执行环境调用setStreamCharacteristic方法,设置流的时间特性
具体的时间,还须要从数据中提取时间戳(timestamp),
若是要用事件时间,还须要设置具体取的哪一个字段和格式,不然flink也不知道你用的哪一个字段code

val env = StreamExecutionEnvironment.getExecutionEnvironment
//从调用时刻开始给env建立的每一个stream追加时间特性
env.setStreamTimeCharcteristic(TimeCharacteristic.EventTime)blog

相关文章
相关标签/搜索