구글(Google) 데이터웨어하우스(Data Warehouse) BigQuery (빅쿼리) 소개

구글(Google)에서 만든 데이터 웨어하우스(data warehouse)인 빅쿼리(BigQuery)를 소개합니다. 

  • BigQuery는 데이터 웨어하우스입니다. 보통 데이터 웨어하우스를 설계하고 구축하고 운영하는데는 많은 자원이 듭니다. BigQuery는 serverless라서 사용자가 따로 서버를 구축하고 관리할 필요가 없습니다. 하드웨어&소프트웨어 업그레이드 및 관리를 하지 않아도 되고, DBA 같은 데이터웨어하우스를 관리하는 인력도 필요가 없습니다. 그래서 BigQuery를 fully-managed, serverless data warehouse라고 부릅니다.  
  • 보통 빅쿼리같은 클라우드 SaaS 제품을 고려할땐 항상 보안을 제일 걱정하게 됩니다.  빅쿼리는 데이터를 암호화해서 저장하고, 전송시에도 암호화해서 보호합니다. 데이터는 또한 복제되어 분산 저장되기 때문에 안전합니다. 물론 지구상의 구글 데이터센터가 다 터진다면 데이터는 사라집니다. 하지만 한 곳만 터져면 다른 센터에도 같은 데이터를 가지고 있기 때문에 안전합니다.
  • 2020년 구글 코리아 워크샵에서 4.1 테라바이트 위키피디아 퍼블릭 데이터를 쿼리하였는데  이미지 자료에는 41.9초만에 쿼리가 완료되었지만, 최근 워크샵에는 23.7초가 걸렸습니다. 빅쿼리 연산 속도는 계속해서 더 빨라지고 있습니다. 
  • 빅쿼리가 대용량의 데이터를 빠르게 연산할 수 있는 이유는 바로 Dremel 구조로 설계되었기 때문입니다. 데이터를 저장하는 노드와 쿼리를 처리하는 노드가 분리되어 있고 연산량에 따라 스케일 아웃하고 부하를 조절하게 됩니다.
빅쿼리에서 구글 아날리틱스 데이터 쿼리
  • 빅쿼리는 SQL:2011(ISO/IEC 9075:2011)과 완전 호환됩니다. 위는 저번에 소개해 드렸던 Google Analytics의 샘플 데이터를 쿼리한 것입니다. 빅쿼리는 Google Analytics와 연동이 가능합니다. 
  • 여러 데이터 소스를 빅쿼리와 연결할 수 있습니다.  ex) 아마존 S3, Google Marketing Platform 제품들, Youtube, Teradata 등등.  위는 구글 클라우드 플랫폼에서 제공하는 Data transfer 기능입니다. 빅쿼리에 Avro, CSV, JSON, ORC, Parquet 데이터를 저장할 수 있습니다. 
빅쿼리(BigQuery)에서 머신러닝(ML) 사용 예
  • 빅쿼리는 구글의 머신러닝과 연동이 됩니다.  빅쿼리 UI에서 sql 만으로 머신러닝 모델을 만들어서 검증하고 예측할 수 있습니다. 한 번 해보시는게 머리로 이해하는 것보다 백배 낫습니다.  (여기 클릭 )  이 링크는 Qwiklabs 이고 크레딧이 필요하지만 각종 구글 교육이나 행사 참여시 크레딧을 얻을 수 있고, 토큰을 주거나 무료로 사용할 수 있게 해주기도 합니다. 꼭 크레딧을 사용하지 않고 읽기만 해도 큰 도움이 됩니다. 실제로 빅쿼리와 ML을 사용하면 돈이 많이 듭니다. 그래서 Qwiklab에서 제공하는 환경에서 실습하는 게 좋습니다. 저는 공짜로 여러번 해봤고 앞으로도 많이 사용해야 합니다. (제가 요즘하는 업무가 빅쿼리와 머신러닝이라... 나이먹고 새로운 거 자꾸 배우려니 빡세네요.)
빅쿼리(BigQuery) GIS

빅쿼리 UI에서 데이터 스튜디오 사용
  • 빅쿼리에서 GIS 데이터를 분석하고 툴을 사용해 시각화 할 수 있습니다. GIS 데이터 말고도 GCP(구글 클라우드 플랫폼) 빅쿼리 UI에서 쉽게 데이터를 시각화 할 수 있습니다. ( Data Studio 사용) 
클라우드 쉘(shell)에서 빅쿼리 접속

로컬 터미널에서 빅쿼리 접속
  • 클라우드 shell을 통해서도 빅쿼리에 접속하여 데이터를 조회하고 처리할 수 있습니다. Cloud SDK를 설치하면 로컬 터미널에서도 빅쿼리에 연결할 수 있습니다. 

Comments