Google bigquery 来自KafkaIO的Apache波束流-需要窗口

Google bigquery 来自KafkaIO的Apache波束流-需要窗口,google-bigquery,apache-beam,Google Bigquery,Apache Beam,我正在使用KafkaIO API从Kafka主题流式传输消息 管道流量如下所示: KafkaStream-->使用转换器-->保存到BigQuery解码消息 我解码消息并使用BigQueryIO保存到BigQuery。我想知道我是否需要使用窗口 Window.into[Array[Byte]](FixedWindows.of(Duration.standardSeconds(10))) .triggering( Repeatedly

我正在使用KafkaIO API从Kafka主题流式传输消息

管道流量如下所示:

KafkaStream-->使用转换器-->保存到BigQuery解码消息

我解码消息并使用BigQueryIO保存到BigQuery。我想知道我是否需要使用窗口

Window.into[Array[Byte]](FixedWindows.of(Duration.standardSeconds(10)))
        .triggering(
          Repeatedly
            .forever(
              AfterProcessingTime
                .pastFirstElementInPane()
                .plusDelayOf(Duration.standardSeconds(10))
            )
        )
        .withAllowedLateness(Duration.standardSeconds(0))
        .discardingFiredPanes()
    )
根据documenation窗口是必需的,以防我们正在进行任何计算,如GroupByKey等。因为我只是解码数组字节消息并将它们存储到BigQuery中,所以可能不需要


请让我知道,我是否需要使用窗口?

有一个答案已发布到a,其中数据来自PubSub。主要思想是不可能收集无界PCollection的所有元素,因为不断添加新元素,因此必须实施以下两种策略之一:

  • :应首先设置非全局窗口功能
  • :您可以设置无界PCollection的触发器,使其能够定期更新无界数据集,即使订阅中的数据仍在流动
可能还需要通过使用以下命令设置选项的相应arg参数来启用管道中的流:

pipeline_options.view_as(StandardOptions).streaming = True