최근 구글에서 제공하는 GCP 관련 교육 과정인 Google Cloud Skills Boost을 중심으로,
빅쿼리에 대해 학습을 진행 중이다.
수많은 과정 중 직무별로 선별된 Path를 구성해주기에 어떤 강의와 실습을 들을지 가이드가 되는데,
Data Analyst Learning Path를 제공하고 있어 따라가 보려고 한다 (참고: 링크).
강의와 간단한 실습으로 이뤄진 Course나 실습 문제로 이뤄진 Quest를 마무리하면 뱃지가 주어지는데,
아래의 링크와 같이 나의 공개 프로필에 이 배지들을 모아가는 재미가 동기부여를 쏠쏠하게 해준다!
(링크드인 프로필에도 바로 쉽게 공유가 가능해 유용하게 쓰일 수 있다.)
위 과정과 책 등을 보며 공부한 내용을 앞으로 내용을 쭉 정리해나가려고 하는데,
우선은 빅쿼리(BigQuery)란 제품이 무엇인지, 아주 기초적인 부분부터 시작하자.
다음 포스팅에서는 빅쿼리에서 SQL 쿼리를 작성하는 법, 빅쿼리ML 등에 대한 내용을 이어갈 예정이다.
목차
1. Google Cloud란?
Google Cloud is a suite of cloud services hosted on Google's infrastructure. From computing and storage, to data analytics, machine learning, and networking, Google Cloud offers a wide variety of services and APIs that can be integrated with any cloud-computing application or project, from personal to enterprise-grade.
•
구글의 클라우드 컴퓨팅 서비스로, 구글 제품에 사용되는 동일한 인프라 상에서 호스팅이 제공됨
•
컴퓨팅, 스토리지, 데이터 분석, 머신러닝, 네트워킹에 이르기까지 다양한 종류의 서비스와 API 제공
•
이러한 서비스와 API는 개인에서부터 엔터프라이즈 수준에 이르는 클라우드 컴퓨팅 애플리케이션과 프로젝트에 통합 가능
2. Google Cloud의 빅데이터 서비스
데이터 분석에서 당면하는 과제들
•
느린 쿼리
•
데이터를 통합(combine)하고 쿼리하기 어려움
•
인프라 유지
•
스케일링(scaling) 이슈
•
비용 문제로 비즈니스에서 발생되는 일부의 데이터만 저장할 수 있음
•
중앙 데이터 분석 웨어하우스, 툴들의 부재
왜 Data Analytics에 클라우드를 사용하면 좋을까? (on-premises 대비)
•
저렴한 저장 비용
•
인프라에 신경쓰지 않고 쿼리에만 집중할 수 있음 (구글의 인프라를 레버리지하기!)
•
뛰어난 확장성(scaliability)
출처: Big Data Tools Overview, Course: Exploring and Preparing your Data with BigQuery, Google Cloud Skills Boost
구글 클라우드의 데이터 서비스
•
구글은 데이터 프로세스에서 마주하는 과제를 해결할 수 있는 다양한 서비스를 제공함
Ingest | Transform | Store | Analyze | Visualize | |
업무 | 데이터 가져오기 | 데이터 준비, 정리, 변형(transform) | 데이터셋 생성 및 저장 | 데이터로부터
인사이트 토출 | 데이터를 시각적으로 탐색 & 인사이트 전달 |
문제점 | 데이터의
- 볼륨(volume)
- 다양성(variety)
- 속도(velocity) | - 느림 탐색
- 느린 프로세싱
- 불분명한 로직 | - 저장비용
- 스케일업 어려움
- latency 문제 | - 느린 쿼리
- 데이터 볼륨
- 격리된(siloed) 데이터 | - 데이터셋 크기
- 툴 레이턴시 |
GCP
데이터
툴 | - BigQuery Storage
(import) | - BigQuery Analysis(SQL)
- Dataprep
(prep) | - Cloud Storage
(buckets)
- BigQuery Storage(tables) | - BigQuery Analysis(SQL) | - Looker Studio
- Looker Studio Pro
- 3rd-party tools
(Tableau, Qlik) |
효과 | 페타바이트 단위의 데이터를 다양한 포맷에서 가져옴 | 데이터 준비, 정리, 변형 과정을 쉽고 빠르게 처리 가능 | 데이터셋 생성 및 저장 비용 절감 | 서버 관리 없이도 충분한 규모로(at scale) 데이터 분석 | 인터랙티브하고 임팩트 있는 시각화 |
•
데이터 직무별 역할과 활용 가능한 GCP 데이터 툴들
Data Analyst | Data Scientist | Data Engineer | |
What they do | 쿼리와 시각화를 통해 데이터에서 인사이트 도출 | 통계와 머신러닝을 활용한 데이터분석 및 모델링 | 데이터 처리 시스템 디자인, 구축,유지 |
Background | SQL을 활용한 데이터 분석 | SQL, R, Pyhon을 활용하는 통계적 분석 | 컴퓨터 엔지니어링 |
활용 GCP 툴 | - Cloud Storage
- Cloud SQL
- BigQuery
- Dataprep
- Looker Studio
- Looker Studio Pro | - BigQuery
- Vertex AI
- Translation AI
- Deep Learning Containers 등 | - Compute Engine
- Cloud Storage
- CloudSQL
- Cloud Bigtable
- Cloud Spanner
- Pub/Sub
- Dataflow
- Dataproc
- Dataprep
- Firestore |
3. 빅쿼리(BigQuery) 개요
빅쿼리란?
빅쿼리란?
•
구글 클라우드(Google Cloud, GCP)에서 제공하는 완전 관리형 데이터 분석 플랫폼
•
페타바이트급의 데이터를 저렴하고 빠르게 처리할 수 있는 데이터웨어하우스
빅쿼리의 두 가지 서비스: 스토리지와 분석
•
BigQuery Manage Storage
◦
Fully-managed and scalable data storage
•
BigQuery Analysis
◦
Fast massively parallel SQL Engine
◦
구글의 Dremel 엔진을 기반으로 함
•
빅쿼리의 구조
출처: Big Data Tools Overview, Course: Exploring and Preparing your Data with BigQuery, Google Cloud Skills Boost
빅쿼리의 9가지 대표적인 특징
1.
Fully-managed data warehouse: no-ops, petabyte-scale
•
사용자는 인프라에 신경쓰지 않고 데이터를 추출하는 업무에 집중할 수 있음
2.
Reliable: 구글 데이터 센터의 지원을 받음
3.
Economical: 프로세싱과 스토리지를 사용한 만큼만 지불함
4.
Secure: 엑세스 관리 및 데이터 암호화 (role ACLs, data encrypted in transport and at rest)
5.
Auditable: 모든 쿼리는 별도의 트랜잭션으로 로깅됨
6.
Scalable: 병렬 프로세싱으로 빠른 쿼리, 다중 쿼리 실행
7.
Flexible: 다른 데이터셋에서도 데이터를 매시업 가능(join, union)
8.
Easy-to-use: 익숙한 SQL 사용, index 개념 없음, open standards
9.
Public datasets: 공개된 현실의 데이터셋으로 데이터 분석을 연습 가능
•
데이터 종류: NOAA, IRS, GitHub, NYC Taxi, etc.
빅쿼리를 이용하는 3가지 방법
•
Web UI, CLI, API를 이용해 빅쿼리를 이용할 수 있는데,
웹에서 콘솔을 이용하는 Web UI 방식이 가장 접근하기 쉽다.
출처: Big Data Tools Overview, Course: Exploring and Preparing your Data with BigQuery, Google Cloud Skills Boost
빅쿼리 가격정책(pricing)
BigQuery jobs
•
Job: 빅쿼리에서 일의 단위
•
Job의 특징
◦
given a unique ID by the web UI
◦
can run concurrently
◦
perform tasks
◦
history store for 6 months
•
Job 타입에 따른 가격 정책
◦
Query → charged by bytes processed
◦
Load data into a table → free
◦
Extract to Cloud Storage → free
◦
Copy existing table → free
◦
[note] storing data in BigQuery is a separate cost
Sizing and cost management
•
Storage pricing
◦
Active storage pricing: prorated per MB, per second
◦
Long-term storage pricing
▪
partition or non-partitioned table not edited 90+ days
▪
price drops 50%
•
Analytics engine cost: On-demand pricing vs. Flat-rate pricing
Optimize queries for cost
•
쿼리를 쓸 때 유의할 비용 최적화 원칙(cost-optimization principles)
◦
필요한 columns과 row만 포함시킬 것 (filter early)
◦
가능하다면 캐시된 결과를 사용할 것
◦
User-Defined Function 사용은 제한할 것
4. 요약
빅쿼리는 GCP에서 제공되는 빅데이터 분석 플랫폼이며,
구글의 인프라를 레버리지할 수 있는 완전 관리형(fully-managed) 서비스로,
사용자는 수고스러운 인프라 운영은 신경 쓰지 않고(no-ops),
페타바이트 급의 데이터를 저렴하고 빠르게 분석하는 업무에만 집중할 수 있게 된다.
이러한 장점으로 인해 전세계적으로 많은 기업에서 빅쿼리를 데이터웨어하우스로 채택하고 있다.
참고자료
•