flink窗口

8tntrjer  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(428)

我有像这样的数据流 Eventname, Event id, Start_time ( Time Stamp) ..
这里我想对最后一个字段应用窗口变换 Start_time 这是时间戳,我的要求是我想采取的最后30分钟的数据。
所以我在Flink窗口看到的是 .timeWindow(Time.minutes(30)) 所以我想这需要过去30分钟的事件,但不尊重 start_time 我想把数据放在起始时间是最后30分钟的地方,然后我怎么写转换呢?我需要用吗 filter 用那个专栏?
我是Flink的新手。
谢谢

mum43rcc

mum43rcc1#

你必须做两件事:
通过调用 setStreamTimeCharacteristic(TimeCharacteristic.EventTime)StreamExecutionEnvironment .
为记录和水印指定时间戳。这是通过使用 AssignerWithPeriodicWatermarks 或者一个 AssignerWithPunctuatedWatermarks 通过调用`datastream.assigntimestamps(yoursigner)。
在事件时间模式下,flink将根据您分配给记录的时间戳构建窗口。水印告诉flink“数据的逻辑时间”。水印为1000意味着预计不会再有时间戳小于1000的记录。
事件时间处理的整个主题太复杂,无法在这里讨论。我建议您看看apache flink文档。

相关问题