apache-flink - Flink 在运行时更改流窗口大小
问题描述
我有一个流被 FlinkKafkaConsumer 消耗,它将与另一个流连接以定义窗口大小,例如 Time.milliseconds(10000)。
如何在运行时将窗口大小更改为 Time.milliseconds(20000)?
Stream1.join(Stream2)
.where(new SingleValueSensorKeySelector())
.equalTo(new GPSKeySelector())
.window(TumblingEventTimeWindows.of(Time.milliseconds(10000)))
.apply(joinStreamFunc).addSink(kafkaProducer);
解决方案
窗口大小不能在运行时更改。
您可以做几件事,但都不是很有吸引力。您可以在某种 ProcessFunction 之上实现自己的窗口。或者您可以复制所涉及的流,让两种窗口并行进行,然后动态控制哪个窗口的结果进入接收器。
实现自己的窗口化将是一项非常重要的工作,并且将资源用于计算两组窗口听起来很昂贵。
推荐阅读
- javascript - 在 D3js 中为每个节点设置图像
- kubernetes - 德鲁伊操作员设置
- javascript - javascript map promises里面
- pdfmake - 子表中的间距 PDFMake
- android - 将 Jetpack-Compose 添加到项目中使用低于 21 的 API
- amazon-s3 - 上传图片 - 数据显示为“���”�!1A“Qaq��2��B�#”,图片为空白 - Next.js 应用程序上传到 DigitalOcean Spaces / AWS S3
- python - 并排渲染多个 pandas html 表
- post - 删除博客文章中的神秘内容
- reporting-services - 在日期之间将 mdx 参数转换为 ssrs
- android - 返回指纹并保存在firebase中