在https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/streaming/time_attributes.html
事件时间属性和水印的DDL为:
CREATE TABLE user_actions (
user_name STRING,
data STRING,
user_action_time TIMESTAMP(3),
-- declare user_action_time as event time attribute and use 5 seconds delayed watermark strategy
WATERMARK FOR user_action_time AS user_action_time - INTERVAL '5' SECOND
) WITH (
...
);
我想问一下新水印生成的政策:
对于数据流,flink提供了以下两种水印生成策略,在ddl里呢?
- 像AssignerWithPeriodicWatermarks那样周期性地生成新水印
- 像AssignerWith标点Watermarks一样标点,也就是说,当新事件到来时,尝试生成新的水印
水印是定期分配的。您可以通过配置pipeline.auto-watermark-interval
指定间隔。
还要注意的是,用于水印的API在DataStream API中发生了更改,您提到的两个类现在已弃用。
[1]https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/event_timestamps_watermarks.html#introduction-到水印策略