본문 바로가기
+ 펴낸 책

구글 빅쿼리 완벽 가이드

by 책만 2020. 11. 18.

구글 빅쿼리 완벽 가이드

빅데이터, AI, 머신러닝 엔지니어를 위한 대용량 데이터 분석 도구

 

발리아파 락쉬마난, 조던 티가니 지음 | 변성윤, 장현희 옮김 | 616쪽 | 35,000원

2020년 11월 26일 출간 | 185*240*30 | ISBN 9791189909239

원서: Google BigQuery: The Definitive Guide: Data Warehousing, Analytics, and Machine Learning at Scale

 

판매처 [교보문고] [YES24] [알라딘] [인터파크]  + 전국 교보문고 매장

전자책   판매처 |  [리디북스] [교보문고] [YES24] [알라딘] | ISBN 9791189909260 | PDF 포맷 | 

(※ 2022년 6월 15일 기준 전자책은 최신 수정사항이 반영된 버전 2.0으로 업데이트됐습니다.)

 

★ 2021년 세종도서 학술부문 우수도서 선정!

 

★ 정오표: https://www.onlybook.co.kr/entry/bigquery-errata 

★ 예제 코드 다운로드: https://github.com/onlybooks/bigquery

 

빅데이터, 데이터 엔지니어링, 머신러닝을 위한 대용량 데이터 분석과 처리의 모든 것!

협업과 신속함을 갖춘 작업 공간을 구축하는 동시에 페타바이트 규모의 데이터셋을 처리해보자. 이 책은 기업 전체에서 추출한 데이터를 통합하고 대화형 데이터 분석과 대규모 데이터셋 기반의 머신러닝을 가능케 하는 쿼리 엔진을 제공하는 구글 빅쿼리에 대한 완벽 가이드다. 기업은 빅쿼리를 사용해 하나의 편리한 프레임워크로 데이터를 효율적으로 저장, 쿼리, 수집, 학습할 수 있다. 

 

이 책의 저자 발리아파 락쉬마난과 조던 티가니는 공개 클라우드 상에서 자동으로 확장되는 서버리스 아키텍처에 기반한 최신 데이터 웨어하우징을 위한 모범 사례를 제시하고 있다. 이제 막 빅쿼리를 시작하면서 전반적인 기능을 훑어보고자 하는 독자는 물론 빅쿼리를 이용해 특정 업무를 해결하고자 하는 독자에게도 완벽한 가이드가 되어 줄 것이다.


구글 빅쿼리 전문가들이 입모아 추천한 책!

구글 빅쿼리는 10억 명이 넘는 사용자를 보유한 구글 제품에서 수집되는 수천억 개의 유저 행동을 빠르게 처리하고 분석하기 위한 내부 활용을 목적으로 개발된 제품이었습니다. 이후 빅데이터 시대가 도래하고 그 빅데이터에 구글의 훌륭한 기술력이 더해져, 현존하는 가장 크고 강력하며 빠른 서버리스 빅데이터 플랫폼으로 발전했습니다. 이 책은 이러한 빅쿼리를 쉽게 잘 사용할 수 있도록 빅쿼리 공용 데이터셋과 구글 클라우드의 여러 솔루션을 함께 실습하며 배울 수 있는 내용이 가득 담겨 있습니다. 또한 빅쿼리에 익숙한 분이라면 이 책의 중후반부터 심도있게 다뤄지는 고급 과정을 통해 빅데이터 플랫폼의 정수를 깊게 느껴볼 수 있습니다. 제가 빅쿼리를 공부하며 오랜 기간 정독했던 원서였는데, 많은 개발자가 쉽게 읽고 이해할 수 있는 번역서가 출간되어 매우 기쁩니다. 이 책은 빅쿼리를 다루는 분이라면 마치 바이블 서적처럼 회사 책상에 한 권씩 구비해야 하는 책입니다. 만약 빅쿼리를 사용하지 않는다 하더라도 쿼리 엔진의 구조, 컬럼형 스토리지, 쿼리 최적화 방법, 머신러닝 등 빅데이터 플랫폼 아키텍처와 그 정수를 공부하는 데 큰 도움이 되는 책이므로 꼭 일독하시길 권합니다.
백정상 / 구글 파트너 디벨로퍼 애드버킷
『Google BigQuery: The Definitive Guide』 한국어판이 나오게 되어 기쁘고, 바쁜 중에도 번역을 완료해내신 성윤 님께 감사하고 축하드린다. 빅쿼리는 데이터 처리 용량이나 성능 면에서 획기적일 뿐만 아니라, 누구나 쉽게 데이터로부터 인사이트를 뽑을 수 있게 했다는 데에도 큰 의의가 있다. 이 책은, 여기에 더하여 빅쿼리 도입 효과를 극대화할 수 있는 여러 기법과 예제들을 소개하고 왜 그렇게 되는지를 설명한다. ICT 종사자라면, 특히나 데이터를 다루는 일을 하고 계신다면 꼭 읽어보시기를 추천드린다.
황장군 / 데이터 엔지니어

