簡體   English   中英

窗口翻轉在ksql中如何工作? 作為查詢返回相同的結果,無論是否在ksql中使用窗口滾動

[英]How does window tumbling works in ksql? As query returning same result with or without using window tumbling in ksql

我正在使用ksql流並計算每5分鍾出現一次的事件。 這是我的查詢-

select count(*), created_on_date from TABLE_NAME window tumbling (size 5 minutes) group by created_on_date;

提供結果-

2 | 2018-11-13 09:54:50
3 | 2018-11-13 09:54:49
3 | 2018-11-13 09:54:52
3 | 2018-11-13 09:54:51
3 | 2018-11-13 09:54:50

沒有窗口翻滾的查詢-

select count(*), created_on_date from OP_UPDATE_ONLY group by created_on_date;

結果-

1 | 2018-11-13 09:55:08
2 | 2018-11-13 09:55:09
1 | 2018-11-13 09:55:10
3 | 2018-11-13 09:55:09
4 | 2018-11-13 09:55:12

兩個查詢都返回相同的結果,那么窗口翻滾有何不同?

滾動窗口是滾動式聚合,它基於給定時間窗口內的鍵來計算事件數。 時間窗口基於流的時間戳,默認情況下是從您的Kafka消息繼承而來,但是可以由WITH (TIMESTAMP='my_column')覆蓋。 因此,您可以將created_on_date作為timestamp列傳遞,然后根據那里的值進行匯總。

第二個是整個消息流。 由於您的消息本身恰好帶有時間戳,因此按分組進行分組會給您基於時間的聚合的錯覺。 但是,如果您想找出例如一個小時內有多少事件-這將是沒有用的(您只能對created_on_date進行計數)。

因此,第一個帶有窗口的示例通常是正確的方法,因為您通常希望在給定的時間內而不是在任意數據流的過程中)回答有關聚合的業務問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM