【发布时间】:2022-01-04 14:07:34
【问题描述】:
我是 Flink 的初学者,我的问题是,我的 Flink App 消耗一个实时流,我想在每个“自然”小时聚合流的 uv,然后将 agg 结果写入 HDFS .我可以使用
ds.window(TumblingProcessingTimeWindows.of(Time.hours(1))).maxBy(1)
实现聚合工作,但是每小时写一次,但是,bucketingSink 类只能接受程序开始时开始的时间间隔,而不是“自然”小时,比如,从 14:50:00 开始,next触发时间将是 15:50:00,而不是 15:00:00。功能是
bucketingSink.setBatchRolloverInterval(1*60*1000L)
我目前找不到使每次窗口功能完成时都触发写入过程的解决方案,谁能给我一些提示? 多谢了。
【问题讨论】:
-
你使用的是什么版本的 Flink?桶式水槽已被弃用并在一段时间前被移除。您可以使用 FileSink 或 StreamingFileSink 吗?
-
@DavidAnderson 我的 Flink 版本是 1.9.1。 FileSink/StreamingFileSink 没听说过,1.9.1 支持吗?谢谢
标签: hdfs apache-flink real-time