2년 전, 쏘카의 데이터 인프라를 처음부터 다시 만들면서 빅쿼리를 회사 전체의 메인 데이터 웨어하우스 및 분석 도구로 사용하기 시작했다. 지금은 200명 가까운 빅쿼리 사용자가 직접 쿼리를 하고 있는데, 이는 회사 전체의 절반이 넘는 인원이다. 회고해보자면 빅쿼리는 극단적으로 시간과 비용을 아껴주면서도 생산성을 극대화해주었기에, 우리가 수행한 여러 가지 시도 중 가장 잘한 결정 중 하나라고 생각한다. 
빅쿼리는 역사가 깊은 제품임에도 적극적으로 기능이 변화하고 있어 당시의 빅쿼리 관련 서적은 아쉬움이 많았다. 『구글 빅쿼리 완벽 가이드』는 제목 그대로 빅쿼리를 잘 사용하는 법을 완벽하게 가이드하고 있어 데이터 분석을 새롭게 시작하거나 이미 활용하고 있는 독자 모두에게 큰 도움이 될 것이라 생각한다. 정확한 번역을 위해 고생해주신 역자분들께 감사의 인사를 전하고 싶다.

김상우 / 쏘카 데이터그룹장, 쏘카/타다 데이터 오퍼레이션 총괄

마이리얼트립이 ‘데이터가 흐르는 조직’이 되는 데 가장 큰 도움을 준 것은 클라우드 분석 환경, 그중에서도 구글 빅쿼리(Google BigQuery)다. 빅쿼리를 이용하면 적은 비용과 리소스로 데이터 분석 인프라를 굉장히 효율적으로 구축할 수 있다. 빅쿼리 기반의 분석 환경을 통해 데이터 분석가뿐 아니라 회사의 모든 구성원들이 쉽게 데이터에 접근할 수 있게 되었고, 이는 데이터 기반으로 일하는 문화를 만드는 데 큰 도움이 되었다.이 책은 기본적인 SQL 언어의 문법부터 빅쿼리를 활용한 데이터 파이프라인 설계와 머신러닝 활용에 이르기까지, 빅쿼리를 통해 할 수 있는 데이터 활용에 대한 주제들을 굉장히 폭넓게 다룬다. 클라우드 데이터베이스를 활용해서 효율적인 분석 환경을 구축하고 싶은 데이터 엔지니어와 분석가들에게 큰 도움이 될 것이라고 생각한다.
양승화 / 마이리얼트립(MyRealTrip) 그로스실 실장

데이터 드리븐(data-driven) 문화를 위해서는 구성원 누구나 부담없이 데이터를 조회할 수 있는 환경이 필요하고, 이를 위한 데이터 웨어하우스를 구성해야하는 문제를 만나게 됩니다. 빅쿼리는 이러한 문제를 해결해주는 강력한 솔루션이고, 『구글 빅쿼리 완벽 가이드』는 완벽 가이드라는 제목 그대로 빅쿼리와 관련된 모든 내용을 일목요연하게 담아낸 책입니다. 빅쿼리가 왜 강력한지부터 시작해, 기본적인 SQL 문법부터 배열 / 구조체 / 윈도우 함수 등 빅쿼리 표준 SQL의 고급 문법, 빅쿼리 내부 아키텍처, 쿼리 퍼포먼스 최적화, 원하는 데이터를 빅쿼리에 로딩시키는 다양한 패턴들 소개와 더불어 스크립팅, BI 엔진, 빅쿼리 머신러닝 같은 최신 주제들까지, 빅쿼리 사용자에게 필요한 모든 내용을 충실히 담아냈습니다. 데이터플로우, 컴포저 같은 구글 클라우드의 다른 서비스들과 연계하여 통합된 데이터 시스템을 구성하는 패턴들에 대해서도 잘 설명되어 있어 이를 고민하는 엔지니어들에게도 훌륭한 길잡이가 되어줄 것입니다.
이창현 / 매스프레소(Mathpresso) 데이터 팀 리드
분산 파일 시스템의 기틀을 마련했지만 플랫폼 주도권 경쟁에서 오픈소스에 밀리고 말았던 구글은, 절치부심 하던 차 클라우드 시대를 맞이하여 주도권을 잡기 위한 기술력을 다시 한번 뽐내고 있다. 빅쿼리는 그런 구글의 기술력이 집약된 결정체로, 마치 마법과 같은 놀라운 성능을 보여주는 제품이다. 이 책은 구글에서 디렉터로 재직 중인 저자가 직접 집필하여 정확한 내용과 함께 풍부한 예제, 빅쿼리의 내부 구조를 상세히 소개한다. 빅쿼리의 마법이 궁금했던 이들에게 마법이 아닌 기술임을 알려주는 것은 물론, 빅쿼리를 잘 이해하고 있는 역자진의 자연스러운 번역과 함께 독자를 빅쿼리의 마법으로 이끌어줄 것이다. 마법에 빠져들고 싶은 모든 이에게 추천한다.
박상길 / 현대자동차 AIRS 책임연구원, 『파이썬 알고리즘 인터뷰』 저자

