tumble
是Flink SQL中用于定义时间窗口的关键字之一。它用于将连续的事件时间流划分为不重叠的固定大小的时间窗口,以便在窗口内进行聚合操作。
基本语法:
SELECT ...
FROM ...
GROUP BY TUMBLE(event_time_column, interval)
event_time_column
是表示事件时间的列。interval
是窗口的大小,可以是一个时间间隔,比如INTERVAL '5' MINUTE
表示5分钟的窗口。
用例
例如,如果我们有一个名为OrderLog
的表,其中包含event_time
(事件时间)和purchase_amount
(购买金额)列,我们可以使用tumble
来计算每小时的购买总金额:
SELECT
TUMBLE_END(event_time, INTERVAL '1' HOUR) AS hour_end,
SUM(purchase_amount) AS total_amount
FROM
OrderLog
GROUP BY
TUMBLE(event_time, INTERVAL '1' HOUR)
在上面的例子中,我们使用了tumble
来将事件时间流划分为每小时的窗口,并在每个窗口内计算了购买总金额。tumble
语法有助于处理流式数据,并在特定的时间窗口内进行聚合操作。