빅쿼리 파티션 테이블의 중요성 | 비용 절감

빅쿼리 파티션 테이블의 중요성 - 썸네일

사내에서 빅쿼리 및 루커스튜디오(대시보드)를 구축하면서 파티션 테이블에 대한 중요성을 몸소 깨닫게 되어 이렇게 포스팅으로 남겨보려고 합니다.

 

비용을 절감하려면 파티션 테이블을 사용해야한다는 건 알고 있었지만 저희 회사의 웹로그 데이터가 엄청나게 방대한 수준은 아니다보니 많이 체감을 못했었는데요.

 

최근에 대시보드용 테이블을 만들면서 엄청난 비용 상승과 파티션 테이블로 절감을 맛보게 되었습니다🫠

 

갑자기 빅쿼리 비용이 증가한 이유?

저희 회사에서는 GA4 데이터를 빅쿼리로 Export하여 데이터를 확인하고 있고 전체 PV 또는 주요 페이지의 PV, 주요 이벤트를 묶어서 테이블 별로 관리하고 있습니다. 데이터 양이 많은 테이블의 경우에는 파티션(Partition) 처리를 하고 있긴 합니다.

GA4와 빅쿼리 Export 및 ETL 예시

다만 대시보드용 테이블을 만들때는 이런저런 테이블을 조인하여 조인된 컬럼 값들을 필터로 사용하는 등 처리 용량이나 저장 용량이 추가적으로 늘어나기 마련인데 대시보드용 테이블에는 파티션 처리를 하지 않아 특히 루커스튜디오 리포트 비용이 엄청나게 발생했었습니다.

 

지금에서야 당연하다고 생각되지만 그 당시에는 왜 생각나지 않은 건지.. 아무래도 1차 가공된 테이블을 기준으로 쿼리를 짰기 때문에 당연히 비용이 얼마 나오지 않겠지 생각했던 것 같네요.

 

쿼리 비용이 많이 나왔던 이유?

파티션 테이블이 아닌 경우에 쿼리를 조회할 때는 모든 데이터를 스캔하게 됩니다.

루커스튜디오 기간 필터

루커 스튜디오에서 대시보드를 확인할 때 보통 기간을 선택해서 필요한 기간의 데이터를 확인하는 경우가 굉장히 많습니다.

저희는 대시보드용 테이블을 만들어서 해당 테이블을 빅쿼리와 연동 후 대시보드를 구성하는데요. 만약에 이 대시보드 테이블이 파티션 적용이 되어 있지 않다면 저 기간을 선택해도 모든 기간의 데이터를 스캔하게 됩니다.

 

하지만 날짜 데이터(일)을 기준으로 파티션 처리를 하고 대시보드에서 기간 필터를 선택한다면 해당 기간의 데이터만 스캔하고 보여주게 되어 필터 선택 이후의 데이터 로드 속도도 체감 상 많이 높아졌던 것 같아요!

 

그리고 날짜 디폴트 값을 선택할 수 있는데 '자동기간'을 선택해두면 보통 긴 기간이 선택되기 때문에 파티션 테이블이긴 해도 대시보드에 접속하자마자 넓은 범위의 데이터를 스캔하게 됩니다.

 

그래서 날짜 필터의 디폴트 값도 '이번달'이나 '최근 7일'과 같이 기본적으로는 짧은 기간을 디폴트 값으로 설정하는 것도 비용을 줄이는 방법 중 하나입니다!

 

루커스튜디오 + 빅쿼리 비용 줄이는 법

  • 대시보드용 테이블도 날짜 값을 기준으로 파티션 테이블로 만들기
  • 루커스튜디오 기간(날짜) 필터를 짧은 기간으로 디폴트값 설정하기

위 형태로 테이블 및 대시보드 날찌 필터 디폴트 값을 변경함으로서 약간의 과장을 더 해서 한 대시보드 기준으로 한 달 기준 몇 십만원의 비용 절감을 하게 되었습니다.

 

처음에는 쿼리 최적화 등을 작업하려고 했었는데.. 간단하게(?) 해결 할 수 있어서 다행인 이슈였습니다.

 

마케터로서 데이터 관리하기가 쉽지 않네요🙃