빅데이터 시대라는 말은 이제 이전 시대의 용어처럼 느껴짐에도 불구하고 데이터를 제대로 활용하는 회사는 드뭅니다. 데이터를 잘 사용해서 제품에 적용한다는 말이 언뜻 쉬워 보여도 데이터를 잘 쌓고 정제해서 분석하고 응용하는 과정은 어렵습니다. 특히 무엇보다도, 실제로 제품을 개발하는 개발 부서에서 직접 데이터를 쉽게 볼 수 있는 것이 중요합니다. 데이터 전문 인력이 아니더라도 제품을 개발하면서 적재적소에 데이터를 잘 활용하는 것은 매우 중요합니다.
빅쿼리는 개발자가 아니더라도 콘솔에서 쉽게 데이터를 조회하고 분석하고 더 나아가 대시보드까지 만들 수 있도록 환경을 만들어줍니다. 빅쿼리를 통해 대량의 데이터를 조회하는데 속도가 워낙 빨라서 데이터 분석 과정의 속도의 혁신이 생기고 있습니다. 이 책에서는 빅쿼리가 어떤 점에서 훌륭하고 어떻게 구성되어 있는지부터 시작해서 SQL까지도 친절하게 설명해줍니다. 데이터를 잘 활용하기 위해 빅쿼리를 고민하는 곳이라면 이 책은 정말 많은 도움이 될 것이라고 생각합니다.
이웅원 / 당근마켓 데이터 사이언티스트

이 책은 엔터프라이즈 데이터 웨어하우스를 기존 기술 스택에서 구글 클라우드로 이전하려는 빠르게 성장하는 기업들에게 꼭 필요한 책이다. 이 책의 저자 락과 조던은 비즈니스 분석에 엔터프라이즈 데이터 웨어하우스로 사용할 수 있고, SQL을 사용해 실시간 데이터 스트림을 쿼리할 수 있는 빅쿼리의 포괄적인 내용을 설명한다. 관리형 하둡 및 스파크 클러스터에서 빅쿼리에 액세스하며, 머신러닝을 사용해 카테고리를 자동으로 분류하고 당신의 데이터를 예측한다. 이 책의 저자인 락과 조던은 빅쿼리를 포괄적으로 다루므로, 빅쿼리의 다양한 활용을 배울 수 있다. 비즈니스 분석을 위한 기업용 데이터 웨어하우스로 활용할 수 있을 뿐만 아니라, SQL을 이용한 실시간 데이터 스트림 조회, 관리형 하둡과 스파크 클러스터에서 빅쿼리로의 접근, 머신러닝을 이용한 데이터의 자동 분류 및 예측에도 빅쿼리를 활용할 수 있다.
토마스 쿠리안(Thomas Kurian) / 구글 클라우드(Google Cloud)의 CEO
이따금씩 세상의 모든 것을 변화시키는 소프트웨어나 서비스가 나오기도 한다. 빅쿼리는 기업이 데이터에 대해 생각할 수 있는 모든 방법을 변화시켰다. 애초부터 세계에서 가장 거대한 데이터셋을 처리하기 위해 설계된 빅쿼리는 데이터 분석과 학습을 위한 최고의 플랫폼 중 하나로 자리잡았다. 2016년 6월에 발표된 ‘표준 SQL’은 지금까지 설계한 SQL 중 가장 깔끔하고 완전하며 강력한 구현 중 하나다. 빅쿼리의 강력한 기능의 몇 가지 예를 들자면, 중첩된 데이터, 자바스크립트와 SQL의 사용자 정의 함수, 지리 공간 데이터, 머신러닝과의 통합, URL을 통한 데이터 공유 등이 있다. 빅쿼리를 배우려 한다면, 이 세상에서 빅쿼리를 가장 잘 아는 2명인 조던과 락이 쓴 이 책말고 다른 선택지는 없을 것이다.
로이드 탭(Lloyd Tabb) / 루커(Looker)의 공동 창업자이자 CTO
7년 넘게 빅쿼리를 사용해왔음에도 빅쿼리에 대해 내가 미처 몰랐던 내용을 이 책에서 알려준다는 사실에 정말 기뻤다! 이 책은 모범 사례와 기법에 대한 귀중한 통찰력을 제공하며, 여러 가지 개념을 이해하기 쉽게 설명한다. 실용적인 방식으로 내용을 따라갈 수 있도록 훌륭하게 구성된 코드 예제는 책에 재미와 흥미를 배가시켜준다. 빅쿼리 사용자들에게 믿을 만한 참고서가 될 것임에 분명하다.
그레이엄 폴리(Graham Polley) / 서비안(Servian)의 경영 컨설턴트
빅쿼리는 많은 데이터를 매우 빠르고 저렴한 비용으로 처리할 수 있다. 빅쿼리 플랫폼은 모든 데이터를 한곳에 저장해 더 빠른 통찰력을 얻을 수 있도록 도와준다. 이 책은 빅쿼리의 핵심 부분에 대해 자세히 설명한다. 이 책에서 두 명의 저명하며 전설적인 구글러인 라크 락쉬마난과 조던 티가니와 함께 여러분은 빅쿼리의 본질은 물론, 머신러닝 같은 고급 주제에 대해 배울 수 있다. 나는 빅쿼리의 광팬이다. 빅쿼리를 직접 사용해 본 내 경험에 비춰보건대, 빅쿼리는 여러분의 빅데이터 삶을 훨씬 수월하게 만들어줄 것이라 단언한다. 내가 감탄하며 읽은 이 책을 통해 이제 여러분의 빅쿼리 여행이 시작된다! 가봅시다!
미하일 베를리언(Mikhail Berlyant) / 바이언트(Viant Inc)의 SVP 테크놀러지

