-
현재 회사에서 BigQuery 테이블에 앱에서 발생된 사용자 로그를 BigQuery Streaming Insert 기능을 통해 로딩 하고있는 상황 인데, 쿼리 비용을 조사하던 중 Insert Into Query에서는 비용이 발생되지 않는 것을 발견 했다! 그렇다면 구지 돈을 써가면서 Streaming Inserts기능을 사용할 필요가 있을까? Streaming Insert 방식과 Insert Into Query로 데이터를 테이블에 넣는 방식은 서로 어떤 차이점이 있는지 궁금해 졌고, 각 방법의 차이에 대해 조사 한 내용을 정리했다.
💰 먼저 돈에 대한 부분에 대해 알아보자
Streaming Insert price VS Insert Into DML Query price
1. Streaming Insert Price
(서울리전 기준, 기본 제공되는 공유 슬롯 풀 사용)
매월 200MB 당 0.012$ 가 청구된다.
만약 한달에 1TB 만큼 데이터가 Streaming Insert로 들어간다면
데이터 Insert에만 (1000*1000/200)*0.012 = 60$ 정도 과금이 되는 상황이다.
2. Insert Into DML Query Price
(서울리전 기준, On-demand 결제 모델의 경우)
Insert DML 문의 경우 쿼리로 스캔한 테이블에서 참조된 각 열 데이터에 대해서만 처리한 바이트 수를 산정 하는 것 같다. 그럼 Insert 문으로는 얼마의 쿼리 스캔이 발생하는 것일까?
간단하게 테스트로 행 1024개를 Insert DML 문으로 삽입해 보았다.
처리한 바이트가 0B 로 단순 Insert Into 문에는 쿼리로 처리한 바이트가 없었다.
좀더 자세한 로그를 확인하고 싶어서 BigQuery "query_job_completed" 이벤트를 확인해 보았다.
BigQuery의 "query_job_completed" 이벤트를 얻는 방법은 아래 링크의 방식 참고했다.
위 링크를 참고해 만든 query_job_completed 이벤트를 확인 할 수 있는 대시보드에 방금 수행한 INSERT INTO 쿼리 의 청구 쿼리 용량은 실제로 null로 잡혀있었다.
즉 따로 쿼리로 스캔이 일어나지 않았으므로 Insert DML Query로 데이터 삽입 작업을 수행했을때 비용이 청구되지 않은것을 확인 할 수 있었다.
비용 비교 결론 :
- Streaming Insert Price : (비용 발생 O, 1달기준 1TB 당 60$)
- Insert Into DML Query Price : 비용 발생 X
다음 포스트에서는 각 방식의 특징에 대해 정리를 하겠다.
'🏢 업무 리서치 기록' 카테고리의 다른 글
로그인 기능 구현의 과정 (feat. OAuth2.0 와 JWT) (0) 2022.12.16 OLTP VS OLAP (feat. 트랜잭션 ACID 특성) (0) 2022.12.15 ssh 포트포워딩(터널링) 뚫기 (feat. 로컬에서 AWS VPC내 RDS 접속하기) (3) 2022.12.15 YouTube 데이터와 친해지기 (2) - Channel Reports VS Content Owner Reports (1) 2022.12.01 YouTube 데이터와 친해지기 (1) - YouTube Analytics API VS YouTube Reporting API (0) 2022.10.27