Google BigQuery는 Google Cloud Platform(GCP)에서 제공하는 완전 관리형 서버리스 데이터 웨어하우스로, 페타바이트 규모의 데이터를 실시간으로 분석할 수 있는 강력한 도구입니다. 대규모 데이터 처리에 최적화된 아키텍처와 표준 SQL 지원으로 복잡한 분석 작업을 간소화합니다.
핵심 기능 및 특징
- 완전 관리형 서버리스 아키텍처
- 인프라 관리 없이 데이터 분석에 집중 가능[1][3]
- 컴퓨팅 리소스 자동 확장(Slot 기반)[1][4]
- 고성능 데이터 처리
- 7TB 데이터 처리 시 330개 HDD 병렬 작업, 30초 완료[4]
- 열 지향 저장 방식으로 쿼리 효율성 극대화[15][18]
- 다양한 데이터 소스 통합
- Google Drive, Cloud Storage, 외부 API 연동[3][11]
- 스트리밍 데이터 실시간 수집 지원[4][6]
- AI/ML 통합
- BigQuery ML로 SQL만으로 머신러닝 모델 구축[1][7]
- Gemini AI를 활용한 자동 쿼리 생성[8][9]
- 비용 효율성
- 사용한 쿼리 처리량만 과금(Pay-as-you-go)[3][10]
- 장기 저장 데이터 할인 정책[18]
BigQuery 30단계 사용 가이드
1. 초기 설정 (5단계)
- GCP 프로젝트 생성
- Google Cloud 콘솔 접속 → 프로젝트 선택/생성
- BigQuery API 활성화
- 네비게이션 메뉴 → API 및 서비스 → "BigQuery API" 검색 후 활성화[20]
- BigQuery Studio 접속
- 콘솔 내 BigQuery → BigQuery Studio 선택[1][2]
- 데이터 세트 생성
- 리전 지정 필수[4][11]
- CREATE SCHEMA my_dataset OPTIONS( location='asia-northeast3', description='샘플 데이터 세트' );
- 액세스 권한 설정
- IAM 페이지에서 팀원 계정에 BigQuery User/Admin 역할 부여[9]
2. 데이터 관리 (8단계)
- 로컬 CSV 업로드
- 탐색기 → 데이터 세트 선택 → 테이블 생성 → 파일 업로드 → 스키마 자동 감지[2][11]
- Google Drive 연결
- Drive 공유 설정 필수[11]
- CREATE EXTERNAL TABLE my_table OPTIONS ( format = 'CSV', uris = ['gs://my-bucket/*.csv'] );
- Cloud Storage 연동
- 버킷 생성 후 데이터 업로드 → 외부 테이블로 매핑[2][11]
- 스트리밍 데이터 수집
- 초당 100,000행 처리 가능[6]
- from google.cloud import bigquery client = bigquery.Client() table_ref = client.dataset("my_dataset").table("real_time") errors = client.insert_rows_json(table_ref, json_rows)
- 데이터 내보내기
- 쿼리 결과 → Export → CSV/JSON/Google Sheets 선택[1]
- 파티셔닝 테이블
- 쿼리 비용 70% 절감[7]
- CREATE TABLE sales ( date DATE, amount INT64 ) PARTITION BY date;
- 클러스터링 설정
- 검색 성능 40% 향상[7]
- CLUSTER BY customer_id, product_category
- 데이터 백업
- 탐색기 → 테이블 선택 → Export → Cloud Storage 지정[11]
3. 쿼리 실행 (7단계)
- 기본 쿼리 작성
- SELECT user_id, COUNT(*) AS purchase_count FROM `project.dataset.sales` WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31' GROUP BY user_id ORDER BY purchase_count DESC LIMIT 100;
- JOIN 최적화
- 작은 테이블을 먼저 처리하도록 쿼리 순서 조정[7]
- 공개 데이터셋 활용
- bigquery-public-data 접두어로 COVID-19, GitHub 등 200+ 데이터셋 사용[1]
- 예약 쿼리 설정
- 쿼리 편집기 → Schedule → 반복 주기 설정[1][2]
- 결과 캐싱 활용
- 동일 쿼리 재실행 시 캐시 결과 자동 사용[7]
- 지리공간 분석
- SELECT ST_GEOGFROMTEXT(longitude, latitude) AS location FROM sensor_data;
- 머신러닝 모델 생성
- CREATE MODEL my_model OPTIONS(model_type='linear_reg') AS SELECT * FROM training_data;
4. 고급 기능 (6단계)
- BI Engine 통합
- Looker Studio 연결 → 실시간 대시보드 생성[3][6]
- 검색 최적화
- CREATE SEARCH INDEX my_index ON dataset.table(ALL COLUMNS);
- 데이터 마스킹
- CREATE MASKING POLICY email_mask AS (email STRING) RETURNS STRING -> CASE WHEN SESSION_USER() = 'admin' THEN email ELSE REGEXP_REPLACE(email, '(.*)@', '***@') END;
- 작업 모니터링
- INFORMATION_SCHEMA.JOBS 뷰로 리소스 사용량 추적[7]
- 커스텀 함수 개발
- CREATE TEMP FUNCTION addTax(price FLOAT64) RETURNS FLOAT64 AS (price * 1.1);
- 스냅샷 생성
- CREATE SNAPSHOT TABLE dataset.backup_202405 CLONE dataset.sales FOR SYSTEM_TIME AS OF CURRENT_TIMESTAMP();
5. 최적화 (4단계)
- 쿼리 플랜 분석
- EXPLAIN 절 추가 → 실행 계획 확인[7]
- 슬롯 예약
- 조직당 최대 2,000슬롯 할당 → 처리 속도 5배 향상[1][4]
- 데이터 샘플링
- SELECT * FROM dataset.table TABLESAMPLE SYSTEM (10 PERCENT);
- 비용 경고 설정
- GCP Billing → Budgets & alerts → 월별 예산 한도 지정[10]
추천 학습 자료
- 공식 문서: BigQuery 시작하기 [1][7]
- 동영상 강의: BigQuery 시작하기 1강 - Introduction [14]
- 실습 데이터셋: bigquery-public-data 내 covid19_open_data, github_repos [1][17]
Prompt 활용 팁: 쿼리 작성 시 BigQuery Studio의 "Ask Gemini" 기능을 사용해 자연어로 SQL 생성 가능[8]. 예시: "지난달 매출 상위 10개 제품과 판매량 보여줘"
'IT' 카테고리의 다른 글
구글 클라우드 플랫폼(GCP) 환경에서 RAM 대신 SSD를 활용하는 전략 (0) | 2025.02.01 |
---|---|
데이터베이스 문제 해결: 소프트웨어적 접근법과 ML적 접근법 비교 (0) | 2025.02.01 |
Cursor AI를 이용한 랜딩 페이지 제작 튜토리얼 (0) | 2025.02.01 |
DeepSeek R1과 Cursor AI를 활용한 초보자 앱 개발 (0) | 2025.01.31 |
Prompts_Websites by Cursor (0) | 2025.01.29 |