이 책의 내용

기업은 점점 데이터 기반으로 움직이고, 회사의 모든 데이터를 통합한 중앙 저장소인 데이터 웨어하우스가 데이터 전략의 핵심으로 떠오른다. 전통적으로 데이터 웨어하우스는 데이터 분석가가 분석 보고서를 작성할 때 사용했다. 그러나 이제는 실시간 대시보드를 생성하거나 애드혹 쿼리를 작성할 때, 그리고 예측 분석을 통해 의사결정 지침을 제공할 때 많이 사용하고 있다. 오늘날 많은 조직이 구글 빅쿼리 같은 클라우드 기반 데이터 웨어하우스로 이전하는 주된 이유는 고급 분석에 대한 비즈니스 요구와 더불어 비용 관리, 민첩성, 자체 서비스의 데이터 접근 등 때문이다.

이 책에서는 서버리스(serverless)이자 확장성이 뛰어난 저비용 엔터프라이즈 데이터 웨어하우스인 구글 클라우드의 빅쿼리에 대해 자세히 다룬다. 인프라스트럭처를 관리할 필요가 없으므로, 기업은 익숙한 SQL을 사용해 의미있는 통찰력을 찾는 데이터 분석에 집중할 수 있다.

우리가 빅쿼리를 통해 이루고자 했던 목적은 최첨단 기능을 제공하고 클라우드 환경에서 사용할 수 있는 우수한 기술을 십분 활용하며 오늘날에도 믿고 활용할 수 있는 검증된 데이터 기술을 지원하는 데이터 플랫폼의 구축이다. 예컨대 첨단 기술의 측면에서, 구글 빅쿼리는 연산과 스토리지를 분리하는 서버리스 컴퓨팅 아키텍처다. 덕분에 아키텍처의 다양한 계층을 독립적으로 실행하고 확장할 수 있으며, 디자인과 배포 면에서 데이터 과학자에게 더욱 높은 유연성을 제공할 수 있다. 조금 독특하지만 빅쿼리는 머신러닝과 지리공간 분석도 네이티브로 지원한다. 또한 빅쿼리는 클라우드 펍/섭, 클라우드 데이터플로우, 클라우드 빅테이블, 클라우드 AI 플랫폼을 비롯한 다양한 서드파티 도구와 통합할 수 있다. 이를 바탕으로 광범위한 수준의 처리량과 응답 대기 요구사항을 충족하면서도 오래된 시스템과 현대적 시스템 모두와 상호운용이 가능하다. 검증된 데이터 기술 측면에서 빅쿼리는 많은 사용자가 요구해 온 애드혹 데이터 탐색의 핵심인 ANSI 표준 SQL, 컬럼 기반 최적화, 통합 쿼리 등을 지원한다.

이 책의 독자 대상 
대규모 데이터셋에서 인사이트를 도출하기 위해 빅쿼리를 사용하는 데이터 분석가, 데이터 엔지니어, 데이터 과학자를 위한 책이다. 

◆ 데이터 분석가
루커(Looker), 데이터 스튜디오(Data Studio), 태블로(Tableau) 같은 대시보드 도구나 SQL를 활용해 빅쿼리를 사용할 수 있다. 

◆ 데이터 엔지니어
아파치 스파크(Apache Spark)와 아파치 빔(Apache Beam) 등의 프레임워크를 이용해 파이썬이나 자바로 작성한 데이터 파이프라인을 빅쿼리와 통합할 수 있다.

◆ 데이터 과학자
데이터 과학자는 빅쿼리에서 머신러닝 모델을 구축하고 빅쿼리에 저장된 데이터를 기반으로 텐서플로(Tensorflow) 모델을 실행하며 주피터 노트북(Jupyter Notebook)으로 빅쿼리에서 대용량 분산 작업을 실행할 수 있다.
 

 

 

지은이 소개

발리아파 락쉬마난Valliappa (lak) Lakshmanan

구글 클라우드의 데이터 분석 및 AI 솔루션 부문의 글로벌 책임자다. 빅쿼리를 비롯한 구글 클라우드 데이터 분석 및 머신러닝 제품을 사용한 비즈니스 문제에 대한 소프트웨어 솔루션을 구축하는 팀을 이끌고 있다. 『구글 클라우드 플랫폼상의 데이터 과학』(에이콘출판, 2019)을 집필했다.

 

