빅쿼리(BigQuery)의 특정 테이블의 행 개수와 용량 산출에 대해 알아보자.
개요
빅쿼리(BigQuery)를 사용하면 용량 또는 쿼리가 선택하는 데이터 규모에 따른 비용 산출은 누구나 걱정하는 부분이다. GCP에서 비용 계산기를 제공하긴 하지만 특정 테이블의 행 개수와 용량을 직접 확인하는 것이 필요할 때가 있다. 그리고 단일 테이블이 아닌 다중 테이블을 한 번에 조회하는 방법도 알아보자.
상세 페이지 확인
특정 테이블을 클릭하게 되면 기본적으로 해당 테이블의 “스키마” 정보 탭이 자동 선택되는데 해당 탭 오른쪽 바로 옆에 “세부정보” 탭이 있다. 해당 탭 화면에서 스크롤을 조금만 내리면 “스토리지 정보” 항목에서 해당 테이블의 행 개수와 총 용량을 확인할 수 있다.
쿼리 기반 확인
특정 데이터셋의 “INFORMATION_SCHEMA.PARTITIONS”에 있는 테이블 정보를 조회하면 테이블의 행 개수와 용량을 확인할 수 있다. 해당 테이블의 각 필드에 대한 설명은 다음과 같다.
변수명 | 설명 |
---|---|
table_catalog | 프로젝트 명 |
table_schema | 데이터셋 명 |
table_name | 테이블 명 |
partition_id | 파티션 식별자 |
total_rows | 테이블 행 개수 |
total_logical_bytes | 테이블 용량 |
total_billable_bytes | 테이블 과금 용량 |
last_modified_time | 최종 수정 시각 |
storage_tier | 저장소 등급 |
단일 테이블 확인
프로젝트 내부의 특정 데이터셋의 특정 테이블 정보를 조회하고자 한다면 다음과 같은 쿼리를 작성하면 된다.
1 | SELECT * FROM `{데이터셋 명}`.INFORMATION_SCHEMA.PARTITIONS |
만약 다른 프로젝트의 데이터셋에 있는 테이블 정보를 조회하고 싶다면 다음과 같이 쿼리를 수정하면 된다. 여기서 프로젝트 ID가 아닌 프로젝트 명을 사용하지 않도록 조심하자.
1 | SELECT * FROM `{프로젝트 ID}.{데이터셋 명}`.INFORMATION_SCHEMA.PARTITIONS |
그리고 크기 확인에 도움이 되는 정보만 뽑자면 다음과 같이 쿼리를 작성하면 된다. 참고로 “total_logical_bytes”는 바이트 단위이며, 과금 계산은 테라바이트 단위로 하기 때문에 “pow(2, 40)”을 나누는 것도 좋다. 그리고 해당 필드 대신 “total_billable_bytes”를 사용하는 것도 좋다.
1 | SELECT |
다중 테이블 확인
앞의 쿼리를 작성하면서 충분히 이해했겠지만, 특정 데이터셋의 모든 테이블 정보를 조회하고자 한다면 다음과 같은 쿼리를 작성하면 된다.
1 | SELECT * FROM `{데이터셋 명}`.INFORMATION_SCHEMA.PARTITIONS; |
그리고 원하는 정보만 뽑자면 다음과 같이 쿼리를 작성하면 된다.
1 | SELECT |
특정 데이터셋의 모든 테이블의 크기를 취합하고자 한다면 다음과 같이 쿼리를 작성하면 된다.
1 | SELECT |