IT

Google BigQuery

esmile1 2025. 2. 1. 12:58

Google BigQuery는 Google Cloud Platform(GCP)에서 제공하는 완전 관리형 서버리스 데이터 웨어하우스로, 페타바이트 규모의 데이터를 실시간으로 분석할 수 있는 강력한 도구입니다. 대규모 데이터 처리에 최적화된 아키텍처와 표준 SQL 지원으로 복잡한 분석 작업을 간소화합니다.

핵심 기능 및 특징

  1. 완전 관리형 서버리스 아키텍처
    • 인프라 관리 없이 데이터 분석에 집중 가능[1][3]
    • 컴퓨팅 리소스 자동 확장(Slot 기반)[1][4]
  2. 고성능 데이터 처리
    • 7TB 데이터 처리 시 330개 HDD 병렬 작업, 30초 완료[4]
    • 열 지향 저장 방식으로 쿼리 효율성 극대화[15][18]
  3. 다양한 데이터 소스 통합
    • Google Drive, Cloud Storage, 외부 API 연동[3][11]
    • 스트리밍 데이터 실시간 수집 지원[4][6]
  4. AI/ML 통합
    • BigQuery ML로 SQL만으로 머신러닝 모델 구축[1][7]
    • Gemini AI를 활용한 자동 쿼리 생성[8][9]
  5. 비용 효율성
    • 사용한 쿼리 처리량만 과금(Pay-as-you-go)[3][10]
    • 장기 저장 데이터 할인 정책[18]

BigQuery 30단계 사용 가이드

1. 초기 설정 (5단계)

  1. GCP 프로젝트 생성
  2. BigQuery API 활성화
    • 네비게이션 메뉴 → API 및 서비스 → "BigQuery API" 검색 후 활성화[20]
  3. BigQuery Studio 접속
    • 콘솔 내 BigQuery → BigQuery Studio 선택[1][2]
  4. 데이터 세트 생성
    • 리전 지정 필수[4][11]
  5. CREATE SCHEMA my_dataset OPTIONS( location='asia-northeast3', description='샘플 데이터 세트' );
  6. 액세스 권한 설정
    • IAM 페이지에서 팀원 계정에 BigQuery User/Admin 역할 부여[9]

2. 데이터 관리 (8단계)

  1. 로컬 CSV 업로드
    • 탐색기 → 데이터 세트 선택 → 테이블 생성 → 파일 업로드 → 스키마 자동 감지[2][11]
  2. Google Drive 연결
    • Drive 공유 설정 필수[11]
  3. CREATE EXTERNAL TABLE my_table OPTIONS ( format = 'CSV', uris = ['gs://my-bucket/*.csv'] );
  4. Cloud Storage 연동
    • 버킷 생성 후 데이터 업로드 → 외부 테이블로 매핑[2][11]
  5. 스트리밍 데이터 수집
    • 초당 100,000행 처리 가능[6]
  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)
  7. 데이터 내보내기
    • 쿼리 결과 → Export → CSV/JSON/Google Sheets 선택[1]
  8. 파티셔닝 테이블
    • 쿼리 비용 70% 절감[7]
  9. CREATE TABLE sales ( date DATE, amount INT64 ) PARTITION BY date;
  10. 클러스터링 설정
    • 검색 성능 40% 향상[7]
  11. CLUSTER BY customer_id, product_category
  12. 데이터 백업
    • 탐색기 → 테이블 선택 → Export → Cloud Storage 지정[11]

3. 쿼리 실행 (7단계)

  1. 기본 쿼리 작성
  2. 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;
  3. JOIN 최적화
    • 작은 테이블을 먼저 처리하도록 쿼리 순서 조정[7]
  4. 공개 데이터셋 활용
    • bigquery-public-data 접두어로 COVID-19, GitHub 등 200+ 데이터셋 사용[1]
  5. 예약 쿼리 설정
    • 쿼리 편집기 → Schedule → 반복 주기 설정[1][2]
  6. 결과 캐싱 활용
    • 동일 쿼리 재실행 시 캐시 결과 자동 사용[7]
  7. 지리공간 분석
  8. SELECT ST_GEOGFROMTEXT(longitude, latitude) AS location FROM sensor_data;
  9. 머신러닝 모델 생성
  10. CREATE MODEL my_model OPTIONS(model_type='linear_reg') AS SELECT * FROM training_data;

4. 고급 기능 (6단계)

  1. BI Engine 통합
    • Looker Studio 연결 → 실시간 대시보드 생성[3][6]
  2. 검색 최적화
  3. CREATE SEARCH INDEX my_index ON dataset.table(ALL COLUMNS);
  4. 데이터 마스킹
  5. CREATE MASKING POLICY email_mask AS (email STRING) RETURNS STRING -> CASE WHEN SESSION_USER() = 'admin' THEN email ELSE REGEXP_REPLACE(email, '(.*)@', '***@') END;
  6. 작업 모니터링
    • INFORMATION_SCHEMA.JOBS 뷰로 리소스 사용량 추적[7]
  7. 커스텀 함수 개발
  8. CREATE TEMP FUNCTION addTax(price FLOAT64) RETURNS FLOAT64 AS (price * 1.1);
  9. 스냅샷 생성
  10. CREATE SNAPSHOT TABLE dataset.backup_202405 CLONE dataset.sales FOR SYSTEM_TIME AS OF CURRENT_TIMESTAMP();

5. 최적화 (4단계)

  1. 쿼리 플랜 분석
    • EXPLAIN 절 추가 → 실행 계획 확인[7]
  2. 슬롯 예약
    • 조직당 최대 2,000슬롯 할당 → 처리 속도 5배 향상[1][4]
  3. 데이터 샘플링
  4. SELECT * FROM dataset.table TABLESAMPLE SYSTEM (10 PERCENT);
  5. 비용 경고 설정
    • GCP Billing → Budgets & alerts → 월별 예산 한도 지정[10]

추천 학습 자료

Prompt 활용 팁: 쿼리 작성 시 BigQuery Studio의 "Ask Gemini" 기능을 사용해 자연어로 SQL 생성 가능[8]. 예시: "지난달 매출 상위 10개 제품과 판매량 보여줘"