구글 클라우드 인사이트 구글 빅쿼리 INFORMATION_SCHEMA 구글 인사이트 by Miyeon. Jo 2022년 05월 10일 2022년 05월 10일 575 목차Information schema 개요Information schema 종류Information schema 기본 사용 방법(예제)분당 총 슬롯 사용량 확인1. Information Schema 개요메타 정보(테이블, 루틴, 예약, 작업, 스트리밍 데이터에 대한 메타작업)를 모아둔 뷰입니다. 쿼리는 표준 SQL 구문이어야 하고, DDL 문에서는 사용할 수 없다는 특징을 가지고 있습니다. 테이블이 생성된 시간, 가장 많이 업데이트되는 테이블등의 세부 정보, 또 한 문제를 일으키는 쿼리를 식별하고 평균 쿼리 시간도 Information Schema를 통해서확인할 수 있습니다. Information Schema 종류 및 필요한 정보를 어떻게 얻고, 활용하는지 알아보도록 하겠습니다.2. Information Schema 종류INFORMATION_SCHEMA 뷰리소스 유형INFORMATION_SCHEMA.SCHEMATA데이터 세트INFORMATION_SCHEMA.SCHEMATA_OPTIONS데이터 세트 옵션INFORMATION_SCHEMA.JOBS_BY_*작업INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*작업 타임라인INFORMATION_SCHEMA.OBJECT_PRIVILEGES액세스 제어INFORMATION_SCHEMA.RESERVATION*예약INFORMATION_SCHEMA.CAPACITY_COMMITMENT*예약 용량 약정INFORMATION_SCHEMA.ASSIGNMENT*예약 할당INFORMATION_SCHEMA.ROUTINES루틴INFORMATION_SCHEMA.ROUTINE_OPTIONS루틴 옵션INFORMATION_SCHEMA.PARAMETERS루틴 매개변수INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_*스트리밍 데이터INFORMATION_SCHEMA.TABLE*테이블INFORMATION_SCHEMA.COLUMN*테이블 열INFORMATION_SCHEMA.PARTITIONS테이블 파티션INFORMATION_SCHEMA.TABLE_SNAPSHOTS테이블 스냅샷INFORMATION_SCHEMA.VIEWS뷰INFORMATION_SCHEMA.SESSIONS_BY_*세션3. Information Schema 기본 사용 방법(예제)① 단일 데이터세트에서 만들어진 모든 테이블에 대한 모든 세부 정보 찾기SELECT * FROM `MyDatabase`.INFORMATION_SCHEMA.TABLES; ② 발생 횟수와 함께 모든 열 이름 표시SELECT column_name, COUNT(table_name) as No_times_occ FROM`MyDatabase`.INFORMATION_SCHEMA.COLUMN; ③ 특정 데이터 유형의 열에 대한 테이블 경로 얻기SELECT CONCAT(table_catalog,".",table_schema,".",table_name) AS table_path, table_name, column_name,data_type FROM`MyDatabase`.INFORMATION_SCHEMA.COLUMNS` WHERE 데이터 유형 = 'INT64' 4. 분당 총 슬롯 사용량 확인SELECT res.period_start, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slot_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() GROUP BY period_start ORDER BY period_start DESC 출처https://hevodata.com/learn/bigquery-information-schema/https://cloud.google.com/bigquery/docs/information-schema-intro?hl=kohttps://hevodata.com/learn/bigquery-information-schema/#2