gpt4 book ai didi

scala - Flink 中滑动窗口的性能不佳

转载 作者:行者123 更新时间:2023-12-01 00:24:18 27 4
gpt4 key购买 nike

我使用此代码来执行我的测试( Flink Quick Start ):

 val text = env.socketTextStream("localhost", port, '\n')

// parse the data, group it, window it, and aggregate the counts
val windowCounts = text
.flatMap { w => w.split("\\s") }
.map { w => WordWithCount(w, 1) }
.keyBy("word")
.timeWindow(Time.minute(15))
.sum("count")

使用此代码,我有超过 65 000 个输入/秒

如果我改变
timeWindow(Time.minute(15))

经过
timeWindow(Time.minutes(15), Time.seconds(1))

我有少于 2 500 个输入/秒

有什么办法可以通过滑动窗口获得更好的性能吗?

最佳答案

对于 15 分钟的滚动窗口,每个传入事件都分配给一个窗口,而对于 15 分钟滑动窗口和 1 秒幻灯片,每个传入事件都被复制到 15 * 60 = 900 个窗口中。这显然会影响性能。

根据您的应用程序要求,您可能能够通过使用 ProcessFunction 或通过实现自定义窗口逻辑以更少的开销计算您需要的内容。例如,您可以预先聚合到 900 个一秒窗口,然后有第二层窗口,通过减去即将到期的秒对总数的贡献并添加最近一秒的值来逐步调整 15 分钟的结果。

关于scala - Flink 中滑动窗口的性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46201329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com