Flink1.7学习笔记(二)时间戳和水印的使用

	上文介绍了关于时间戳,时间,与水印的性质,接下来是关于如何在程序之中使用它们的用例。
			ps:关于本文以及以后所用到的maven依赖与打包插件请参考
				https://blog.csdn.net/hxw79321/article/details/86612814 就不在文章之中继续赘述。

首先要设置流环境的时间窗口类型(scala实现)

val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)

定义完事件时间类型后就要开始处理事件时间中的数据,我们现在还不能直接对该类型的数据进行操作,上文说过,处理事件时间必须要为其分配时间戳和水印。
一、分配时间戳与水印的两种方法
1、直接在数据之中指定
2、实现时间戳和水印生成器
ps:时间戳和水印是从1970-01-01T00:00:00至今的毫秒数。

要在源就赋予数据水印必须调用SourceContext 的 collectWithTimestamp方法,生成水印需要使用emitWatermark
(Watermark)函数

实现水印生成器首先要实现AssignerWithPeriodicWatermarks 代码:

import org.apache.flink.streaming.api.TimeCharacteristic
import org.apache.flink.streaming.api.functions.AssignerWithPeriodicWatermarks
import org.apache.flink.streaming.api.scala.{DataS
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值