Google Bigquery 쓰면서 알게된 것들 정리
쿼리 결과가 너무 크면 결과 테이블을 설정에서 따로 지정해야한다.
미리 경고 안해주고 쿼리 실행 중간에 터진다.
한 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/
쓰다보니 몇 개 없는데 일하다가 알게된 거 있으면 더 추가하겠습니다.