RESERVATIONS_TIMELINE 뷰
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
뷰에는 각 예약 관리자 프로젝트에 대한 예약 메타데이터의 거의 실시간 구획이 분 단위로 표시됩니다. 슬롯 사용량과 슬롯 용량을 비교하려면 예약 타임라인 뷰를 사용하여 예약 정보를 작업 타임라인과 결합할 수 있습니다.
스키마
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
뷰를 쿼리하면 모든 BigQuery 예약의 1분당 하나의 행이 쿼리 결과에 포함됩니다. 각 기간은 1분 간격으로 시작하고 정확히 1분 동안 지속됩니다.
INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
뷰에는 다음과 같은 스키마가 있습니다.
열 이름 | 데이터 유형 | 값 |
---|---|---|
period_start |
TIMESTAMP |
이 1분 기간의 시작 시간 |
project_id |
STRING |
예약 관리 프로젝트의 ID |
project_number |
INTEGER |
프로젝트의 번호 |
reservation_name |
STRING |
예약 이름 |
ignore_idle_slots |
BOOL |
슬롯 공유가 사용 설정되어 있으면 false, 그렇지 않으면 true입니다. |
slots_assigned |
INTEGER |
이 예약에 할당된 슬롯 수 |
slots_max_assigned |
INTEGER |
슬롯 공유를 포함하여 이 예약의 최대 슬롯 용량. ignore_idle_slots 가 true이면 이 값은 slots_assigned 와 동일하며, 그렇지 않으면 관리 프로젝트에 있는 모든 용량 약정의 총 슬롯 수입니다. |
autoscale |
STRUCT |
예약의 자동 확장 용량에 대한 정보입니다. 필드에는 다음이 포함됩니다.
|
reservation_id |
STRING |
jobs_timeline 테이블과 조인. 형식은 project_id:location.reservation_name입니다. |
범위 및 구문
이 뷰에 대한 쿼리에는 리전 한정자가 있어야 합니다. 리전 한정자를 지정하지 않으면 모든 리전에서 메타데이터가 검색됩니다. 다음 표에서는 이 뷰의 리전 범위와 리소스 범위를 설명합니다.
뷰 이름 | 리소스 범위 | 리전 범위 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_BY_PROJECT] |
프로젝트 수준 | REGION |
- (선택사항)
PROJECT_ID
: Google Cloud 프로젝트의 ID입니다. 지정하지 않으면 기본 프로젝트가 사용됩니다. REGION
: 모든 데이터 세트 리전 이름입니다. 예를 들면region-us
입니다.
예시
예시: 분당 총 슬롯 사용량 보기
기본 프로젝트가 아닌 프로젝트에 대해 쿼리를 실행하려면
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION형식으로 프로젝트 ID를 추가합니다. 예를 들면
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
입니다.
다음 예시에서는 모든 작업에서 YOUR_RESERVATION_ID
에 할당된 프로젝트의 분당 슬롯 사용량을 보여줍니다.
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 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() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
결과는 다음과 비슷합니다.
+-----------------------+---------------------+---------------+-------------------+ | period_start | period_slot_minutes | slots_assigned| slots_max_assigned| +-----------------------+---------------------+---------------+-------------------+ |2021-06-08 21:33:00 UTC| 100.000 | 100 | 100 | |2021-06-08 21:32:00 UTC| 96.753 | 100 | 100 | |2021-06-08 21:31:00 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+---------------+-------------------+
예시: 예약별 슬롯 사용량
다음 예시에서는 마지막 날짜의 각 예약에 대한 분당 슬롯 사용량을 보여줍니다.
SELECT res.period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slots_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 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() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
결과는 다음과 비슷합니다.
+-----------------------+----------------+---------------------+---------------+--------------------+ | period_start | reservation_id | period_slot_minutes | slot_assigned | slots_max_assigned | +-----------------------+----------------+---------------------+---------------+--------------------+ |2021-06-08 21:33:00 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:00 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:00 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:00 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+---------------+--------------------+