한국은 빅쿼리를 초창기부터 사용해 왔습니다. 2015년에는 한국의 레진 엔터테인먼트 소속 개발자가 빅쿼리 사용에 대한 세미나를 진행하기도 했죠(https://www.slideshare.net/modestjude/big-query-43974844). 클라우드 컴퓨팅이 점점 발전하면서 한국에서도 다양한 분야의 여러 기업이 데이터 웨어하우스, 데이터 분석, 머신러닝 등에 빅쿼리를 활용하는 사례가 늘고 있습니다. 하지만 한국 개발자 입장에서 빅쿼리를 시작하고 권장 사례를 찾아보기란 쉽지 않았습니다. 참고 문서의 내용과 이런저런 블로그 포스트를 찾아 조합해야 겨우 원하는 바를 찾을 수 있었을 겁니다. 그렇기에 『Google BigQuery: The Definitive Guide』의 한국어판 『구글 빅쿼리 완벽 가이드』 출간을 축하하지 않을 수가 없네요!

그동안 높은 수준의 도서를 출간해 온 책만 출판사에서 한국어판이 출간된다고 하니 정말 자랑스럽습니다. 번역 경험이 풍부한 장현희 님과 머신러닝 및 데이터 과학에 경험이 풍부한 변성윤 님이 만나 원서 내용에 충실하면서도 쉽게 읽히는 책으로 번역해냈다고 들었습니다. 저는 한국어를 모르지만 구글코리아의 믿을 만한 동료에게 물어보니 번역 품질은 걱정할 것 없다고 하더군요.

다른 클라우드 기술처럼 빅쿼리도 계속해서 빠르게 발전하고 있습니다. 작년에만 해도 스크립팅, 영구 사용자 정의 함수, 새로운 머신러닝 모델 등이 추가되었죠. 하지만 빅쿼리는 벌써 10여 년간 유지되어 온 제품이고 핵심 아키텍처도 매우 안정적이므로 이 책에서 제시하는 권장 사례는 여전히 유효합니다. 특히 이번 한국어판은 제가 2020년 6월에 마지막으로 업데이트한 원서의 내용도 담고 있다고 들었어요. 원서에 대한 내용은 깃허브 웹사이트(https://github.com/GoogleCloudPlatform/bigquery-oreilly-book)에 지속적으로 업데이트하겠습니다. 빅쿼리 사용자 커뮤니티에 합류하신 것을 환영합니다!

— 미국 워싱턴 주 벨뷰에서 / 발리아파 락쉬마난

 

조던 티가니Jordan Tigani

빅쿼리 제품 관리 디렉터다. 빅쿼리를 만든 엔지니어 중 한 명으로, 빅쿼리를 구글 클라우드에서 가장 성공적인 제품 중 하나로 성장시키는 데 일조했다. 빅쿼리에 관한 첫 책을 집필하고, 널리 강의해왔다. 마이크로소프트 리서치부터 시작해 머신러닝 스타트업에 이르기까지 20여 년간 소프트웨어 개발 경험을 쌓았다.

 

 

옮긴이 소개

변성윤

쏘카에서 머신러닝 엔지니어로 근무하고 있습니다. 데이터, 머신러닝, 머신러닝 엔지니어링, 데이터 엔지니어링, 구글 클라우드 플랫폼, MLOps 등에 관심이 있으며, 기술에 대해 이야기하는 것을 좋아합니다. 또한 기술을 이해하기 쉽게 전달하는 교육에도 관심이 많고, 알고 있는 지식을 쉽고 간결하게 전달하려고 노력하며, 주변 사람들을 성장시키고 동기부여하기 위해 애씁니다.‘어쩐지 오늘은’이란 개발 블로그(https://zzsza.github.io/)를 운영하고 있고, 데이터 사이언스를 공부하고 싶은 분들을 위해 ‘I-want-to-study-Data-Science’(https://github.com/Team-Neighborhood/I-want-to-study-Data-Science/wiki)라는 자료를 만들었습니다. 최근엔 커리어 관련 내용을 전달하는 ‘카일 스쿨’이란 유튜브(https://www.youtube.com/c/kyleschool)를 시작했습니다. 앞으로 더 많은 곳에서 찾아뵙겠습니다! 

데이터사이언스, AI 등 데이터와 관련된 산업은 빠르게 성장하고 있습니다. 특히 최근 몇 년간 머신러닝/딥러닝 분야는 상상을 초월하는 크나큰 발전이 있었습니다. 뿐만 아니라 데이터 처리 분야도 빠르게 발전하고 있습니다. 대표적으로 아파치 하둡, 아파치 스파크 등이 있고, 많은 양의 데이터를 빠르게 처리하는 방법에 대해 고민합니다. 이런 움직임 가운데에서 구글은 2011년에 드레멜(Dremel) 엔진을 사용한 빅쿼리(BigQuery)를 출시해 데이터 처리 분야의 혁신을 이루고 있습니다.

빅쿼리는 다양한 장점이 있습니다. 그중 대표적인 장점을 꼽자면 다음과 같습니다.
■ 인프라를 구글이 관리하기 때문에, 사용자 입장에서 인프라를 관리할 필요가 없습니다.
■ 내부적으로 분산 처리를 사용해 데이터를 빠르게 추출 및 가공할 수 있습니다.
■ 지리 데이터 분석을 위한 GIS 함수, 머신러닝을 위한 빅쿼리 ML 등을 사용할 수 있습니다.
■ 파이어베이스(Firebase)를 사용할 경우, 앱 로그 데이터를 쉽게 획득할 수 있습니다.

이 책 『구글 빅쿼리 완벽 가이드』는 구글 클라우드 플랫폼의 데이터 웨어하우스인 빅쿼리에 대한 모든 것을 담은 책입니다. 빅쿼리는 대용량 데이터를 빠르게 처리할 수 있도록 설계되었으며, SQL로 데이터를 추출할 수 있기 때문에 특정 프로그래밍 언어(예를 들어 스칼라, 파이썬 등)를 사용하는 아파치 스파크 등에 비해 배우기가 수월합니다. 또한 데이터 인프라를 별도로 관리할 필요가 없기 때문에, 사용자는 인프라 관리에 신경쓰지 않고 빅쿼리에서 데이터를 추출하는 업무에 집중할 수 있습니다. 이미 많은 데이터 처리 도구가 나와 있지만, 이와 같은 이유로 최근 들어 빅쿼리는 가장 큰 각광을 받고 있습니다.

오늘날에는 데이터 분석가가 아니어도 기획자, 마케터 등 다양한 직군에서 SQL을 공부합니다. SQL은 데이터를 추출하기 위해 사용하는 언어로, SQL에 익숙하면 회사에 저장되어 있는 데이터를 쉽고 빠르게 추출할 수 있습니다. 직군을 막론하고 커리어에서 SQL을 다룰 수 있으면 매우 큰 장점이 될 수 있으므로, 조금씩 꾸준히 공부하시면 좋을 것입니다. 저 또한 빅쿼리를 4년 넘게 사용하고 있습니다. 빅쿼리를 사용하는 지난 4년 여간 많은 분이 쉽게 빅쿼리를 사용할 수 있도록 여러 자료를 만들어왔습니다. 여러 자료를 만들던 중, 이 책의 원서인 『Google BigQuery: The Definitive Guide』를 처음 접했을 때의 기분을 잊을 수 없습니다. 이 책은 빅쿼리에 관련한 책 중 가장 자세한 내용을 담고 있으며, 데이터 분석가 또는 데이터 엔지니어 모두가 읽으면 좋은 내용이 설명되어 있습니다. 국내 독자 여러분을 위해, 원서에 좀 더 내용을 추가해서 다음과 같은 내용을 한국어판에서 더 보실 수 있습니다.

1. 한국어판 특별 부록책을 모두 번역하고 나니 실제로 파이프라인을 어떻게 만드는지에 대한 내용이 있으면 좋을 것 같아, 한국어판 특별 부록으로 ‘클라우드 컴포저와 빅쿼리를 사용한 ELT 파이프라인 만들기’라는 글을 기고했습니다. 이 부록에서는 아파치 에어플로우(Apache Airflow)의 매니지드 서비스인 클라우드 컴포저Cloud Composer 사용 방법을 안내하며 빅쿼리를 사용한 ELT 파이프라인을 만드는 내용을 배우실 수 있습니다.
2. 이 책의 소스 코드원서의 깃허브를 확인해본 결과, 각 장별로 모든 쿼리가 각기 하나의 파일에 저장되어 있었습니다. 이 부분은 책을 공부하시는 분들의 편의성을 낮출 수 있다고 생각해, 각 예제별로 모든 쿼리를 나눠 정리하고 저장했습니다. 한국어판에 담긴 예제별 소스코드는 책만 출판사의 깃허브(https://github.com/onlybooks/bigquery)에서 확인하고 내려받으실 수 있습니다. 혹시 책을 구입하고 학습하시는 중 이해가 잘 안 되는 내용이 있으시면 이 책의 공식 깃허브 이슈 트래커(https://github.com/onlybooks/bigquery/issues)에 바로 등록하시거나, 제 깃허브 계정(zzsza)을 태그하고 질문해주시면 최대한 빠르게 답변드리겠습니다.
 

장현희

캐나다 캘로나 소재 QHR Technologies에서 시니어 소프트웨어 엔지니어로 근무 중이다. 21년째 개발자로 활동하며 25권에 이르는 프로그래밍 전문서를 집필하고 번역해왔다. 한국 개발자 커뮤니티에 조금이나마 기여하기 위해 원서 내용에 충실하면서도 읽기 쉬운 번역서를 만들기 위해 노력하고 있다.

 

대표 번역서로 『클라우드 네이티브 자바』(책만, 2018)와 『엔터프라이즈 데이터 플랫폼 구축』(책만, 2020) 등이 있다.

구글 빅쿼리는 대용량 데이터의 저장 및 분석에 뛰어난 성능을 발휘하는 클라우드 기반 서비스입니다.
대용량 데이터나 빅데이터 같은 용어는 이미 오래전부터 우리 주변을 맴돌았지만 이를 제대로 저장하고 활용할 수 있는 인프라스트럭처나 애플리케이션을 구현하기란 쉽지 않은 일이었죠. 대용량 데이터를 자체적으로 처리하기 위해서는 많은 전문 지식과 비용 그리고 이를 제대로 구축할 수 있는 경험있는 개발자와 지탱할 수 있는 인프라스트럭처가 필요했지만 모든 기업이 이런 조건을 갖출 수는 없었기에 더욱 어려웠는지도 모릅니다.하지만 클라우드 기술과 서비스가 발전하면서 이제는 매우 저렴한 비용으로 기반 인프라스트럭처나 확장성, 성능에 대한 걱정 없이 누구나 쉽고 빠르게 사용할 수 있는 기술들이 등장하기 시작했고 구글 빅쿼리는 바로 이런 가치를 제공하는 서비스 중 하나입니다. 특히 기존의 ANSI SQL과 호환되는 쿼리 언어를 지원한다는 것도 큰 장점이라고 할 수 있습니다.

타 빅데이터 플랫폼 대비 구글 빅쿼리의 장점은 크게 2가지로 정리할 수 있습니다.
1. 쉬운 사용성아파치 스파크나 하둡 등 기존의 빅데이터 플랫폼과 달리 빅쿼리는 ANSI SQL과 호환되는 쿼리 언어를 지원하므로 대용량 데이터 처리를 아직 경험하지 못한 개발자라도 RDBMS 사용 경험이 있다면 금세 활용할 수 있을 정도로 쉽습니다. 물론 데이터가 분산되어 있다는 점과 이를 효율적으로 활용하기 위한 분산 쿼리를 작성하는 경험을 쌓아야 하지만 완전히 생소한 언어를 배우거나 로직을 구현해야 하는 것에 비하면 장족의 발전이 아닐 수 없습니다.

2. 클라우드 인프라스트럭처
여타의 클라우드 서비스가 그렇듯 빅쿼리도 클라우드 기반 서비스이므로 사용자가 직접 인프라스트럭처를 운영할 필요가 없습니다. 따라서 비싼 운영비에 대한 부담도 줄어들죠. 빅쿼리의 비용 정책은 상당히 효율적이어서 사용자가 빅쿼리의 특징을 충분히 이해하고 주의를 기울인다면 훨씬 저렴한 비용으로 훨씬 빠른 시간 내에 원하는 결과를 얻어낼 수 있습니다.

 

이 책은 이와 같은 빅쿼리의 탄생부터 아키텍처, 그리고 활용에 이르기까지 개발자가 필요한 지식을 재미있으면서도 실용적인 예제와 함께 설명하고 있습니다. 구글에서 클라우드 데이터 분석과 머신러닝 제품 개발에 오랜동안 빅쿼리를 활용해 온 저자진의 경험과 노하우는 이 책을 읽는 독자에게 큰 도움이 될 것입니다. 서비스에 새로운 기능이 빠르게 추가되는 클라우드 서비스를 다루는 책이다 보니, 이 책도 출간 후 7개월 만에 업데이트가 있었고, 다행히도 저자의 협조를 받아 해당 내용을 모두 반영해 출간할 수 있었습니다. 이 번역서는 최신 업데이트를 포함해 공역자이신 변성윤 님이 추가로 저술한 부록까지 포함하고 있으니 가장 최신 버전의 빅쿼리에 대해 즐겁게 학습하실 수 있으리라 믿습니다.

 

좋은 책과 더불어 한국어판 독자를 위해 특별히 서문까지 보내 준 저자 발리아파 락쉬마난과 조던 티가니에게 고마운 마음을 전합니다. 끝으로 어려운 시기에도 개인의 역량 강화와 대한민국 소프트웨어 산업의 발전을 위해 늘 노력하는 독자 여러분을 응원합니다. 고맙습니다.

차례 

[1장] 구글 빅쿼리
데이터 처리 아키텍처
__관계형 데이터베이스 관리 시스템
__맵리듀스 프레임워크
__빅쿼리: 서버리스, 분산 SQL 엔진
빅쿼리로 작업하기
__여러 데이터셋에서 통찰력 도출하기
__ETL, EL, ELT
__강력한 분석
__관리의 단순함
빅쿼리는 어떻게 만들어졌는가
빅쿼리는 어떻게 구현할 수 있었을까
__컴퓨팅 및 스토리지 분리
__스토리지 및 네트워킹 인프라
__관리형 저장소
__구글 클라우드 플랫폼과 통합
__보안 및 규정 준수
정리

[2장] 쿼리 필수 요소
간단한 쿼리
__SELECT로 행 검색하기
__AS로 컬럼 이름에 별칭 지정하기
__WHERE로 필터링하기
__SELECT *, EXCEPT, REPLACE
__WITH를 사용한 서브 쿼리
__ORDER BY로 정렬하기
집계
__GROUP BY로 집계하기
__COUNT로 레코드 수 세기
__HAVING으로 그룹화된 항목 필터링하기
__DISTINCT로 고윳값 찾기
배열과 구조체 기초
__ARRAY_AGG로 배열 만들기
__구조체의 배열
__튜플
__배열 활용하기
__배열 풀기
테이블 조인
__조인의 작동 원리
__이너 조인
__크로스 조인
__아우터 조인
저장 및 공유
__쿼리 기록 및 캐싱
__저장된 쿼리
__뷰와 공유 쿼리의 비교
정리

[3장] 데이터 타입, 함수, 연산자
숫자형과 함수
__수학 함수
__표준 규격 부동 소수점 분할
__SAFE 함수
__비교
__NUMERIC을 사용한 정밀 소수 계산
불(BOOL) 다루기
__논리 연산
__조건식
__COALESCE로 NULL 값을 깨끗하게 처리하기
__타입 변환과 타입 강제
__불리언 변환을 피하기 위해 COUNTIF 사용하기
문자열 함수
__국제화
__출력 및 파싱
__문자열 조작 함수
__변환 함수
__정규 표현식
__문자열 함수 정리
타임스탬프 다루기
__타임스탬프 값의 파싱과 형식화
__달력 정보 추출하기
__타임스탬프 연산하기
__Date, Time 그리고 DateTime
GIS 함수 사용하기
정리

[4장] 빅쿼리로 데이터 로드하기
가장 기본적인 방법
__로컬에서 데이터 로드하기
__스키마 지정하기
__새 테이블에 복사하기
__데이터 관리(DDL과 DML)
__데이터를 효율적으로 로드하기
통합 쿼리와 외부 데이터 원본
__통합 쿼리 사용하기
__통합 쿼리와 외부 데이터 원본의 사용 사례
__대화형 탐색과 구글 시트 데이터의 쿼리
__클라우드 빅테이블의 데이터에 대한 SQL 쿼리
전송과 내보내기
__데이터 전송 서비스
__스택드라이버 로그 내보내기
__클라우드 데이터플로우로 빅쿼리 데이터 읽고 쓰기
온프레미스 데이터의 이동
__데이터 마이그레이션 방법
정리

[5장] 빅쿼리를 활용한 개발
프로그래밍 방식을 활용한 개발
__REST API 활용하기
__구글 클라우드 클라이언트 라이브러리
데이터 과학 도구에서 빅쿼리 사용하기
__구글 클라우드 플랫폼의 노트북
__빅쿼리, 판다스, 그리고 주피터의 결합
__R에서 빅쿼리 다루기
__클라우드 데이터플로우
__JDBC/ODBC 드라이버
__빅쿼리 데이터를 G 스위트의 구글 슬라이드에 포함하기
빅쿼리와 배시 스크립팅
__데이터셋과 테이블 생성
__쿼리의 실행
__빅쿼리 객체
정리

[6장] 빅쿼리 아키텍처
아키텍처 살펴보기
__쿼리 요청의 수명
__빅쿼리 업그레이드
쿼리 엔진(드레멜)
__드레멜 아키텍처
__쿼리 실행
스토리지
__스토리지 데이터
__메타데이터
정리

[7장] 성능 및 비용 최적화
성능 최적화의 기본 원칙
__성능의 핵심 요소
__비용 통제하기
측정과 문제 해결
__REST API로 쿼리 속도 측정하기
__빅쿼리 워크로드 테스터로 쿼리 속도 측정하기
__스택드라이버를 사용해 워크로드 문제 해결하기
__쿼리 실행 계획 정보 읽기
__작업 세부 정보에서 쿼리 계획 정보 가져오기
__쿼리 계획 정보 시각화
쿼리 속도 높이기
__I/O 최소화
__이전 쿼리 결과 캐싱하기
__효율적으로 조인하기
__워커의 과도한 작업 피하기
__근사 집계 함수 사용하기
데이터 저장 및 접근 방법 최적화
__네트워크 오버헤드 최소화하기
__효율적인 저장 포맷 선택하기
__스캔 크기를 줄이기 위해 테이블 파티셔닝하기
__높은 카디널리티 키에 기반한 클러스터링 테이블
__시간에 구애받지 않는 사용 사례
정리
__체크리스트

[8장] 고급 쿼리
재사용 가능한 쿼리
__파라미터화된 쿼리
__SQL 사용자 정의 함수
__쿼리 일부 재사용하기
고급 SQL
__배열 다루기
__윈도우 함수
__테이블 메타데이터
__데이터 정의 언어와 데이터 조작 언어
SQL 이상의 기능
__자바스크립트 사용자 정의 함수
__스크립팅
고급 함수
__빅쿼리 지리 정보 시스템
__유용한 통계 함수들
__해시 알고리즘
정리

[9장] 빅쿼리 머신러닝
머신러닝이란
__머신러닝 문제 공식화하기
__머신러닝 문제의 유형
회귀 모델 생성하기
__레이블 선택하기
__피처를 찾기 위한 데이터셋 탐색
__학습 데이터셋 생성하기
__모델 학습 및 평가
__모델로 예측하기
__모델 가중치 검사하기
__더 복잡한 회귀 모델
분류 모델 생성하기
__학습
__평가
__예측
__임계값 고르기
빅쿼리 ML 커스텀하기
__데이터 분할 제어하기
__클래스 균형 맞추기
__정규화
k 평균 클러스터링
__어떤 것을 클러스터링할까
__자전거 대여소 클러스터링하기
__클러스터링 수행하기
__클러스터 이해하기
__데이터 기반 의사 결정
추천 시스템
__무비렌즈 데이터셋
__행렬 분해
__추천 만들기
__사용자와 영화 정보 통합하기
GCP의 커스텀 머신러닝 모델
__하이퍼파라미터 튜닝
__AutoML
__텐서플로우 지원
정리

[10장] 빅쿼리 관리 및 보안
인프라스트럭처 보안
계정 및 접근 관리
__계정
__역할
__리소스
빅쿼리 관리
__작업 관리
__사용자에게 권한 부여
__삭제된 레코드와 테이블의 복구
__지속적 통합/지속적 배포
__대시보드와 모니터링, 그리고 감사 로깅
가용성과 재해 복구, 암호화
__존과 리전 그리고 멀티리전
__빅쿼리와 장애 처리
__내구성과 백업 그리고 재해 복구
__개인정보 보호와 암호화
규제의 준수
__데이터 지역성
__데이터의 서비스에 대한 접근 제한
__개인과 관련된 모든 트랜잭션 제거하기
__데이터 유실 방지
__CMEK
__데이터 유출 보호
정리

[한국어판 특별 부록] 클라우드 컴포저와 빅쿼리로 ELT 파이프라인 만들기
ELT 파이프라인의 큰 그림
클라우드 컴포저란
클라우드 컴포저 생성 및 환경 설정
클라우드 컴포저 웹 서버 UI
DAG 만들기
ELT 파이프라인 만들기

댓글