BigQuery ML
BigQuery ML (Introduction to ML in BigQuery)
머신러닝 모델을 만들려면 보통 파이썬 같은 프로그래밍과 ML 프레임워크 지식이 필요해요. 그런 진입 장벽 때문에 데이터를 잘 이해하지만 ML 지식과 프로그래밍 경험이 적은 데이터 분석가는 모델을 만들기 어려웠죠. BigQuery ML은 이런 문제를 풀기 위해, SQL만으로 ML 모델을 만들고 평가하고, LLM·클라우드 AI API의 결과까지 활용할 수 있게 해주는 기능이에요.
BigQuery ML 모델은 테이블·뷰처럼 BigQuery 데이터셋 안에 저장돼요. GoogleSQL 쿼리나 Google Cloud 콘솔을 통해 사용할 수 있고, 콘솔 쿼리 편집기, bq 명령줄 도구, REST API, Colab Enterprise 노트북, Jupyter 노트북 같은 외부 도구로도 작업할 수 있어요.
BigQuery ML의 장점
BigQuery ML이 클라우드 데이터 웨어하우스에서 다른 접근 방식보다 나은 점은 이러해요.
- 데이터 웨어하우스의 주요 사용자인 데이터 분석가가 기존 BI 도구·스프레드시트로 모델을 만들고 실행할 수 있게 해서, ML·AI 사용을 널리 퍼뜨려요.
- 파이썬이나 자바로 ML·AI 솔루션을 프로그래밍할 필요가 없어요. 데이터 분석가에게 친숙한 SQL로 모델을 훈련하고 AI 리소스에 접근해요.
- 데이터 웨어하우스에서 데이터를 옮길 필요가 없어요. BigQuery ML이 ML을 데이터로 가져오는 셈이라, 필요한 도구가 줄고 대용량 데이터를 파이썬 ML 프레임워크용으로 옮기고 포맷할 필요가 없어서 프로덕션까지 가는 속도가 빨라져요.
CREATE MODEL 문과 추론 함수의 기본 설정만으로도 ML 지식이 많지 않아도 모델을 만들고 쓸 수 있어요. 다만 피처 엔지니어링·모델 훈련 같은 ML 개발 수명주기에 대한 기본 지식이 있으면 데이터와 모델을 최적화해 더 나은 결과를 얻을 수 있어요.
주요 활용
시계열: TimesFM, ARIMA_PLUS, ARIMA_PLUS_XREG 모델로 시계열 데이터의 예측(forecasting)과 이상 탐지(anomaly detection)를 수행할 수 있어요.
기여 분석 (Contribution analysis): 다차원 데이터에서 핵심 지표 변화에 기여한 요인을 알아내는 모델을 만들 수 있어요. 예를 들어 매출 변화에 어떤 데이터가 기여했는지 찾을 수 있죠.
지원 모델
BigQuery ML의 모델은 훈련 데이터에서 ML 시스템이 학습한 것을 나타내요. 지원 모델은 크게 네 갈래로 나뉘어요.
내부 훈련 모델 (Internally trained models)
BigQuery ML에 내장된 모델들이에요.
- 기여 분석: 하나 이상의 차원이 특정 지표 값에 미치는 영향을 판단해요. 매장 위치·판매 날짜가 매출에 미치는 영향 같은 걸 볼 수 있어요.
- 선형 회귀 (Linear regression): 유사한 데이터에서 훈련된 모델로 새 데이터의 수치 지표 값을 예측해요. 라벨은 실수 값(양·음의 무한대나 NaN이 아님)이에요.
- 로지스틱 회귀 (Logistic regression): 둘 이상의 가능한 값 분류에 쓰여요. 입력이
low-value·medium-value·high-value중 어떤 것인지 같은 문제죠. 라벨은 최대 50개 고유 값을 가질 수 있어요. - K-means 클러스터링: 데이터 세분화에 쓰여요. 고객 세그먼트 식별 같은 작업에 쓰고, 무지도(unsupervised) 학습 기법이라 라벨이나 훈련·평가 데이터 분할이 필요 없어요.
- 행렬 분해 (Matrix factorization): 제품 추천 시스템을 만들 때 써요. 과거 고객 행동·거래·제품 평점으로 추천을 만들 수 있어요.
- 주성분 분석 (PCA): 주성분을 계산하고 데이터의 기저를 바꾸는 기법이에요. 데이터를 처음 몇 개 주성분에 투영해 차원을 줄이면서 변동을 최대한 보존하는 데 자주 쓰여요.
- 시계열: 시계열 예측·이상 탐지에 쓰여요.
ARIMA_PLUS,ARIMA_PLUS_XREG시계열 모델은 여러 튜닝 옵션을 제공하고 이상치·계절성·휴일을 자동 처리해요.
내부 훈련 모델은 CREATE MODEL 문에 dry run을 돌려 처리할 데이터량을 추정할 수 있어요.
외부 훈련 모델 (Externally trained models)
BigQuery ML 밖에서 Agent Platform에서 훈련된 모델들이에요.
- 심층 신경망 (DNN): 분류·회귀를 위한 TensorFlow 기반 심층 신경망
- Wide & Deep: 희소 입력(가능한 피처 값이 많은 범주형 피처)이 있는 대규모 회귀·분류 문제(추천 시스템, 검색, 랭킹)에 유용
- 오토인코더 (Autoencoder): 희소 데이터 표현을 지원하는 TensorFlow 기반 모델. 비지도 이상 탐지·비선형 차원 축소에 사용
- 부스티드 트리 (Boosted trees): XGBoost 기반 분류·회귀 모델
- 랜덤 포레스트 (Random forest): 훈련 시점에 여러 결정 트리를 만들어 분류·회귀에 사용
- AutoML: 테이블형 데이터로 분류·회귀 모델을 빠르고 대규모로 만드는 지도 ML 서비스
외부 훈련 모델은 CREATE MODEL 문에 dry run을 돌려 처리할 데이터량을 추정할 수 없어요.
원격 모델 (Remote models)
Agent Platform에 배포된 모델을 사용하는 원격 모델을 만들 수 있어요. 원격 모델 CREATE MODEL 문에 모델의 HTTPS 엔드포인트를 지정해 배포된 모델을 참조해요. 원격 모델의 CREATE MODEL 문은 바이트를 처리하지 않아 BigQuery 비용도 발생하지 않아요.
가져온 모델 (Imported models)
BigQuery 밖에서 훈련된 커스텀 모델을 Cloud Storage에서 가져와 BigQuery 안에서 예측을 수행할 수 있어요.
- ONNX: ML 모델을 표현하는 개방형 표준 포맷. PyTorch·scikit-learn 같은 인기 ML 프레임워크로 훈련된 모델을 BigQuery ML에서 쓸 수 있게 해줘요.
가격과 할당량
모델을 훈련하고 모델에 대해 쿼리를 실행할 때 컴퓨팅 리소스 사용량만큼 비용이 들어요. 모델에 대한 쿼리는 항상 BigQuery에서 실행되고 BigQuery 컴퓨팅 가격이 적용돼요. 원격 모델은 Agent Platform 모델을 호출하므로 Agent Platform 비용도 함께 들어요. 훈련된 모델의 스토리지도 BigQuery 스토리지 가격으로 과금돼요.
BigQuery ML 전용 한도에 더해, BigQuery ML 함수와 CREATE MODEL 문을 쓰는 쿼리는 쿼리 잡 할당량·한도도 적용받아요.
제한사항
BigQuery ML은 Standard 에디션에서는 사용할 수 없어요.