我有一个用例,其中我收到包含不同信息集的事件流,并希望对它们执行聚合。对于这些聚合中的每一个,都需要多个翻滚窗口,例如:每日,每周,每月,每年等。
聚合最初是所看到的计数的基本加法,但后来可能是对这些事件的一些分析/联接处理。因此,如果一个事件A每天来一次,另一个事件B每周来一次,结果将是这样的:
Daily
A: 1
B: 1 (Only for the day it was received)
Weekly
A: 7
B: 1
Monthly
A: 30 (30 day month)
B: 4 (5 in some cases)
Yearly
A: 365
B: 52 (53 in some cases)
用例只是围绕翻滚的窗口而不是滑动窗口,我正在研究如何实现这个用例。主要问题是我不想等到窗口结束,而是希望每10分钟左右继续接收更新。
我看了一下flink,有一些方法我们可以做到这一点,例如使用ProcessWindow函数,增量聚合,流切片,广播状态等,但由于我对flink很陌生,所以我不完全确定要使用什么,以及是否有任何陷阱,我错过了。
如果有人能帮助我,那就太好了。
在Flink上实现窗口的选择是
我认为您要求每10分钟更新一次,这并不适合SQL。
至于Windows API,内置的TimeWindow窗口分配器不支持数月和数年,并且每10分钟更新一次产品的要求需要自定义触发器。只要付出足够的努力,您就可以克服这些限制,但我认为这不值得。
相反,我会使用ProcessFunction来实现这一点。嵌入Flink文档的培训有一个示例,说明如何使用流程函数来实现翻滚时间窗口,您可以将其用作起点。扩展该示例以满足您的要求应该不会很困难。
问题内容: 我正在有限的时间里进行学校项目,导致代码混乱和混乱。我正在尝试打开两个jFrame,一个显示聊天界面,另一个显示图像。从第一个窗口调用时,我想调用一个方法,该方法多次更改第二个窗口上的图像,并且之间有一些延迟。但是,图像不会改变。 我认为我的问题是由于在文本窗口中使用了一些示例代码,并试图合并我自己的修改而没有完全理解前者。在尝试查找此问题时,我仅发现人们根据计时器和in来更新其jFr
我们计划将Apache Flink与一个巨大的IOT设置一起使用。客户将向我们发送某种结构化的传感器数据(如sensor_id、sensor_type、sensor_value、timestamp)。我们没有控制每个客户何时发送这些数据,最有可能是实时的,但我们没有保证。我们将所有事件存储在RabbitMQ/Kafka中。更新:我们可以假设每个传感器的事件是按顺序来的。 在开始实施可能的流式管道之
下面是目前为止我所想到的伪代码。任何帮助都将不胜感激!谢谢! 我检查了Table API,但对于流,似乎不支持很多操作,例如OrderBy。
我想将一个交易流聚合成相同交易量的窗口,这是区间内所有交易的交易规模之和。 我能够编写一个自定义触发器,将数据分区到Windows中。代码如下: 上面的代码可以将其划分为大致相同大小的窗口: 现在我喜欢对数据进行分区,以便卷与触发器值完全匹配。为此,我需要稍微修改一下数据,方法是将区间结束时的交易分成两部分,一部分属于正在触发的实际窗口,剩余的超过触发器值的数量必须分配给下一个窗口。 那可以用一些
我想使用早期触发逻辑进行窗口聚合(您可以认为聚合是由窗口关闭或特定事件触发的),我阅读了文档:https://ci . Apache . org/projects/flink/flink-docs-release-1.12/dev/stream/operators/windows . html # incremental-window-aggregate-with-aggregate functi