当前位置: 首页 > 知识库问答 >
问题:

闪烁进程窗口中无(零)事件的处理和警报

吴嘉禧
2023-03-14

我们正在构建一个flink用例,在这个用例中,我们从一个kafka主题进行消费,并根据平均、最大和最小阈值执行聚合和生成警报。我们还需要在翻滚事件时间窗口中有0个事件时通知每个键。我们很难想出一个同样的解决方案。我们考虑的选项如下,如果有其他想法我们还没有考虑,请告诉我们。

    < li >可查询状态:保存每个过程窗口功能中的键。从外部应用程序查询状态,并在20分钟时间间隔到期后某个密钥丢失时发出警报。我们看到可查询状态特性在将来会被弃用。我们不想走这条路,因为我们已经知道它已经停产了。 < li >使用处理时间窗口:如果我们的下游应用程序实时发送事件,使用处理时间而不是事件时间将是一个选项。下游应用程序的维护、延迟等会导致大量数据丢失,这是不希望的。 < li >生成人造kafka事件:很遗憾,我们没有权限在我们的生态系统中生成人造事件。

Flink版本:1.14.3

由于每个窗口处理的事件数量,我们使用增量聚合函数https://night lies . Apache . org/flink/flink-docs-master/docs/dev/datastream/operators/windows/# processwindowfunction-with-incremental-aggregation

谢谢,

斯韦塔

共有1个答案

拓拔意
2023-03-14

这可以通过将键控处理函数引入管道来解决,该管道使用计时器创建金丝雀事件,这些事件将导致原本为空的窗口存在。然后,可以从结果中筛选出这些事件。

有关详细信息,请参阅用户邮件列表上的此线程。

 类似资料:
  • 我正在运行一个简单的示例来测试基于EventTime的Windows。我能够生成带有处理时间的输出,但当我使用EventTime时,没有输出。请帮助我明白我做错了什么。

  • 我是Flink的新手,需要方法的帮助。我有时间颗粒度为5分钟的事件流。我想通过调用rest API来获取事件的元数据,其中包含过去1小时数据点的历史事件,即过去12点(5分钟时间颗粒度)。 e、 g事件的时间戳为10:00、10:05、10:10、10:15等,因此如果我想获取时间戳为11:00的事件元数据,我将调用send发送所有时间戳为10:00、10:05、10:10、10:15的事件。。1

  • 有人能帮我理解一下在flink中的窗口(会话)是什么时候和如何发生的吗?或者样品是如何加工的? 例如:假设定义的时间窗口是30秒,如果一个事件在t时间到达,另一个事件在t+30,那么这两个事件都将被处理,但是在t+31到达的事件将被忽略。 如果我说的不对,请纠正。 上面的问题是:如果一个事件在t时间到达,而另一个事件在t+3时间到达,是否还会等待整个30秒来汇总并最终确定结果? DTO: ====

  • 我有一个流系统,在这里我可以获得点击流数据。 数据格式: 我怎样才能做到这一点呢?基本上,我必须维护窗口中所有事件的状态,然后,一旦我获得事件,我必须从该状态获取价格。我并不要求任何工作解决方案,只是要求如何维护窗口中所有事件的状态。我也有一些自定义的Reduce操作。 在:我将2个事件数据加入到列表中。

  • 2)我研究了循环分区的重新平衡。假设我建立了一个集群,如果我的源的并行度为1,如果我进行了重新平衡,我的数据是否会在机器之间进行重排以提高性能?如果是这样,是否有一个特定的端口将数据传送到集群中的其他节点? 3)状态维护有什么限制吗?我计划维护一些用户id相关的数据,这些数据可能会变得很大。我读到flink使用rocks db来维护状态。只是想检查一下是否有限制可以维护多少数据? 4)同样,如果数

  • 作业并行性(4,8,16):[自动生成源]-->[Map1]-->[滚动窗口(10s)]-->[Map2]-->[接收器] Flink窗口性能eps 4p、8p、16p 作业以上的性能最高达到了每秒50k+-左右,不管我如何将集群缩放成4-16的并行度。 闪烁性能无窗口4p、8p 我已经删除了窗口的逻辑,以消除瓶颈性能的应用程序逻辑,但似乎窗口仍然导致我的整个流性能下降,即使该窗口只是一个通过函数