在 Flink SQL 中,GROUP BY key
和 GROUP BY key
带窗口聚合的主要区别在于它们如何处理数据的时间维度和计算结果的粒度。
- 简单的
GROUP BY key
:
当使用简单的 GROUP BY
对 key 进行聚合时,你会得到一个按指定 key 分组的静态聚合结果。这个聚合是基于 key 的所有历史数据进行的,不考虑时间窗口或数据排序。
例如,假设你有一个包含用户行为日志的流,其中包含用户 ID (user_id
) 和行为时间 (event_time
)。如果你执行以下查询:
SELECT user_id, COUNT(*)
FROM user_behavior
GROUP BY user_id;
这个查询将统计每个 user_id
的总行为数,不考虑时间窗口。这意味着它会聚合从流开始到当前时间点的所有