Google BigQuery 소개

클라우드 기반 빅데이터 분석 플랫폼

Seonghak Hong

2017-09-01

목차

  1. BigQuery 개요
  2. 주요 기능
  3. 아키텍처
  4. 사용 사례
  5. 최적화 팁
  6. 미래 전망

BigQuery 개요

BigQuery란?

Google BigQuery는 서버리스, 고도로 확장 가능한 클라우드 데이터 웨어하우스

  • 서버리스: 인프라 관리 불필요
  • 고속 쿼리: 페타바이트 규모 데이터 처리
  • ML 통합: 빅쿼리 ML
  • 통합: Google Cloud 서비스 연동
  • 비용 효율적: 사용량 기반 과금

flowchart TD
    A[데이터 소스] --> B[BigQuery]
    B --> C[분석]
    B --> D[ML 모델링]
    B --> E[시각화]
    F[Google Cloud] --> B

BigQuery의 발전 과정

  • 2010년: BigQuery 베타 출시
  • 2011년: 공식 런칭
  • 2016년: 표준 SQL 지원
  • 2018년: BigQuery ML 출시
  • 2020년: 다중 클라우드 지원
  • 현재: AI/ML 고도화

주요 기능

데이터 저장 및 쿼리

저장 기능:

  • 컬럼나 스토리지
  • 자동 압축
  • 파티셔닝
  • 클러스터링

쿼리 기능:

  • 표준 SQL
  • 사용자 정의 함수
  • GIS 함수
  • JSON 지원

예제 쿼리:

SELECT 
  name,
  COUNT(*) as count
FROM 
  `bigquery-public-data.usa_names.usa_1910_current`
GROUP BY 
  name
ORDER BY 
  count DESC
LIMIT 10

BigQuery ML

빅쿼리 내 ML 모델링

  • SQL만으로 ML 구현
  • 자동 Hyperparameter 튜닝
  • 모델 관리 및 서빙
  • 선형 회귀
  • 로지스틱 회귀
  • K-means 클러스터링
  • 시계열 예측
  • 딥러닝
CREATE MODEL `project.dataset.my_model`
OPTIONS(model_type='linear_reg') AS
SELECT
  label,
  feature1,
  feature2
FROM
  `project.dataset.training_data`

통합 및 확장

Google Cloud 통합:

  • Cloud Storage
  • Dataflow
  • Dataproc
  • AI Platform

외부 통합:

  • Tableau
  • Looker
  • Excel
  • Python/R 클라이언트

확장 기능:

  • 슬롯 기반 쿼리
  • 빅쿼리 Omni (멀티 클라우드)
  • 빅쿼리 GIS
  • 연결된 시트

아키텍처

BigQuery 아키텍처

graph TD
    A[클라이언트] --> B[BigQuery API]
    B --> C[Dremel 쿼리 엔진]
    C --> D[Colossus 분산 스토리지]
    E[Compute 리소스] --> C
    F[메타데이터] --> C
    subgraph "Google 인프라"
        C
        D
        E
        F
    end

비용 모델

  • 스토리지 비용: 저장된 데이터량 기반
  • 쿼리 비용: 처리된 바이트 수 기반
  • 슬롯 모델: 고정 용량 예약
  • 온디맨드: 사용량 과금
  • 플랫 레이트: 월정액

사용 사례

산업별 사례

  • 고객 행동 분석
  • 재고 예측
  • 개인화 추천
  • 사기 탐지
  • 리스크 모델링
  • 거래 분석
  • 환자 데이터 분석
  • 임상 시험
  • 유전자 분석
  • 콘텐츠 추천
  • 시청자 분석
  • 광고 최적화

실무 예시

데이터 로딩:

LOAD DATA INTO `project.dataset.table`
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/file.csv']
)

뷰 생성:

CREATE VIEW `project.dataset.my_view` AS
SELECT *
FROM `project.dataset.table`
WHERE date > '2020-01-01'

파티션 테이블:

CREATE TABLE `project.dataset.partitioned_table` (
  id INT64,
  timestamp TIMESTAMP
)
PARTITION BY DATE(timestamp)

최적화 팁

성능 최적화

  • 클러스터링 사용: 자주 필터링되는 컬럼
  • 파티셔닝: 시간 기반 데이터
  • 캐싱: 반복 쿼리 활용
  • 데이터 형식 최적화: 적절한 데이터 타입
  • 불필요 컬럼 제외: SELECT * 피하기

비용 절감 팁

비용 관리 베스트 프랙티스

  1. 쿼리 전에 테이블 크기 확인
  2. 드라이 런으로 비용 추정
  3. 불필요 데이터 삭제
  4. 장기 스토리지 활용
  5. 슬롯 예약 고려

주의사항

  • 와일드카드 테이블 주의
  • 대형 조인 최적화
  • 반복 쿼리 스케줄링

미래 전망

BigQuery 로드맵

  • AI/ML 강화: Gemini 통합
  • 글로벌 확장: 더 많은 리전
  • 보안 강화: 프라이빗 컴퓨팅
  • 통합 확대: 더 많은 커넥터
  • 성능 개선: 자동 최적화

결론

BigQuery로 빅데이터 분석의 미래를 열어보세요!

장점 요약:

  • 쉬운 사용
  • 무한 확장
  • 비용 효율
  • 강력한 통합

다음 단계:

  • 무료 티어 시도
  • 문서 참조
  • 커뮤니티 참여

감사합니다

질문이 있으신가요?

연락처:

  • 이메일: euriion@gmail.com
  • 홈페이지: https://aidenhong.com