首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >全域Flink水印?

全域Flink水印?
EN

Stack Overflow用户
提问于 2019-02-19 19:53:12
回答 1查看 418关注 0票数 1

假设我有两个不同的数据流,使用事件时间。

代码语言:javascript
运行
复制
class TSWM implements AssignerWithPunctuatedWatermarks<POJO> {
   long maxTS = Long.MIN_VALUE;
   @Override
  public Watermark checkAndGetNextWatermark(POJO event, long l) {
    maxTS = Math.max(maxTS, event.TS);
    return new Watermark(getMaxTimestamp());
  }

  @Override
  public long extractTimestamp(POJO event, long l) {
    maxTS = Math.max(maxTS, event.TS);
    return event.TS;
  }
}

DataStream<POJO> ds1 = ... .assignTimestampsAndWatermarks(new TSWM())

DataStream<POJO> ds2 = ... .assignTimestampsAndWatermarks(new TSWM())

所以现在我有了两个不同的数据流,我的问题是,时间戳和水印是分离到,每个数据存储单元,还是一个集中式时钟?

我正在做一些其他复杂的加窗和重新分配时间戳和水印,它不会产生加窗的数据,所以我有一种感觉水印或时间戳是问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-19 20:10:54

从某种意义上说,水印是“全局的”,但有以下警告:

  1. assignTimestampsAndWatermarks的每个并行实例都有自己的水印。
  2. 当一个操作符连接两个流(例如,一个CoProcessFunction)时,它的水印是传入水印的最小值。
  3. 有了卡夫卡,你就可以安排每一个卡夫卡分割水印。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54773963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档