티스토리 뷰

Google BigQuery

국내에는 GCP( Google Cloud Platform )와 관련된 책이 워낙 귀하다 보니 이번에 한빛미디어에서 발간된 "이야기로 배우는 구글 빅쿼리"는 반가울 수밖에 없다. 게다가 빅쿼리에 포커싱 된 책이라니! 빅쿼리는 위키백과에 아래와 같이 정의되어 있다.

빅쿼리는 페타바이트급 이상의 데이터에 대해 스케일링 분석을 가능케 하는 완전 관리형 서버리스 컴퓨팅 데이터 웨어하우스이다. 빅쿼리는 2010년 5월 발표되었으며 2011년 11월 일반에 공개되었다

 

데이터 다루는 일을 업으로 하는 사람이 아니라면 어쩌면 생소할 수 있는 기술이지만 BigQuery는 빅데이터 플랫폼으로 AWS의 Redshift와 함께 양대산맥을 이루고 있다. 더욱이 Google Cloud 하면 빅쿼리가 연상될 정도의 GCP의 대표적인 서비스이고, 일각에서는 Redshift를 이미 압도하고 있다는 평이 내려진다. 자, 그럼 이 책을 읽기 위해 어떤 배경지식이 필요할까? 

  • GCP, 빅쿼리는 잘 모르지만 AWS의 Redshift가 무엇인지 대충의 개념을 알고 있다
  • Apache Airflow, Beam 이 뭔지 아주 대충이라도 알고 있다
  • 파이썬 문법을 해석하는데 어려움이 없다

 위에 두 가지는 대충이라고 적었지만 파이썬 문법은 이것들보다 조금 더 중요하다. 모든 예제가 파이썬으로 이루어졌기 때문인데... 개념만 익힐 목적이라면 훌훌 넘겨버려도 상관은 없다. 하지만 책은 빅쿼리 뿐만 아니라 데이터 웨어하우스를 구축하는 그 주변의 기술인 Airflow까지 설명하고 있는데 DAG( Directed Acyclic Graph )을 기술할 때 파이썬을 사용하고 있기 때문에 언어를 잘 알고 있다면 Airflow를 이해하는데 더 큰 도움이 될 것이다. ( 사실 배경지식이 없으면 어떠한가. 조금은 더 고될 뿐, 배움에서 즐거움을 찾고 재밌게 읽으면 된다 )

책은 독특하게 구성되어 있다. 신입사원이 선배에게 GCP의 여러 서비스를 배워가며 데이터 웨어하우스를 구축하는 컨셉으로 구성되어 있다. 웨어하우스 구축 미션을 단계적으로 수행하는 과정을 서술하고 있다고 보면 된다. 여기서 함께 공부하는 느낌을 받을 수 있다 (웃음)

신입사원의 마음으로 돌아가서 책을 읽어보자

 

앞서 이야기한 것처럼 책은 단순히 빅쿼리만 다루는 책은 아니다. 데이터 웨어하우스라는 거대한 시스템을 구축하기 위한 여정이 기록되어 있는데 BigQuery에 데이터를 로딩하는 방법부터 시작된다. 그리고 본격적으로 빅쿼리의 기본 구조와 특징을 알아보게 되는데 여기서는 Dremel 쿼리 엔진이라고 불리는 아키텍처와 열 지향 스토리지에 대해서 배우게 된다. 열 지향 스토리지 이야기가 나오면 AWS Redshift가 왜 비교되었는지 이제 이해가 될 것이다. 빅쿼리는 Dremel 쿼리 엔진과 더불어서 Colossus File System에 의해 대규모 분산 처리로 쿼리를 실행한다. 용어들이 좀 어려울 수 있는데 Dremel 쿼리 엔진은 스캔 고속화를 목적으로 개발됐고 1 테라바이트 이상의 테이블을 1초 이내로 스캔하는 것을 목표로 한다. 벅차오르지 않나? 빅쿼리를 통해 구글의 강력한 인프라를 마음껏 활용해보자!

빅쿼리 아키텍처에 대한 설명 이후에는 사용되는 자료형과 파티션, 클러스터까지 다룬다. 그리고 클라우드의 fully-managed 서비스를 사용하는 사용자의 가장 큰 걱정거리인 비용과 제약 사항에 대해서도 다루기 때문에 조금은 더 안심하고 쿼리를 날릴 수 있는 지식을 쌓게 된다. 빅쿼리의 경우 탐색한 데이터의 용량에 따라 비용이 청구되기 때문에 자칫 쿼리 한번 잘못 날리면 눈 깜짝할 사이에 페타바이트를 스캔하고 비용이 청구되지 않겠는가. 성능이 너무 좋아도 초보 사용자에게는 문제다(웃음). 하지만 비용 제한과 쿼리 제약을 걸어놓는다면 이런 문제들을 어느 정도 해소할 수 있게 된다.

빅쿼리 튜닝과 보안, 사용자 권한인 IAM까지 다루고 나면 본격적으로 데이터 웨어하우스 구축에 나선다. 이 책에서는 ETL( Extract, Load, Transform )이 아닌 ELT로 아키텍처를 구성하는데, 차이라면 1차 가공을 할 때 사용하는 데이터가 어디 있는지 보면된다. 통상 ETL의 경우 GCS에 있는 데이터를 Dataflow( GCP의 fully-managed Apache Beam )를 이용해서 변환해서 빅쿼리에 로드하는 반면, ELT는 GCS의 데이터를 가공하지 않고 빅쿼리로 로드한다. 이후 SQL을 통해 변환작업을 수행하게 된다. 어떤 아키텍처를 구성할지는 크게 중요하지 않다. 아무튼, GCS에 있는 데이터를 자동으로 빅쿼리에 로드하기 위해 GCP의 Composer( fully-managed Apache Airflow )가 사용된다. Apache Airflow의 구조부터 Composer 아키텍처, 예제까지, 책 지면의 상당한 부분을 할애하고 있는데 그만큼 데이터 수집은 데이터 웨어하우스 구축의 핵심으로 볼 수 있다. 

이 책 한권으로 데이터의 고수가 될 수는 없다. 하지만 columnar database의 아키텍처에 대해 고민해볼 수 있는 지식을 쌓고, 데이터 웨어하우스 구축을 위해 어떤 기술이 필요한지, 또한 퍼블릭 클라우드 시장에서 빠른 성장을 하고 있는 GCP의 여러 서비스를 맛볼 수 있다는 점에서 데이터를 다루는(다루게 될) 분들께 이 책의 일독을 권한다. 

 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


댓글
댓글쓰기 폼