首页 > 其他 > 详细

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

时间:2020-11-26 09:08:03      阅读:25      评论:0      收藏:0      [点我收藏+]
在watermark之前先说下时间的概念,在https://blog.51cto.com/mapengfei/2554577 里面有各种时间窗口,实际生产中那是以哪个时间为准产生的窗口呢? 事件发生的时间? 进入flink程序的时间?还是flink开始处理的时间
Flink提供了一套设计解决方案
设置可以在代码中env直接设置

    val env = StreamExecutionEnvironment.getExecutionEnvironment

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

时间语义

技术分享图片

只能说不同的场景下,每个时间都有使用场景,具体根据实际情况来实施

在代码中设置

我们可以直接在代码中,对执行环境调用setStreamCharacteristic方法,设置流的时间特性
具体的时间,还需要从数据中提取时间戳(timestamp),
如果要用事件时间,还需要设置具体取的哪个字段和格式,否则flink也不知道你用的哪个字段

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

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

原文:https://blog.51cto.com/mapengfei/2554583

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!