【问题标题】:What does Window hopping mean?跳窗是什么意思?
【发布时间】:2020-07-15 01:39:43
【问题描述】:

我正在阅读KSQLDb.的初学者教程

我遇到过表查询:

CREATE TABLE pageviews_per_region_per_30secs10secs AS
  SELECT regionid,
         count(*)
  FROM pageviews_enriched
  WINDOW HOPPING (SIZE 30 SECONDS, ADVANCE BY 10 SECONDS)
  WHERE UCASE(gender)='FEMALE' AND LCASE (regionid) LIKE '%_6'
  GROUP BY regionid
  EMIT CHANGES;

下面是定义查询:

以下查询与上面计算计数的查询相同 对于 30 秒的跳跃窗口,前进 10 秒。

意思是在 30 秒内取出数据,延迟 10 秒?

什么时候使用窗口跳跃?

【问题讨论】:

    标签: apache-kafka ksqldb


    【解决方案1】:

    窗口化允许您按时间对记录进行分组。因此,这类似于查询中的 GROUP BY 子句并提供进一步的分组。

    Hopping Window 和 Tumbling Window 的区别在于聚合的结束时间。使用 Tumbling Windows,您可以按固定时间间隔从开始时间 (WINDOWSTART()) 到结束时间 (WINDOWEND()) 进行分组。结束时间一到,开始时间又重新开始。

    使用跳跃窗口,开始时间不必等待结束时间来开始下一个窗口,因此窗口可以重叠。 Tumbling 和 Hopping windows 上的 SIZE 是相同的,即聚合的大小或时间长度。 Hopping Windows 中的 ADVANCE BY 是开始下一次聚合之前的延迟。

    因此,举个例子,如果您正在聚合区域 6 中的女性用户数量,则使用跳跃窗口、聚合数据点或女性用户页面视图可以属于两个窗口。使用翻转窗口,窗口时间范围是不同的,不会重叠,因此每个时间范围内的数据点只会计算一次。

    doc 中有一些很好的图表来显示窗口如何随着时间的推移重叠或不重叠。

    【讨论】:

    • 您能解释一下吗,Hopping Windows 允许在时间间隔和间隔之间的延迟聚合数据?那么,如何解释“前进 10 秒的 30 秒跳跃窗口”。这意味着每 30 秒读取一次事件,然后等待 10 秒并在接下来的 30 秒开始读取?
    • 跳跃窗口和翻滚窗口都处理时间窗口或分组,但跳跃窗口有重叠。因此,在您的示例中,10 秒不是 30 秒窗口之间的间隔,但它指定了窗口如何重叠。请参阅上面链接中的“窗口聚合”图表。另外,对于实际结果的示例:kafka-tutorials.confluent.io/create-tumbling-windows/ksql.html。我已经有一段时间没有看到这个了,但这些可能会澄清差异
    • 谢谢。但我无法在使用时对案例进行成像,当每 30 秒捕获数据时,有 10 次重叠
    • kafka-tutorials.confluent.io/create-hopping-windows/ksql.html 有一个具有足够细节的跳跃窗口示例,因此您可以实时看到自己。 “因此,KSQL 运行的是连续查询——当新数据通过它们时连续运行的转换——在 Kafka 主题中的数据流上。”confluent.io/blog/ksql-streaming-sql-for-apache-kafka 示例显示了在同一窗口中“评级计数”增加的示例输出。还有另一个关于流的有用链接:kafka-tutorials.confluent.io/join-a-stream-to-a-table/ksql.html
    猜你喜欢
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多