Apache Beam 프로그래밍 모델

Apache Beam은 일괄 처리 파이프라인과 스트리밍 데이터 동시 처리 파이프라인을 모두 정의할 수 있는 오픈소스 통합 모델입니다. Apache Beam 프로그래밍 모델을 사용하면 대규모 데이터 처리 방식이 간단해집니다. Apache Beam SDK 중 하나를 사용하여 파이프라인을 정의하는 프로그램을 빌드합니다. 그러면 Apache Beam에서 지원하는 Cloud Dataflow와 같은 분산 처리 백엔드 중 하나가 파이프라인을 실행합니다. 이 모델을 사용하면 동시 처리 물리적 조정이 아닌 데이터 처리 작업의 논리적 구성에 집중할 수 있습니다. 작업이 어떻게 실행되는 지가 아니라 작업을 수행하려면 무엇이 필요한 지에 집중할 수 있습니다.

Apache Beam 모델에서는 유용한 추상화가 제공되므로 개별 작업자 조정, 데이터세트 분할, 작업과 같은 분산 처리의 세밀한 부분에 일일이 신경 쓰지 않아도 됩니다. Cloud Dataflow가 이러한 세밀한 부분을 완벽하게 관리합니다.

개념

이 섹션에서는 기본 개념을 간략하게 설명합니다. Apache Beam SDK를 사용하여 파이프라인을 빌드하는 방법의 기본 개념에 대한 자세한 내용은 Apache Beam 웹사이트의 Apache Beam 프로그래밍 가이드를 참조하세요.

기본 개념

파이프라인
파이프라인은 입력 데이터 읽기, 데이터 변환, 출력 데이터 쓰기와 관련된 일련의 계산 전체를 캡슐화합니다. 입력 소스와 출력 싱크는 동일한 유형이거나 서로 다른 유형일 수 있으며 데이터를 한 형식에서 다른 형식으로 변환할 수 있습니다. Apache Beam 프로그램은 Pipeline 객체를 생성한 후 이 객체를 파이프라인의 데이터세트를 만드는 기초로 사용하는 것부터 시작합니다. 각 파이프라인은 반복 가능한 단일 작업을 나타냅니다.
PCollection
PCollection은 파이프라인의 데이터 역할을 하는 잠재적으로 분산된 다중 요소 데이터세트를 나타냅니다. Apache Beam은 PCollection 객체를 파이프라인의 각 단계에서 입력 및 출력으로 사용합니다. PCollection은 지속적으로 업데이트되는 데이터 소스로부터 온 고정된 크기의 데이터세트 또는 제한되지 않은 데이터세트를 보관할 수 있습니다.
변환
변환은 데이터를 변환하는 처리 작업을 나타냅니다. 변환은 PCollection 한 개 이상을 입력으로 사용하고, 컬렉션의 각 요소에 지정된 작업을 수행하고, PCollection 한 개 이상을 출력으로 생성합니다. 변환은 데이터에서 수학적 계산 수행, 데이터를 한 형식에서 다른 형식으로 변환, 데이터 그룹화, 데이터 읽기 및 쓰기, 원하는 요소만 출력하도록 데이터 필터링, 데이터 요소를 단일 값으로 결합 등을 포함한 거의 모든 종류의 처리 작업을 수행할 수 있습니다.
ParDo
ParDo는 Apache Beam SDK의 핵심 동시 처리 작업으로, 입력 PCollection의 각 요소에 사용자 지정 함수를 호출합니다. ParDo는 출력 PCollection에서 출력 요소를 0개 이상 수집합니다. ParDo 변환에서는 요소를 독립적으로 동시에 처리할 수 있습니다.
파이프라인 I/O
Apache Beam I/O 커넥터를 사용하면 파이프라인에서 데이터를 읽고 파이프라인의 출력 데이터를 쓸 수 있습니다. I/O 커넥터는 소스와 싱크로 구성됩니다. 모든 Apache Beam 소스 및 싱크는 다양한 데이터 저장 형식의 데이터로 파이프라인을 작동시키는 변환입니다. 커스텀 I/O 커넥터를 작성할 수도 있습니다.
집계
집계는 여러 입력 요소에서 일부 값을 계산하는 프로세스입니다. Apache Beam 집계의 기본 계산 패턴은 모든 요소를 공통 키와 기간으로 그룹화하는 것입니다. 그런 다음 연결 및 교환 작업을 통해 각 요소 그룹이 결합됩니다.
맞춤 설정된 함수(UDF)
Apache Beam 내 일부 작업에서는 맞춤 설정된 코드를 실행하여 변환을 구성할 수 있습니다. ParDo의 경우 맞춤 설정된 코드는 각 요소에 적용할 작업을 지정하고, Combine의 경우에는 값 조합 방법을 지정합니다. 파이프라인에 실행기 언어와 다른 언어로 작성된 UDF가 있을 수 있습니다. 또한 여러 가지 언어로 작성된 UDF도 있을 수 있습니다.
실행기
실행기는 파이프라인을 수락하고 실행하는 소프트웨어입니다. 대부분의 실행기는 빅데이터 처리 시스템을 대규모로 동시 처리하는 번역기 또는 어댑터입니다. 다른 실행기에는 로컬 테스트 및 디버깅용 실행기가 있습니다.

고급 개념

이벤트 시간
데이터 이벤트가 발생한 시간으로, 데이터 요소 자체의 타임스탬프로 결정됩니다. 이는 파이프라인의 임의 단계에서 실제 데이터 요소가 처리되는 시간과 다릅니다.
기간 설정
기간 설정에서는 개별 요소의 타임스탬프에 따라 컬렉션을 유한 컬렉션의 기간으로 나눠 제한되지 않은 컬렉션에서 그룹화 작업을 수행할 수 있습니다. 윈도우 함수는 요소를 최초 기간에 할당하는 방법과 그룹화된 요소의 기간을 병합하는 방법을 실행기에 알려줍니다. Apache Beam에서는 여러 종류의 기간을 정의하거나 사전 정의된 윈도우 함수를 사용할 수 있습니다.
워터마크
Apache Beam은 특정 기간의 모든 데이터가 파이프라인에 도착했다고 예측할 수 있는 시점에 대한 시스템 표기법인 워터마크를 추적합니다. 데이터가 시간 순서대로 또는 예측 가능한 간격으로 파이프라인에 도착하지 않을 수도 있으므로 Apache Beam은 워터마크를 추적합니다. 또한 데이터 이벤트가 생성된 순서와 동일한 순서로 파이프라인에 나타나지 않을 수도 있습니다.
트리거
트리거는 데이터가 도착할 때 집계된 결과를 내보낼 시점을 결정합니다. 제한된 데이터의 경우 모든 입력이 처리된 후에 결과가 내보내기됩니다. 제한되지 않은 데이터의 경우 시스템이 해당 기간의 모든 입력 데이터가 처리되었다고 판단했음을 나타내는 워터마크의 기간 끝 통과 시점에 결과가 내보내기됩니다. Apache Beam에서는 사전 정의된 몇 가지 트리거가 제공되며, 개발자는 이러한 트리거를 결합할 수 있습니다.

다음 단계

자세한 설명은 Apache Beam 웹사이트의 Apache Beam 프로그래밍 가이드를 참조하세요.

Apache Beam™은 미국 및/또는 다른 국가에서 사용되는 Apache Software Foundation 또는 해당 계열사의 상표입니다.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.