이야기박스

Pipeline SDK (Apache Beam & Cloud Dataflow) 본문

Computer & Data/Big Data

Pipeline SDK (Apache Beam & Cloud Dataflow)

박스님 2018. 10. 10. 17:01
반응형

Pipeline이란?

한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 말합니다. (wiki)

Google Cloud Dataflow == Apache Beam Pipeline 

은 서로 동일한 솔루션이라고 하네요.


Cloud Dataflow란?


스트리밍 및 배치 처리를 지원하는 오토 스케일링 데이터 파이프라인입니다.

장점

- 데이터 변경을 각각의 파이프로 구성 가능

- auto scailing 지원

- 서버리스 서비스

- 기타 gcp 서비스들과 손쉬운 연동

지원 언어 

- Java SDK

- Python SDK

- Go SDK

기본 파이프라인

기본적으로 선형 작업이 이루어지지만, 여러 입력 소스, 여러 출력 소스를 통하여 방향성 비순환 그래프를 이룰 수도 있습니다.

- Pipeline I/O : 데이터 input / output 동작

- Transform : 데이터 변환, 가공 --> PCollection 저장

- PCollection : 처리된 데이터 저장을 위한 데이터 타입

* 주의할 점

변환된 PCollection을 그대로 넘기려고 하면, 에러가 발생합니다. 

왜냐하면, PCollection은 immutable 하기 때문에, 새로 저장을 해주어야 합니다.

다양한 파이프라인 형태

PCollection의 분기

보통 두개의 경우가 있습니다. 각각 다른 Transform을 통하여 분기하는 경우와 PCollection 레벨에서 분기하는 경우입니다.

1. 서로 다른 두개의 변환을 통하여 각각의 PCollection으로 분기하는 경우

2. 단일 변환 출력을 여러 PCollection으로 출력하는 것


PCollection 병합

PCollection의 병합은 Flatten 작업과 Join 작업을 통해 진행할 수 있습니다.


1. Flatten - Dataflow SDK에서 Flatten 변환을 사용합니다. 같은 유형의 PCollection을 대상으로 할 때 효과적입니다.

2. Join - Dataflow SDK에서 CoGroupByKey 변환을 사용합니다. 키/값을 통한 관계형 조인을 수행합니다.

다중 입력

한 개 이상의 소스로부터 입력을 받을 수 있습니다.

여러 소스에서 입력을 받은 후, PCollection 병합을 통하여 새로운 PCollection을 생성합니다.

 참조

jungwoon blog - Google Cloud Platform의 DataFlow (Java) 살펴보기

구글 공식 문서 - 파이프라인 설계

반응형

'Computer & Data > Big Data' 카테고리의 다른 글

[MariaDB] errno: 150 "Foreign key constraint is incorrectly formed"  (1) 2018.12.11
What is ORC File Format?  (0) 2018.12.05
Nomalization (정규화)  (0) 2018.10.25
LMAX Architecture - Disruptor  (2) 2018.10.10
Protocol Buffers  (1) 2018.07.06