Apache flink 如何在Flink流媒体中的空窗口上执行函数?

Apache flink 如何在Flink流媒体中的空窗口上执行函数?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我编写了一个Flink程序,它从一个简单的kafka流计算每个键控窗口的事件数。我的工作很棒,快速准确。当源停止时,我希望将0作为每个窗口的计算结果,但不发送结果。该函数只是不执行。我认为这是因为Flink的懒惰操作行为 有什么建议吗?我遇到了同样的情况。用另一个进程填补数据库中的漏洞是一个解决方案 然而,我发现将主流与自定义的定期源合并更容易,它会发出假人,假人的唯一角色是触发windows创建。执行此操作时,必须确保在计算中忽略假人 (但是您可能不需要RichParallelSourceFu

我编写了一个Flink程序,它从一个简单的kafka流计算每个键控窗口的事件数。我的工作很棒,快速准确。当源停止时,我希望将
0
作为每个窗口的计算结果,但不发送结果。该函数只是不执行。我认为这是因为Flink的懒惰操作行为


有什么建议吗?

我遇到了同样的情况。用另一个进程填补数据库中的漏洞是一个解决方案

然而,我发现将主流与自定义的定期源合并更容易,它会发出假人,假人的唯一角色是触发windows创建。执行此操作时,必须确保在计算中忽略假人


(但是您可能不需要RichParallelSourceFunction,SourceFunction就足够了)

我不确定是否正确理解您的意思。是否希望即使窗口不包含元素也会触发它们?如果是这样的话,那么目前这是不可能的。问题是,您必须为每个可能的键值触发一个窗口。它们是否为每个键发出一个空窗口?假设我们有一个
long
作为键,那么我们必须处理
2^64
窗口(作为上限)?谢谢!现在,我们正在destiny上解决它,使用Elasticsearch插入缺少的时间戳elemebñnts(我们正在从一些提要生成度量)。这是可行的,但如果flink有类似于全局配置的“强制窗口”的东西,那就太棒了。