Big Query에서 쿼리를 날릴때 처리되는 용량을 가지고 요금이 매겨지는데, 그래서 "실행시 이 쿼리가 xxbyte 를 처리합니다" 라는 곳을 유심히 지켜봐야한다. Big Query에서는 테이블을 날짜별, 시간별, 또는 정수 기준으로 나눈 파티션을 나눈 테이블을 지원하는데, 이를 이용하면 처리되는 데이터의 양을 대폭 줄일 수 있다.
파티션 테이블을 사용하지 않았을때
다음은 <프로젝트 아이디.테이블 명.*> 으로 집어서 쿼리를 날렸을때 처리되는 데이터 양이다.
SELECT event_timestamp, user_pseudo_id, param, user_id
FROM `table-1605078626536.analytics_252952500.*`,
UNNEST(event_params) as param
WHERE event_name = 'full_banner'
AND param.key = 'action_parameter'
AND event_date = '20210525'
무려 30GB를 처리한다고한다.
날짜 파티션 테이블을 사용했을때
이 쿼리는 어처피 21년 05월 25일의 데이터만을 조회할 것이므로 날짜 파티션 테이블을 이용하면 된다.
SELECT event_timestamp, user_pseudo_id, param, user_id
FROM `table-1605078626536.analytics_252952500.events_20210525`,
UNNEST(event_params) as param
WHERE event_name = 'full_banner'
AND param.key = 'action_parameter'
결과는 ?? 파티션 테이블을 사용하지 않았을때와 거의 1000배 비용 차이가난다.
'프로그래밍 > SQL' 카테고리의 다른 글
Public Key Retrieval is not allowed 해결방법 (0) | 2022.05.06 |
---|---|
MySQL Database 주기적으로 자동 백업하는 법 (0) | 2022.02.14 |
[Big Query] 빅 쿼리 UNNEST 사용법 / 개념 (2) | 2021.03.18 |
[MySQL] Too many connections 문제 해결 : max_connections 설정하기 (0) | 2019.03.12 |
MYSQL 터미널 접속방법 (0) | 2017.12.20 |