2014년 10월 13일 월요일

MapReduce를 대체할 구글의 새로운 빅데이터 분석서비스 - Google Cloud Dataflow

이번 포스팅에서는 발표된지 시간이 조금 지나긴 했지만 국내에는 아직 제대로 소개가 안된 Google Cloud Dataflow(이하 GCD)에 대해서 살펴보는 시간을 가져보고자 한다. GCD는 지난 6월 25일 열렸던 연례 개발자회의 'Google I/O 2014'에서 처음 공개가 된 구글의 새로운 빅데이터 분석서비스이다.

GCD는 이름에서 알 수 있듯이 구글의 클라우드 플래폼과 연동되어 사용 가능한 빅데이터 분석 서비스로,  "배치 모드"와 "스트리밍 모드"의 두가지 형태로 대량의 데이터를 처리 할 수 있다. GCP는 MapReduce의 후계로서 구글이 자사 서비스를 위해 독자적으로 개발한 병렬 처리용 잡바 프레임워크인 FlumeJava와 고속 데이터 프로세싱 어플리케이션 구축용 프레임워크인 MillWheel을 기반으로 개발되었다.

이제 GCD가 어떠한 것인지 구체적으로 살펴보자.
이하 사진들은 모두 Youtube에 공개된 키노트 세션 동영상에서 발췌하였다.

GCD의 기본적인 컨셉은 빅데이터를 다루는데 있어서 최적화, 배포, 스케줄링, 모니터링과 같은 주변 기능들을 모두 GCD가 담당해 주어 사용자는 빅데이터 분석 어플리케이션에 집중 할 수 있게 한다는 것 이다.

데이터 추출을 위한 코드의 예제. 트위터에서 실시간으로 발생하는 데이터를 파이프라인으로 연결하고 있는데, 현 시점에서 공개된 샘플은 자바 뿐이다.

읽어들인 원시데이터를 변환하는 코드.

파이프라인을 사용하여 JSON형식의 데이터 스트림을 생성하여 일괄 처리할 데이터를 축척한 후에 다양한 형식으로 변환하고 있다. 

GCD는 처리 과정에 대한 실시간 모니터링 툴을 제공하고 있다.

GCD는 웹 콘솔로 클라우드 플랫폼 위에서 동작하는 자바 코드를 디버깅 할 수 있는 툴을 제공하고 있다. 이 툴은 프로덕션 환경에 영향을 주지 않으면서도 디버깅이 가능하다.
  GCD는 현재 상용서비스중인 BigQuery가 적은 학습비용에도 막강한 성능을 제공하는 빅데이터 분석 프로토 타이핑에 특화되어 있다고 한다면, 이에 비해 보다 다양하고 강력한 프로덕션 환경을 제공해 줄 것으로 기대된다.