2017-11-20 1 views
1

mvn 종속성 google-cloud-dataflow-java-sdk-all 버전 2.1.0을 사용 중이고 파이프 라인에 사용자 정의 싱크를 추가하려고합니다.Dataflow v2.1 용 사용자 정의 무한 싱크 작성

파이프 라인에서 나는 Pubsub 개의 메시지를 검색하고 있으며, 결국 이들을 PCollection of Strings로 변환합니다.

은 파이프 라인의 단순화 된 버전은 내가 설정 한된다

Pipeline pipeline = Pipeline.create(options); 
pipeline.apply(PubsubIO.readMessages()) 
    .apply(Window.into(FixedWindows.of(Duration.standardSeconds(1)))) 

//transformations 

.apply(//Write to custom sink) 

내가 팀에 다른 사람이 이미이 데이터를 작성하는 코드를 작성했기 때문에 사용자 지정 싱크가 필요한 이유 BigQuery를 사용하고 이에 대한 REST API를 제공했습니다. 따라서 내 싱크는 관련 데이터가있는이 REST API를 호출합니다. 이미 작성된 코드의 일부를 복제해야하기 때문에 BigQueryIO 사용에 열중하지 않습니다.

Apache Beam website에서 Java SDK를 사용하여 사용자 지정 싱크를 작성하는 것에 관한 설명서를 찾을 수 없으므로 누군가 올바른 방향으로 끄덕 거리면 많은 도움이됩니다.

또한 ParDo를 사용하여 REST API에 데이터를 전송하는 것으로 간주했지만 기술적으로 더 이상 싱크가 없으므로 "데이터 흐름 방식"으로 사용하지 않을 것입니다.

답변

0

제한되지 않은 싱크의 경우 빔에 싱크 특정 API가 없습니다. 모든 IO 변환은 기본적으로 ParDo를 구현합니다. 특정 보장을 제공하는 몇 가지 기술이 있습니다 (예 : GroupByKey을 사용하여 데이터 흐름에서 체크 포인트 장벽 제공). 이는 외부 시스템 (이 경우 REST API)과의 상호 작용에 따라 다릅니다. 귀하의 경우에 들어가는 방법은 ParDo입니다.

관련 문제