Apache kafka KSQL窗口聚合流,会话结束

Apache kafka KSQL窗口聚合流,会话结束,apache-kafka,ksqldb,Apache Kafka,Ksqldb,我将根据卡夫卡主题的一个属性对来自该主题的事件进行分组,并随时间使用,特别是 我已经能够创建会话开始信号流,如中所述 -创建具有新“数据”主题的流: 创建流数据用户\u ID INT kafka_topic='data',value_format='json',partitions=2; -创建跟踪每个会话的用户交互的表: 将表会话创建为 选择USER\u ID,COUNTUSER\u ID作为计数 从数据 窗口会话5秒 按用户标识分组; -在现有“会话”主题上创建流。 创建流会话\u流ROWK

我将根据卡夫卡主题的一个属性对来自该主题的事件进行分组,并随时间使用,特别是

我已经能够创建会话开始信号流,如中所述

-创建具有新“数据”主题的流: 创建流数据用户\u ID INT kafka_topic='data',value_format='json',partitions=2; -创建跟踪每个会话的用户交互的表: 将表会话创建为 选择USER\u ID,COUNTUSER\u ID作为计数 从数据 窗口会话5秒 按用户标识分组; -在现有“会话”主题上创建流。 创建流会话\u流ROWKEY INT KEY,COUNT BIGINT 使用kafka_topic='SESSIONS',value_format='JSON',window_type='Session'; -创建窗口开始事件流: 创建流会话\u启动为 从会话流中选择* 其中WINDOWSTART=WINDOWEND;
是否有可能在每次窗口聚合结束时创建会话结束信号流?

我假设您的意思是,当会话窗口在您为该窗口配置的5秒内未看到任何新消息时,您希望发出一个事件/行

我认为这在目前是不可能的

由于源数据可能有无序的记录,即时间戳远早于已处理行的事件,因此一旦5秒窗口过去,会话窗口就不能“关闭”

默认情况下,如果未收到应包含在会话中的新数据,现有会话将在24小时后关闭。这可以通过在窗口定义中设置宽限期来控制


宽限期结束后关闭窗口不会导致当前输出任何行。然而,一旦实施,我可能会给你想要的你是的,这就是我想要实现的。谢谢@Andrew_Coates如果这回答了你的问题,你介意将问题标记为已回答吗?我会的,我想再等几天再接受它