기존 슬롯 예약 작업
BigQuery Reservation API를 사용하면 전용 슬롯(약정)을 구입하고, 슬롯 풀(예약)을 만들고, 이러한 예약에 프로젝트, 폴더, 조직을 할당할 수 있습니다.
예약을 사용하면 워크로드에 전용 슬롯 수를 할당할 수 있습니다. 예를 들어 프로덕션 워크로드가 테스트 워크로드와 슬롯을 경합하는 경우가 발생하지 않아야 할 수 있습니다. 이를 위해서는 prod
라는 예약을 만들고 이 예약에 프로덕션 워크로드를 할당할 수 있습니다. 자세한 내용은 예약을 참조하세요.
예약 작성
필수 권한
예약을 만들려면 Identity and Access Management(IAM) 권한이 필요합니다.
- 약정의 소유권을 유지하는 관리 프로젝트의
bigquery.reservations.create
사전 정의된 다음의 각 IAM 역할에는 이 권한이 포함되어 있습니다.
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
BigQuery에서 IAM 역할에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
전용 슬롯이 있는 예약 만들기
다음 옵션 중 하나를 선택합니다.
콘솔
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
탐색 패널에서 용량 관리 섹션으로 이동합니다.
예약 생성을 클릭합니다.
예약 이름 필드에 예약 이름을 입력합니다.
위치 드롭다운 목록에서 위치를 선택합니다.
용량 모델 섹션에서 용량 모델을 선택합니다.
고정 요금 옵션을 선택한 경우 기준 슬롯에서 예약의 슬롯 수를 입력합니다.
- 최대 예약 크기 선택기 목록에서 최대 예약 크기를 선택합니다.
선택사항: 기준 슬롯 필드에 예약의 기준 슬롯 수를 입력합니다. 지정된 슬롯 용량만 사용하려면 유휴 슬롯 무시 전환 버튼을 클릭합니다.
사용 가능한 자동 확장 슬롯의 양은 최대 예약 크기 값에서 기준 슬롯 값을 빼서 결정됩니다. 예를 들어 기준 슬롯이 100개이고 최대 예약 크기가 400개인 예약을 만들면 예약의 자동 확장 슬롯은 300개입니다. 기준 슬롯에 대한 자세한 내용은 기준 및 자동 확장 슬롯이 있는 예약 사용을 참조하세요.
유휴 슬롯 공유를 중지하려면 유휴 슬롯 무시 전환 버튼을 클릭합니다.
슬롯 분석은 예상 비용 테이블에 표시됩니다. 예약 요약은 용량 요약 테이블에 표시됩니다.
저장을 클릭합니다.
새 예약이 예약 탭에 표시됩니다.
SQL
예약을 만들려면 CREATE RESERVATION
DDL 문을 사용합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, );
다음을 바꿉니다.
ADMIN_PROJECT_ID
: 예약 리소스를 소유하는 관리 프로젝트의 프로젝트 IDLOCATION
: 예약 위치 BigQuery Omni 위치를 선택하면 버전 옵션이 Enterprise 버전으로 제한됩니다.RESERVATION_NAME
: 예약 이름.소문자 또는 숫자로 시작하고 끝나야 하며 소문자, 숫자, 대시만 포함할 수 있습니다.
NUMBER_OF_BASELINE_SLOTS
: 예약에 할당할 기준 슬롯 수. 동일한 예약에slot_capacity
옵션 및edition
옵션을 설정할 수 없습니다.EDITION
: 예약 버전. 버전에 예약을 할당하면 기능 및 가격이 변경됩니다. 자세한 내용은 BigQuery 버전 소개를 참조하세요.NUMBER_OF_AUTOSCALING_SLOTS
: 예약에 할당된 자동 확장 슬롯 수. 최대 예약 크기 값에서 기준 슬롯 수를 뺀 값과 동일합니다.
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
예약을 만들려면 bq mk
명령어를 --reservation
플래그와 함께 실행합니다.
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation \ --slots=NUMBER_OF_BASELINE_SLOTS \ --ignore_idle_slots=false \ RESERVATION_NAME
다음을 바꿉니다.
ADMIN_PROJECT_ID
: 프로젝트 IDLOCATION
: 예약 위치. BigQuery Omni 위치를 선택하면 버전 옵션이 Enterprise 버전으로 제한됩니다.NUMBER_OF_BASELINE_SLOTS
: 예약에 할당할 기준 슬롯 수RESERVATION_NAME
: 예약 이름EDITION
: 예약 버전. 버전에 예약을 할당하면 기능 및 가격이 변경됩니다. 자세한 내용은 BigQuery 버전 소개를 참조하세요.NUMBER_OF_AUTOSCALING_SLOTS
: 예약에 할당된 자동 확장 슬롯 수. 최대 예약 크기 값에서 기준 슬롯 수를 뺀 값과 동일합니다.
--ignore_idle_slots
플래그에 대한 자세한 내용은 유휴 슬롯을 참조하세요. 기본값은 false
입니다.
Python
예약 업데이트
예약을 다음과 같이 업데이트할 수 있습니다.
- 슬롯을 추가하거나 삭제하여 예약 크기를 변경합니다.
- 이 예약의 쿼리가 유휴 슬롯을 사용하는지 여부를 구성합니다.
- 예약에 할당된 기준 또는 자동 확장 슬롯의 양을 변경합니다.
필수 권한
예약을 업데이트하려면 다음 Identity and Access Management(IAM) 권한이 필요합니다.
- 약정의 소유권을 유지하는 관리 프로젝트의
bigquery.reservations.update
사전 정의된 다음의 각 IAM 역할에는 이 권한이 포함되어 있습니다.
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
BigQuery에서 IAM 역할에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
예약 크기 변경
기존 예약에서 슬롯을 추가하거나 삭제할 수 있습니다.
콘솔
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
탐색 패널에서 용량 관리 섹션으로 이동합니다.
예약 탭을 클릭합니다.
업데이트할 예약을 찾습니다.
작업 옵션을 확장합니다.
수정을 클릭합니다.
최대 예약 크기 선택기 대화상자에 최대 예약 크기를 입력합니다.
기준 슬롯 필드에 기준 슬롯 수를 입력합니다.
저장을 클릭합니다.
SQL
예약 크기를 변경하려면 ALTER RESERVATION SET OPTIONS
데이터 정의 언어(DDL) 문을 사용합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
ALTER RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` SET OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, );
다음을 바꿉니다.
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
예약 크기를 업데이트하려면 bq update
명령어를 --reservation
플래그와 함께 사용합니다.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --slots=NUMBER_OF_BASELINE_SLOTS \ --reservation RESERVATION_NAME
다음을 바꿉니다.
ADMIN_PROJECT_ID
: 프로젝트 IDLOCATION
: 예약 위치NUMBER_OF_BASELINE_SLOTS
: 예약에 할당할 기준 슬롯 수RESERVATION_NAME
: 예약 이름
Python
쿼리에서 유휴 슬롯을 사용할지 구성
--ignore_idle_slots
플래그는 예약에서 실행 중인 쿼리가 다른 예약의 유휴 슬롯을 사용할 수 있는지 여부를 제어합니다. 자세한 내용은 유휴 슬롯을 참조하세요. 기존 예약에서 이 구성을 업데이트할 수 있습니다.
예약을 업데이트하려면 bq update
명령어를 --reservation
플래그와 함께 실행합니다. 다음 예시에서는 --ignore_idle_slots
를 true
로 설정합니다. 즉, 예약이 예약에 할당된 슬롯만 사용합니다.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --ignore_idle_slots=true \ --reservation RESERVATION_NAME
다음을 바꿉니다.
ADMIN_PROJECT_ID
: 프로젝트 IDLOCATION
: 예약 위치RESERVATION_NAME
: 예약 이름
유휴 슬롯 구성 나열
예약의 유휴 슬롯 설정을 나열하려면 다음을 수행합니다.
SQL
INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT
뷰의 ignore_idle_slots
열을 쿼리합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
SELECT reservation_name, ignore_idle_slots FROM `ADMIN_PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT;
다음을 바꿉니다.
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
bq ls
명령어를 --reservation
플래그와 함께 사용합니다.
bq ls --reservation \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION
다음을 바꿉니다.
ignoreIdleSlots
필드에는 구성 설정이 포함됩니다.
예약 삭제
예약을 삭제하면 현재 해당 예약의 슬롯에서 실행 중인 모든 작업이 실패합니다. 오류를 방지하려면 예약을 삭제하기 전에 실행 중인 작업이 완료될 수 있도록 합니다.
필수 권한
예약을 삭제하려면 다음 Identity and Access Management(IAM) 권한이 필요합니다.
- 약정의 소유권을 유지하는 관리 프로젝트의
bigquery.reservations.delete
사전 정의된 다음의 각 IAM 역할에는 이 권한이 포함되어 있습니다.
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
BigQuery에서 IAM 역할에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
예약 삭제
콘솔
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
탐색 패널에서 용량 관리 섹션으로 이동합니다.
예약 탭을 클릭합니다.
삭제할 예약을 찾습니다.
작업 옵션을 확장합니다.
삭제를 클릭합니다.
예약 삭제 대화상자에서 삭제를 클릭합니다.
SQL
예약을 삭제하려면 DROP RESERVATION
DDL 문을 사용합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
DROP RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`;
다음을 바꿉니다.
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
예약을 삭제하려면 bq rm
명령어를 --reservation
플래그와 함께 실행합니다.
bq rm \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation RESERVATION_NAME
다음을 바꿉니다.
Python
VPC 서비스 제어에 BigQuery Reservation API 추가
BigQuery Reservation API는 VPC 서비스 제어를 지원합니다. BigQuery Reservation API를 VPC 서비스 제어와 통합하려면 서비스 경계 만들기의 안내를 따르고 BigQuery Reservation API를 보호된 서비스에 추가합니다.
서비스 경계는 경계에 지정된 관리 프로젝트 내 예약, 약정, 할당에 대한 액세스를 보호합니다. 할당을 만들 때 VPC 서비스 제어에서 관리 프로젝트와 담당자 프로젝트, 폴더, 조직을 보호합니다.