首页 > 解决方案 > 使用 Apache Flink 自定义水印

问题描述

我正在研究可以插入数据流的水印类型。 

虽然这可能超出了水印的目的,但我还是会问。

你能创建一个包含时间戳和 k/v 对的水印(this=that, that=this)吗? 

因此水印将保持{12DEC180500GMT,this=that, that=this}

或者

{Timestamp, kvp1, kvp2, kvpN}

这样的事情可能吗?我已经查看了用户和 API 文档,但可能忽略了一些东西

标签: apache-flink

解决方案


不,Flink 中的 Watermark 类(在 flink/flink-streaming/java/src/main/java/org/apache/flink/streaming/api/watermark/Watermark.java 中找到)除了 MAX_WATERMARK 之外还有一个实例变量,即

/** The timestamp of the watermark in milliseconds. */
private final long timestamp;

所以水印除了时间戳之外不能携带任何信息,时间戳必须是长值。


推荐阅读