1. BigQuery 등장 배경
1.0. 데이터 저장 장소
- Database: 데이터의 저장소
- Table: 데이터 저장 공간
- SQL(Structured Query Language)
: 데이터베이스에서 데이터를 가지고 올 때 사용하는 언어
1.1. OLTP (Online Transaction Processing)
- MySQL, Oracle, PostgreSQL 같은 데이터베이스가 OLTP에 해당
- 거래를 하기 위해 사용되는 데이터베이스
- 특징:
- 보류, 중간 상태가 없다(데이터의 무결성)
- 데이터의 추가(INSERT), 변경(UPDATE)이 많이 발생한다
- SQL로 데이터 추출 가능하나 쿼리 속도가 느리다
<- 분석을 위한 데이터베이스가 아니기 때문
1.2. OLAP와 DW(Data Warehouse)의 등장
- OLTP 데이터 분석의 속도, 기능 부족의 이슈로 OLAP 등장
- OLAP (Online Analytical Processing) : 분석 기능을 제공하는 서비스
- Data Warehouse: 여러 곳에 저장된 데이터(Database, 웹 크롤링, 파일, API 결과 등)를 한 곳 에 모아서 저장하는 창고
2. BigQuery
- Google Cloud의 데이터 웨어하우스(OLAP + DataWarehouse)
- 장점:
1) 난이도: SQL을 사용해 쉽게 데이터 추출이 가능하다
2) 속도: OLAP 도구이므로 속도가 빠르다 (단, 그만큼 돈을 지불)
3) Firebase, GA4의 데이터를 쉽게 추출할 수 있다
- 별도의 로깅을 통해, 사용자의 사용기기, 위치(시 단위까지), OS버전, 이벤트 행동 획득 가능
4) Google Cloud 이용 -> 데이터 웨어하우스를 사용하기 위한 서버가 필요 없다
- 비용:
쿼리 비용(Compute Pricing):
- On-demand 요금제: 처리된 쿼리 용량만큼 부과. 1TB에 $6.25
- Capacity 요금제: Slot 단위로 요금 부과. 1 Slot 시간당 $0.04~0.06
저장 비용(Storage Pricing):
- Active Logical 저장소: 1G에 $0.02 (월)
- Long-term Logical 저장소: 1G에 $0.01 (월). 90일 간 미수정 시
2.1. BigQuery 환경 구성 요소
1) 프로젝트 (Project):
하나의 큰 건물이라 생각. 하나의 프로젝트에 여러 데이터셋 존재
2) 데이터셋 (Dataset):
건물 안에 있는 창고 공간이라 생각. 각 창고 공간에 여러 데이터를 저장. 하나의 데이터셋에 다양한 테이블이 존재
3) 테이블 (Table):
창고에 있는 선반이라 생각. 테이블 안엔 행과 열로 이루어진 데이터들이 저장
예시)

inflearn-bigquery : 프로젝트
basic : 데이터셋
battle / pokemon / trainer / trainer_pokemon : 테이블
2.1.0. 테이블 구조
- 테이블에 저장된 데이터의 형태는 다음과 같다. 엑셀과 비슷하다고 보면 된다
