我们如何实现在PCollection中经过一定计数后触发的触发器

时间:2019-02-11 23:03:04

标签: google-cloud-dataflow apache-beam

我正在编写从无限制的源(例如Kafka)读取Beam数据管道的方法。我没有执行任何分析功能。我想转换元素并将其写入接收器,比如说在PCollection的记录计数达到某个阈值之后。这是为了节制正在发送到接收器的数据

查看了现有触发器,但无法确定它们是否合适

1 个答案:

答案 0 :(得分:0)

我已经测试了触发器,它们按预期工作, 这是一个scala代码示例

val data: PCollection[Type] = results
  .apply(
  Window
    .into[Type](FixedWindows.of(Duration.millis(2000)))
    .withAllowedLateness(Duration.millis(1000))
    .triggering(AfterPane.elementCountAtLeast(4)
    .accumulatingFiredPanes()
)

等待4个元素,然后触发窗口。