Goolge Bigquery는 상당히 많은 기능을 지원한다. SQL부터 ML, 스케줄링, 데이터 분석 등 데이터가 들어가는 직군에 종사 한다면 모를 수가 없다. 그만큼 편하고 쉽다. 처음 접한다고 어렵게 생각 했던게 부끄러울 정도로 안되는 것보다 되는 것이 많다.
Bigquery란?
BigQuery는 머신러닝, 지리정보 분석, 비즈니스 인텔리전스와 같은 기본 제공 기능으로 데이터를 관리하고 분석할 수 있게 해주는 완전 관리형 엔터프라이즈 데이터 웨어하우스입니다. BigQuery의 서버리스 아키텍처에서는 SQL 쿼리를 사용하여 제로 인프라 관리에 관한 조직의 가장 큰 질문을 해결할 수 있습니다. BigQuery의 확장 가능한 분산형 분석 엔진을 통해 테라바이트급 쿼리를 초 단위로 수행하고 페타바이트급 쿼리를 분 단위로 쿼리할 수 있습니다.
BigQuery는 데이터를 분석하는 Compute Engine을 스토리지 옵션과 구분함으로써 유연성을 극대화합니다. BigQuery 내에서 데이터를 저장 및 분석하거나 BigQuery를 사용하여 저장된 위치에서 데이터에 액세스할 수 있습니다. 통합 쿼리를 통해 외부 소스의 데이터를 읽고 스트리밍으로 연속 데이터 업데이트를 지원합니다. BigQuery ML 및 BI Engine과 같은 강력한 도구를 사용해서 해당 데이터를 분석하고 이해할 수 있습니다.
BigQuery 인터페이스에는 Google Cloud 콘솔 인터페이스 및 BigQuery 명령줄 도구가 포함됩니다. 개발자 및 데이터 과학자는 Python, 자바, 자바스크립트, Go는 물론 BigQuery의 REST API 및 RPC API와 같은 익숙한 프로그래밍 언어의 클라이언트 라이브러리를 사용하여 데이터를 변환 및 관리할 수 있습니다. ODBC 및 JDBC 드라이버는 타사 도구 및 유틸리티를 포함하여 기존 애플리케이션과 상호작용할 수 있습니다.
데이터 분석가, 데이터 엔지니어, 데이터 웨어하우스 관리자, 데이터 과학자는 BigQuery ML 문서를 통해 데이터 도구를 검색, 구현, 관리하여 중요한 비즈니스 의사결정을 내릴 수 있습니다. #google
Bigquery ML이란?
지원하는 모델은 선형회귀, 로지스틱 회귀, K-means clustering, PCA 등 다양한 Machine Learning 함수를 사용할 수 있다. 또한 Google에서 밀고 있는 VERTEX AI를 일부 REMOTE로 사용 가능하다. 무엇보다 SQL로 구현이 가능하기에 기존에 데이터 종사자가 무리 없이 쉽게 사용이 가능하다. (돈이 많다면)
BigQuery ML에서는 GoogleSQL 쿼리를 사용하여 머신러닝 모델을 만들고 실행할 수 있습니다. BigQuery ML은 SQL 실무자가 기존 SQL 도구와 기술을 사용하여 모델을 빌드할 수 있게 하여 머신러닝을 범용화합니다. BigQuery ML을 사용하면 데이터를 이동할 필요가 없어 개발 속도가 향상됩니다.
다음을 사용하여 BigQuery ML 기능을 사용할 수 있습니다.
- Google Cloud Console
- bq 명령줄 도구
- BigQuery REST API
- Jupyter 노트북 또는 비즈니스 인텔리전스 플랫폼과 같은 외부 도구
대규모 데이터 세트의 머신러닝에는 ML 프레임워크에 대한 광범위한 프로그래밍과 지식이 필요합니다. 이러한 요구사항 때문에 각 회사 내 극소수 직원만 솔루션 개발을 담당할 수 있으며, 데이터를 이해하지만 머신러닝과 프로그래밍 전문 지식이 별로 없는 데이터 분석가는 개발에 참여하지 못합니다.
BigQuery ML을 사용하면 데이터 분석가가 기존 SQL 도구와 기술을 통해 머신러닝을 사용할 수 있습니다. 분석가는 BigQuery ML을 사용하여 BigQuery에서 ML 모델을 빌드하고 평가할 수 있습니다. 분석가는 소량의 데이터를 스프레드시트 또는 다른 애플리케이션으로 내보내거나 데이터 과학자 팀의 제한된 리소스를 기다릴 필요가 없습니다.
[ 가격정책 ]
storage는 별도의 금액을 받지만 사용량에 따라 아래 가격(주문제)과 같고 종량제는 1TB단위로 받는다. 매월 1TB 까지 무료이다.(1TB나 주는 구나 좋아했지만 Test 해보니 많이 지원되는 편은 아니다. 요즘 기업에서 다루는 데이터 크기는 기본 GB이상이 대부분임을 감안하면 ,,)
[Train 비용]
Bigquery에서 지원하는 ML을 활용해보자 (ARIMA)
Train
(1) 모델 Table 선언(모델이 저장될 공간)
CREATE OR REPLACE MODEL bigquery_ml.arima_model
(2) model configure - ARIMA, 각 parameter의 타입을 지켜야한다.
OPTIONS(
MODEL_TYPE='ARIMA',
TIME_SERIES_TIMESTAMP_COL=[DATE],
TIME_SERIES_DATA_COL=[INPUT_COL],
TIME_SERIES_ID_COL=[INDEX_COL],
HOLIDAY_REGION='KR'
)
{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL}
model_name
OPTIONS(MODEL_TYPE = 'ARIMA'
[, TIME_SERIES_TIMESTAMP_COL = string_value ]
[, TIME_SERIES_DATA_COL = string_value ]
[, TIME_SERIES_ID_COL = string_value ]
[, HORIZON = int64_value ]
[, AUTO_ARIMA = { TRUE | FALSE } ]
[, AUTO_ARIMA_MAX_ORDER = int64_value ]
[, NON_SEASONAL_ORDER = (int64_value, int64_value, int64_value) ]
[, DATA_FREQUENCY = { 'AUTO_FREQUENCY' | 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'YEARLY' } ]
[, INCLUDE_DRIFT = { TRUE | FALSE } ]
[, HOLIDAY_REGION = { 'GLOBAL' | 'NA' | 'JAPAC' | 'EMEA' | 'LAC' | 'AE' | ... } ])
AS query_statement
AUTO_ARIMA 또한 지원한다. AUTO_ARIMA시 p, d, q를 바꿔가면서 수행하기 때문에 수행 횟수에 사용 데이터 크기를 곱한 만큼 가격이 측정되기 때문에 사용시 주의 해야한다.
* 시계열 model은 현재 ARIMA와 선형회귀 ARIMA_PLUS Multi Variables만을 지원
(3) 전체 흐름은 CTE(Common Table Expressions)와 같다.
CREATE OR REPLACE MODEL bigquery_ml.arima_model
OPTIONS(
MODEL_TYPE='ARIMA',
TIME_SERIES_TIMESTAMP_COL='dt',
TIME_SERIES_DATA_COL='count',
TIME_SERIES_ID_COL='name',
HOLIDAY_REGION='KR'
) AS
WITH
SELECT dt
, name
, count
FROM example_table
;
Predict
예측할 기간과 신뢰 구간(confidence level), 예측 범위(horizon)을 설정 후 ARIMA Model을 사용해 예측을 수행한다.
SELECT *
FROM ML.FORECAST(MODEL `bigquery_ml.arima_model`, STRUCT(30 AS horizon, 0.5 AS confidence_level))
;
Scheduling 자동화
Bigquery에서 작성한 쿼리를 [일정]에 등록시켜 스케줄링으로 관리 가능하다. (배치 작업)
등록된 쿼리는 [예약된 쿼리]를 보면 예약된 시간과 일정을 확인 할 수 있다.
Bigquery하나만으로 pipeline과 같은 작업을 한번에 해결되었다. 빨리 다른 좋은 모델도 추가되었으면 하는 바람이 있다. 요즘 딥러닝과 같은 high-level의 model을 사용해 예측을 많이 수행하는데 경우에 맞지 않게 사용되는 일이 많다. 견문발검하지 말고 가장 단순한 방법으로 충분히 적용하고 한단계씩 올려가는 것을 추천한다.
과거에 SQL을 잘 다루기 꺼려한 나는 python이나 R부터 키고 모형 돌리고 csv로 저장하고 옮기는 수작업을 반복했을 것이다. Cloud가 어디든 떠 있는 지금은 대부분의 일이 자동화 되어 간다. 한가지 방법만 고수하지 말고 지름길을 적절히 사용해야 하는 시대에 따라가려면 자동화와 관리를 항상 염두하자.
'Statistics' 카테고리의 다른 글
Auto ARIMA Summary 설명 (0) | 2023.09.01 |
---|---|
고차원에서 국소적 방법(interpolate->extrapolate) (0) | 2022.08.04 |