Apache kafka KSQL窗口查询的工作方式和最大窗口大小

Apache kafka KSQL窗口查询的工作方式和最大窗口大小,apache-kafka,streaming,ksqldb,Apache Kafka,Streaming,Ksqldb,关于使用窗口的KSQL wrt查询中的查询,我有两个问题: 假设我有以下聚合查询: 从testtopic_stream窗口中选择id,COUNT*,按id分组30天 上面的聚合结果是否仅通过使用新的勾号来计算,或者它实际上将遍历过去30天的所有数据,然后执行聚合 查询的最大可能窗口大小是多少?我看到我可以设置一个窗口,甚至可以维持30天,现在查询似乎工作正常。是否有建议的最大窗口大小? 这取决于auto.offset.reset策略。如果将其设置为“最早”,则查询将使用底层流/主题注释中的所有数

关于使用窗口的KSQL wrt查询中的查询,我有两个问题:

假设我有以下聚合查询:

从testtopic_stream窗口中选择id,COUNT*,按id分组30天

上面的聚合结果是否仅通过使用新的勾号来计算,或者它实际上将遍历过去30天的所有数据,然后执行聚合

查询的最大可能窗口大小是多少?我看到我可以设置一个窗口,甚至可以维持30天,现在查询似乎工作正常。是否有建议的最大窗口大小? 这取决于auto.offset.reset策略。如果将其设置为“最早”,则查询将使用底层流/主题注释中的所有数据,这实际上意味着存储在主题中的所有数据,也就是说,它取决于主题保留设置这将是多少数据。如果将配置设置为latest(默认设置),则查询将仅处理上游生产者在查询启动后编写的数据

在这两种情况下,窗口的大小对要处理的数据没有影响

窗口大小没有限制。你可以选择任何你想要的尺寸。注意:对于翻滚窗口,较小的窗口大小实际上会增加存储需求,而较大的窗口大小会减少存储需求,因为需要并行维护的窗口较少。

这取决于auto.offset.reset策略。如果将其设置为“最早”,则查询将使用底层流/主题注释中的所有数据,这实际上意味着存储在主题中的所有数据,也就是说,它取决于主题保留设置这将是多少数据。如果将配置设置为latest(默认设置),则查询将仅处理上游生产者在查询启动后编写的数据

在这两种情况下,窗口的大小对要处理的数据没有影响


窗口大小没有限制。你可以选择任何你想要的尺寸。注意:对于翻滚式窗口,较小的窗口大小实际上增加了存储需求,而较大的窗口大小则减少了存储需求,因为需要并行维护的窗口较少。

我明白了。让我们来考虑单词计数的经典例子。如果我有一个持久查询跟踪主题中每个单词的字数,每次新数据流入主题时,更新的字数都会计算为表中的previousWordCount+当前事件中的wordCount,对吗?我猜你的意思是不确定持久查询是什么的连续查询。除此之外,正确。根据您是否指定了not的窗口聚合,也可以是在所有时间内,按照窗口规范进一步分组到时间段的计数。啊,我明白您的意思了。如果我有一个1分钟的跳跃窗口,前进10秒,我得到6个不同的计数,因为60/10?是否可以在查询中仅显示这6个不同聚合中的一个?如果我有一个1分钟的跳跃窗口,提前10秒,我会得到6个不同的计数,因为60/10?-对的是否可以在查询中仅显示这6个不同聚合中的一个不知道你是什么意思。。。用例是什么?这不是一个滚动窗口用例吗?我感兴趣的是跟踪一个字段在最后60秒的滚动和,每10秒,最旧的数据10秒就会被丢弃。所以我在想,我可以使用60秒的跳跃窗口,提前10秒。我明白了。让我们来考虑单词计数的经典例子。如果我有一个持久查询跟踪主题中每个单词的字数,每次新数据流入主题时,更新的字数都会计算为表中的previousWordCount+当前事件中的wordCount,对吗?我猜你的意思是不确定持久查询是什么的连续查询。除此之外,正确。根据您是否指定了not的窗口聚合,也可以是在所有时间内,按照窗口规范进一步分组到时间段的计数。啊,我明白您的意思了。如果我有一个1分钟的跳跃窗口,前进10秒,我得到6个不同的计数,因为60/10?是否可以在查询中仅显示这6个不同聚合中的一个?如果我有一个1分钟的跳跃窗口,提前10秒,我会得到6个不同的计数,因为60/10?-对的是否可以在查询中仅显示这6个不同聚合中的一个不知道你是什么意思。。。用例是什么?这不是一个滚动窗口用例吗?我感兴趣的是跟踪一个字段在最后60秒的滚动和,每10秒,最旧的数据10秒就会被丢弃。所以我在想,我可以使用60秒的跳跃窗口,提前10秒。