0

Pubsub 소스의 SDK 1.9.1에는 PubsubIO.Read.maxReadTimePubsubIO.Read.maxNumRecords 개의 메서드가 있습니다. 이러한 메서드를 사용하면 pubsub 메시지에서 바운드 컬렉션을 만들 수 있으므로 일괄 처리 모드에서 Dataflow 파이프 라인을 시작할 수있었습니다.일괄 처리를 사용하여 DataFlow의 PubSub에서 읽는 방법

Dataflow SDK 2.1을 사용하여 어떻게 simillar를 구현할 수 있습니까? 배치 모드를 사용하여 Dataflow 파이프 라인의 Pubsub에서 읽으려면 어떻게해야합니까?

+0

당신이를 확인해 봤어? https://beam.apache.org/documentation/sdks/javadoc/2.1.0/index.html?org/apache/beam/sdk/io/Read.Unbounded.html 최근에 Scio를 많이 사용하고 있는데, "순수한"광속에서 잘 기억하지만, 당신이 찾고있는 것과 비슷하게 보입니다. 그러나 그것은 PubsubIO.Read – MaC

+0

후에 배치해야합니다 실제로 그것은 higly simillar 보이지만 어떻게 파이프 라인에 적용 할 수 있을까? 이를 사용하는 유일한 방법은 SDK에 깊숙이 묻혀있는 소스에 액세스하는 것이며 SDK를 적용한 후 사용하지 않으면 잃어 버리게됩니다. PubsubIO.Read를 제공하는 개발자가 사용할 수 있었지만 PubsubIO.Read API를 사용하는 개발자가이를 어떻게 사용할 수 있습니까? –

답변

0

불행히도 SDK의 새 버전에서는 지원되지 않습니다. 내가 한 일은 PubSub에서 maxReadTime 또는 maxNumRecords에 대한 DoFn을 구현하여 메시지를 반환하는 것입니다.

이전 버전의 SDK에서 그랬습니다. PubsubReader 클래스를 확인할 수 있습니다.

이 같이 호출해야합니다 :

pipeline.begin() 
      .apply(Create.of((Void) null)).setCoder(VoidCoder.of()) 
      .apply(ParDo. of(new MyPubsubReader(maxNumRecords, maxReadTime)); 
      .setCoder(coder);