2017-11-14 7 views
19

문맥에서 나는 결코 빔을 사용하지 않았습니다. 일반적인 사용 사례에 Beam 모델을 적용하는 방법을 이해하려고합니다.아파치 빔에서 장기간에 걸친 비정규 화 조인을 어떻게 표현합니까?

무제한 제품 컬렉션과 각 제품에 생산자가 하나씩있는 무제한 제품 컬렉션이 있다고 가정하십시오. 또한 귀하는 제품의 생산자가 제품 이전 (또는 직후)에 나타나는 추가 재산을 보유합니다. 그러나 프로듀서는 제품보다 몇 년 전에 나타날 수 있습니다.

생산자와 함께 제품을 묶어서 표현할 수있는 적절한 방법이 무엇입니까? 몇 년 동안 뻗어있는 창 결합을 갖는 것은 창 지점을 무너 뜨리는 것처럼 보입니다. 그러나 생산자를 옆 입력으로 갖는 것은 생산자가 제품이 출현 할 때 매우 밀접하게 나타날 수 있다는 것을 처리하지 않는 것처럼 보입니다.

이 두 가지 개념을 혼합하는 적절한 방법이 있습니까?

답변

3

생산자가 제품보다 몇 년 전에 나타날 수 있기 때문에 외부 저장소 (예 : BigTable)를 사용하여 제작자를 저장하고 제품 스트림에 ParDo을 작성하여 조회를 수행하고 가입을 수행 할 수 있습니다. 성능을 더욱 최적화하기 위해 상태 기반 DoFn 기능을 일괄 조회 (체크 아웃 this 블로그)의 장점을 활용할 수 있습니다.

생산자 데이터 이전에 제품 데이터가 전달되는 경우에도 창 작업과 CoGroupByKey를 사용하여 조인 할 수 있습니다. 그러나 여기의 창은 순서가 맞지 않은 전달을 처리하기에 충분할 정도로 작을 수 있습니다.