1 个回答
水印(Watermark)是用于衡量事件时间进展的核心机制,主要用于处理乱序事件流,确保基于事件时间的计算(如窗口聚合)能容忍一定程度的延迟数据。在Flink中使用水印示例如下:
-- 与事件时间绑定
CREATE TABLE orders (
order_id STRING,
amount DOUBLE,
event_time TIMESTAMP(3), -- 事件时间字段
WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND -- 定义水印策略
) WITH (...);
-- 查询
SELECT
TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS window_start,
SUM(amount)
FROM orders
GROUP BY TUMBLE(event_time, INTERVAL '1' MINUTE);
发布于:1周前 (05-28) IP属地:
我来回答
您需要 登录 后回答此问题!