구글 빅쿼리(Google BigQuery)는 쿼리 엔진이 내장된 서버리스(serverless) 서비스로, 확장성이 높은 데이터 웨어하우스다.
내자된 쿼리 엔진은 수 테라바이트의 데이터에 대한 SQL 쿼리를 단 몇 초만에 처리할 뿐 아니라, 수 페타바이트의 데이터는 불과 몇 분이면 처리한다. 게다가 인프라를 별도로 관리하지 않고도 인덱스를 만들거나 재구성하지 않아도 이런 성능을 얻을 수 있다.
두 단계 : 키/값 쌍을 처리해 중간 키/값 쌍을 생성하는 map함수, 동일한 키와 연관된 모든 중간 값을 병합하는 reduce 함수이다.
맵리듀스(MapReduce)라고 알려진 이 패러다임은 엄청난 영향력을 갖게 되었고 아파치 하둡(Apache Hadoop)의 발전을 이끌었다.
단점 : HDFS에 데이터를 저장하기 위해서는 클러스터가 충분히 커야한다. 그리고 맵리듀스 아키텍처에서는 일반적으로 컴퓨팅 노드가 로컬에 있는 데이터에 접근해야 한다는 점을 간과하는데, 반드시 HDFS는 클러스터의 컴퓨팅 노드에 샤딩(shading)되어야 한다. 게다가 데이터 크기와 분석 요구사항 모두 많이 증가하지만 독립적으로 증가해서 클러스터가 부족하거나 과도하게 프로비저닝 되는 경우가 종종 있다.
** 샤딩(shading) : 샤딩은 "조각내다"라는 뜻으로 데이터베이스 저장기법 중 하나이며, 전체 네트워크를 분할한 뒤 트랜잭션을 영역별로 저장하고 이를 병렬적으로 처리하여 블록체인에 확장성을 부여하는 온체인 솔루션으로 데이터를 샤드라는 단위로 나눠서 저장 및 처리한다.
** 프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.
** ELT 워크플로우 : 원시 데이터를 그대로 추출해 로드한 다음 빅쿼리 뷰로 해당 데이터를 즉시 변환하는 방법이다.
빅쿼리와 주로 SQL로 상호작용하고 빅쿼리가 SQL 엔진이라서 태블로, 루커, 구글 데이터 스튜디오같은 다양한 비즈니스 인텔리전스 도구로 빅쿼리에 저장된 데이터를 영향력 있는 분석, 시각화, 보고서로 만들 수 있다.
머신러닝 모델 생성과 배치 예측 작업을 지원한다.
다양한 유형의 데이터를 저장할 수 있다.(지리 공간 데이터, 계층 데이터 등)
배치 데이터와 스트리밍 데이터 수집 모두 지원한다. REST API를 통해 빅쿼리로 직접 데이터를 스트리밍할 수 있다.
인프라스트럭처를 직접 구축하지 않아도 되므로 보안을 신경 써야 하는 번거로움도 줄어든다. 빅쿼리의 데이터는 저장 및 전송 시 자동으로 암호화된다.