안녕하세요, 

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "사용하지 않는 테이블만 조회하는 방법"을 다루고자 합니다.



사용하지 않는 테이블 조회


오랫동안 쿼리 조회를 안 한 미 사용된 테이블을 확인하기 위해서는 INFORMATION SCHEMA에서 쿼리를 사용하여 며칠 이상 쿼리 조회조차 안 한 테이블들을 확인 할 수 있습니다.


아래와 같은 내용의 쿼리를 사용하여 INFORMATION SCHEMA의 메타데이터를 조회합니다.

※ 아래 쿼리문은 최근 3개월간 쿼리 되지 않은 테이블을 조회합니다.

----------------------------------------------------------------------------------------------------

WITH temp1 AS (

  SELECT t.table_name AS table_id

  FROM `[프로젝트 ID]`.`region-[리전]`.INFORMATION_SCHEMA.SCHEMATA d

  JOIN `[프로젝트 ID]`.`region-[리전]`.INFORMATION_SCHEMA.TABLES t

    ON d.catalog_name = t.table_catalog

    AND d.schema_name = t.table_schema

  WHERE 1 = 1

), temp2 AS (

  SELECT DISTINCT rf.table_id

  FROM `region-[리전]`.INFORMATION_SCHEMA.JOBS_BY_PROJECT a

  INNER JOIN UNNEST(referenced_tables) AS rf ON 1 = 1

  WHERE 1 = 1

    AND DATE(a.creation_time) >= DATE_SUB(CURRENT_DATE(), INTERVAL 3 MONTH) 

    AND a.job_type = "QUERY"

    AND a.statement_type <> "SCRIPT"

)

SELECT a.*

FROM temp1 a

LEFT JOIN temp2 b

  ON (a.table_id = b.table_id)

WHERE b.table_id IS NULL;

----------------------------------------------------------------------------------------------------


  • 빅쿼리 콘솔에서 사용하는 것 말고 파이프라인, 컴포저등에서 테이블을 사용할 경우 where 절를 job_type을 삭제하셔도 됩니다. 파이프라인에서 적용되는 테이블은 “LOAD QUERY “등으로  조회 될 때가 있습니다.




관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.