No Story, No Ecstasy

구글 빅쿼리 본문

Shallow Series

구글 빅쿼리

heave_17 2021. 3. 12. 23:12

Google BigQuery의 특징

클라우드 환경의 Data Warehouse, PB 급의 데이터 저장 및 분석용 서비스다. 관계형 구조를 가지지 않는 NoSQL 기반의 데이터 저장소이지만, RDBMS처럼 사용할 수 있는 SQL를 제공한다.

- Serverless: 별도의 운영 환경 세팅이 필요 없다.

- SQL 활용: 일반 SQL을 통해 데이터 조회가 가능하다. (레코드 형식의 필드인 경우 unnest 함수를 통해 flatten 작업 필요)

- 3중 복제: 3중 복제로 인하여 데이터 안정성 보장 (하둡과 동일)

- REST API를 활용한 배치, 스트리밍 기능을 모두 지원

 

Google BigQuery의 데이터 구조

- Project: 최상위 컨테이너. 다수의 Data Set 소유 가능. 사용자와 Data Set의 권한 제어를 포함한 전반적인 리소스 관리

- Data Set: 하나 이상의 테이블들을 집합으로 관리. 권한 제어가 가능한 최소 단위 (MySQL database와 유사한 개념)

- Table: 스키마를 가지는 실제 데이터 저장 공간. Row 단위 업데이트는 지원 X (append-only).

- Job: Query, Loading, Delete, Paste, Export .

 

Google BigQuery의 아키텍쳐

- 컬럼 기반 저장 (OLAP 특화)

- 트리 기반 데이터 처리 (No key/index only full scan)

- Record 타입: 하나의 컬럼에 여러 컬럼들을 담을 수 있다(NoSQL처럼 객체를 저장할 수 있음).

- Repeated 속성: Record data type repeated mode로 설정할 경우, 한 칼럼에 반복된 필드들을 저장할 수 있다. JSON 형식의 fields에 배열 형태로 저장된다.