Google Bigquery 쓰면서 알게된 것들 정리

김희규
2 min readNov 9, 2022
Photo by Pawel Czerwinski on Unsplash

쿼리 결과가 너무 크면 결과 테이블을 설정에서 따로 지정해야한다.

미리 경고 안해주고 쿼리 실행 중간에 터진다.

한 row의 최대 크기는 100MB 이다.

https://cloud.google.com/bigquery/quotas#query_jobs

사파리 버그

주기적으로 실행되는 쿼리를 웹 콘솔에서 사용하려면 크롬에서 해야된다… 그 외에도 뭔 버그가 있을지 몰라서 이걸 겪은 이후로는 그냥 크롬에서 쓴다.

GCS로 테이블 추출

table extract는 크기가 너무 크면 안된다. 이 때는 Cloud Shell 열고 해야된다.

bg extract \
--destination_format=JSON \
PROJECT_NAME \
gs://target/*.jsonl

GCS에서 압축된 파일을 불러오고 싶으면

스토리지 오브젝트마다 메타데이터에 Content-type: gzip 설정이 되어있어야 하는 것 같다(기억이 가물..)

빠르다

수십억 row 몇 TB 용량 테이블간의 join연산도 40분만에 끝내는 구글은 신이야.

복잡한 구조의 테이블을 접근하는 방법

List, Dict 구조로 되어있는 필드에 접근하고 얘네들을 이용해서 join같은 각종 복잡한 연산을 하려면 유틸리티 함수들을 만들어서 접근한다. 왜 공식 함수로 지원해주는게 없는지 모르겠다. 이 링크의 게시물이 정말 큰 도움이 됬다. 특히 Firebase Analytics 쓸 때는 필수이다.

https://zzsza.github.io/gcp/2020/04/12/bigquery-unnest-array-struct/

쓰다보니 몇 개 없는데 일하다가 알게된 거 있으면 더 추가하겠습니다.

--

--

김희규

나는 최고의 선수다. 나를 최고라고 믿지 않는 사람은 최고가 될 수 없다.