首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查窗口是否由传递它的水印触发

检查窗口是否由传递它的水印触发
EN

Stack Overflow用户
提问于 2016-03-09 13:42:28
回答 1查看 554关注 0票数 0

如果我有这样的窗户

代码语言:javascript
运行
复制
.apply(Window
    .<String>into(Sessions
        .withGapDuration(Duration.standardSeconds(10)))
    .triggering(AfterWatermark
        .pastEndOfWindow()
        .withEarlyFirings(AfterPane.elementCountAtLeast(1))));

它接收数据:

代码语言:javascript
运行
复制
a -> x (timestamp 0) (received at 20)
a -> y (timestamp 1) (received at 21)
(watermark passes 11) (at 22)

我想窗口有时会触发:

  • 20秒,因为提前开火
  • 21秒,因为提前开火
  • 22秒,因为水印通过GapDuration

在我应用于加窗数据的ParDo函数中,是否有一种方法可以区分早期触发和通过GapDuration的水印

根据this stackoverflow question,没有办法获得水印。如果我能做到这一点,我可以检查max(timestamp) < watermark。但是,由于我无法获得水印,是否有其他方法可以确定一个窗口是由通过它的水印触发的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-09 22:27:55

您可以通过调用PaneInfo (调用ProcesContext#pane() )来访问GroupByKey之后的DoFn中元素的ProcesContext#pane(),并使用它来确定Timing。这将允许您识别这是一个“准时”的射击(由于水印通过窗口的末端)或投机/迟发射。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35893275

复制
相关文章

相似问题

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