기존 예약 소개
BigQuery 예약을 사용하면 주문형 가격 책정에서 용량 기반 가격 책정으로 전환할 수 있습니다. 용량 기반 가격 책정의 경우 각 쿼리에 대해 개별적으로 비용을 지불하는 대신 전용 또는 자동 확장되는 쿼리 처리 용량에 따라 비용을 지불합니다.
예약을 사용하면 슬롯 단위로 측정되는 쿼리 용량을 서로 다른 워크로드 또는 서로 다른 조직 부분에 할당할 수 있습니다.
BigQuery 버전을 사용하는 예약 작업을 수행할 때는 용량 약정이 선택사항이지만 상태가 지속적인 워크로드의 경우 비용을 절약하는 데 도움이 됩니다.
개요
BigQuery는 두 가지 컴퓨팅(분석) 가격 책정 모델을 제공합니다.
주문형 가격 책정: 쿼리로 스캔한 데이터에 대한 비용만 지불합니다. 프로젝트별 고정된 쿼리 처리 용량이 있고 비용은 쿼리별로 처리되는 바이트 수를 기반으로 합니다.
용량 기반 가격 책정: 일정 기간 동안 슬롯으로 측정되는 전용 또는 자동 확장된 쿼리 처리 용량에 대한 비용을 지불합니다. 여러 쿼리가 동일한 슬롯 용량을 공유합니다.
기본적으로 주문형 가격 모델에 따라 요금이 부과됩니다. 예약을 사용하면 용량 기반 가격 책정으로 전환하고 슬롯 자동 확장을 사용하고 할인된 용량 약정을 구입할 수 있습니다. 용량 기반 모델을 사용할 때 처리되는 바이트는 무료입니다.
두 청구 모델을 조합할 수 있습니다. 예를 들어 일부 워크로드를 주문형 가격 책정으로 실행하고 다른 워크로드는 용량 기반 가격 책정으로 실행할 수 있습니다. 프로젝트별로 청구 모델이 지정되므로 쿼리 작업에 대해 여러 프로젝트를 사용해야 합니다.
예약의 이점
BigQuery 예약을 사용할 때의 이점은 다음과 같습니다.
예측 가능성. 용량 기반 가격 책정에서는 비용이 일정하고 예측 가능합니다. 최대 비용 예산을 처음에 지정하고 할인된 비율로 전용 지속 용량을 제공하는 슬롯 약정을 활용할 수도 있습니다.
유연성. 워크로드에 할당할 전용 용량을 선택하거나 BigQuery가 워크로드 요구사항에 따라 용량을 자동으로 확장하도록 지정할 수 있습니다. 최소 1초 단위로 소비되는 슬롯 사용 비용이 청구됩니다.
워크로드 관리. 각 워크로드에는 사용 가능한 BigQuery 연산 리소스 풀이 지정됩니다. 동시에, 전용 슬롯이 워크로드에 모두 사용되지 않으면, 사용되지 않은 슬롯이 다른 워크로드에 자동으로 공유됩니다.
중앙화된 구매: 조직 전체에 대해 슬롯을 구매하고 할당할 수 있습니다. BigQuery를 사용하는 각 프로젝트에 대해 슬롯을 구매할 필요가 없습니다.
예약
BigQuery 용량은 쿼리에 사용되는 가상 CPU를 나타내는 슬롯 단위로 측정됩니다. 일반적으로 슬롯을 더 많이 프로비저닝하면 동시 쿼리를 더 많이 실행할 수 있으며 복잡한 쿼리가 더욱 빠르게 실행됩니다.
슬롯은 예약이라는 풀에 할당됩니다. 예약을 사용하면 특정 조직에 맞는 방식으로 슬롯을 할당할 수 있습니다.
예를 들어 프로덕션 워크로드용으로 prod
라는 이름의 예약을 만들고 테스트용으로 test
라는 별도의 예약을 만들 수 있습니다. 이렇게 하면 테스트 작업이 프로덕션 워크로드에 필요한 리소스를 경합하지 않습니다. 또는 조직 내 여러 부서에 대해 예약을 만들 수 있습니다.
예약에는 워크로드 수요를 기준으로 동적으로 추가 또는 삭제되는 자동 확장되는 슬롯은 물론 항상 할당되는 기준 슬롯이 포함될 수 있습니다.
예약을 만들기 전에 슬롯 약정을 구매하면 default
라는 예약이 자동으로 생성됩니다. default
예약은 특별한 것 없이 편의를 위해 생성된 것입니다. 추가 예약이 필요한지 또는 기본 예약만 사용할지 결정할 수 있습니다.
할당하는 슬롯을 사용하려면 다음 섹션의 설명에 따라 예약에 하나 이상의 프로젝트를 할당해야 합니다.
예약은 슬롯 할당을 지정할 수 있는 최하위 수준입니다. 예약 내의 슬롯 할당은 BigQuery 스케줄러에서 처리됩니다.
할당
할당한 슬롯을 사용하려면 프로젝트, 폴더 또는 조직 하나 이상을 예약에 할당해야 합니다. 리소스 계층 구조의 각 수준은 상위 수준에서 할당을 상속합니다. 즉, 프로젝트나 폴더가 할당되지 않으면 해당 프로젝트나 폴더는 상위 폴더 또는 조직(있는 경우)의 할당을 상속합니다. 리소스 계층 구조에 대한 자세한 내용은 BigQuery 리소스 구성을 참조하세요.
예약에 할당된 프로젝트에서 작업이 시작되면 작업에 해당 예약의 슬롯이 사용됩니다. 프로젝트가 직접 또는 해당 상위 폴더 또는 조직으로부터 예약에 할당되지 않은 경우, 해당 프로젝트의 작업에는 주문형 가격 책정이 사용됩니다.
None
할당은 할당이 없음을 나타냅니다. None
에 할당된 프로젝트는 주문형 가격 책정을 사용합니다. None
할당의 일반적인 사용 사례는 조직을 예약에 할당하고 일부 프로젝트나 폴더를 None
에 할당하여 선택 해제하는 것입니다. 자세한 내용은 프로젝트를 None에 할당을 참조하세요.
할당을 만들 때는 해당 할당의 작업 유형을 지정합니다.
QUERY
: SQL, DDL, DML, BigQuery ML 쿼리를 포함한 쿼리 작업에 이 예약을 사용합니다.PIPELINE
: 로드 및 추출 작업에 이 예약을 사용합니다.기본적으로 로드 및 추출 작업은 무료이며 공유 슬롯 풀을 사용합니다. BigQuery는 이 공유 풀의 사용 가능한 용량이나 표시되는 처리량을 보장하지 않습니다. 많은 양의 데이터를 로드하는 경우 슬롯을 사용할 수 있을 때까지 작업이 대기할 수 있습니다. 이 경우에는 전용 슬롯을 구매하고 파이프라인 작업을 여기에 할당해야 할 수 있습니다. 유휴 슬롯 공유를 사용 중지한 상태로 추가 전용 예약을 만드는 것이 좋습니다.
로드 작업이 예약에 할당되었으면 무료 풀에 대한 액세스가 손실됩니다. 성능을 모니터링하여 작업에 용량이 충분한지 확인하세요. 그렇지 않으면 무료 풀을 사용할 때보다 성능이 더 나빠질 수 있습니다.
BACKGROUND
: 자체 예약을 사용해 BigQuery 검색 색인 관리 작업 또는 BigQuery 변경 데이터 캡처(CDC) 백그라운드 작업을 실행하도록 선택한 경우 이 예약을 사용합니다. 또한 Datastream의 백그라운드 적용 작업으로 소스 데이터베이스를 BigQuery에 복제할 때 이 예약을 사용합니다. Standard 버전에서는BACKGROUND
예약을 사용할 수 없습니다.ML_EXTERNAL
: BigQuery 외부 서비스를 사용하는 BigQuery ML 쿼리에 이 예약을 사용합니다. 자세한 내용은 BigQuery ML 워크로드에 슬롯 할당을 참조하세요. Standard 버전에서는ML_EXTERNAL
예약을 사용할 수 없습니다.
특정 할당에 슬롯을 할당할 수 없습니다. BigQuery 스케줄러는 예약의 할당에 대한 슬롯 할당을 처리합니다.
약정
용량 약정은 일부 최소 기간 동안 고정된 BigQuery 컴퓨팅 용량을 구매하는 것입니다. 용량 약정은 특정 버전으로 생성된 예약에 대해 선택사항이지만 상태가 지속적인 워크로드의 경우 비용을 절약하는 데 도움이 됩니다.
BigQuery에서는 선택 가능한 여러 약정 요금제가 제공됩니다. 주로 약정 비용 및 최소 기간에 따라 달라집니다. 현재 가격 책정 정보는 용량 약정 가격 책정을 참조하세요.
연간 약정. 365일 약정을 구입합니다. 365일 후 약정 요금제를 갱신할지 또는 다른 유형으로 전환할지 선택할 수 있습니다.
월간 약정. 최소 30일 약정을 구입합니다. 30일 후에는 언제든지 요금제를 삭제할 수 있습니다.
가변 슬롯. 60초 약정을 구입합니다. 60초 후에 언제든지 삭제할 수 있습니다. 가변 슬롯은 장기 약정을 구입하기 전 정액제 청구의 워크로드 성능을 테스트하기 위한 좋은 방법입니다. 또한 순환성 또는 계절성 요구를 처리하거나 세무 처리 기간 등 과부하가 발생하는 경우에 유용합니다.
어떤 요금제를 선택하든 간에 약정 기간이 종료되어도 슬롯은 만료되지 않습니다. 슬롯은 그대로 유지되고 삭제될 때까지 비용이 청구됩니다. 또한 최소 기간 이후에 요금제 유형을 변경할 수 있습니다.
슬롯은 사용 가능한 용량에 따릅니다. 슬롯 약정 구매를 시도한다고 해서 구매가 보장되는 것은 아닙니다. 하지만 약정 구매가 성공하면 약정을 삭제할 때까지 용량이 보장됩니다.
이 요금제에 대한 자세한 내용은 약정 요금제를 참조하세요.
예약 내 슬롯 할당
BigQuery는 공정 예약이라는 알고리즘을 사용하여 단일 예약 내에서 슬롯 용량을 할당합니다.
BigQuery 스케줄러는 예약 내에서, 그리고 특정 프로젝트의 작업 내에서 쿼리를 실행 중인 프로젝트 간에 슬롯을 균등하게 공유합니다. 스케줄러는 최종 공정성을 제공합니다. 일부 작업의 경우 짧은 시간 동안 슬롯의 비율이 일정하지 않을 수 있지만 결과적으로 스케줄러에서 이 문제를 해결합니다. 스케줄러의 목표는 실행 중인 작업을 제거하는 지나치게 공격적인 방식(이 경우 슬롯 시간이 낭비됨)과 지나치게 관대한 방식(이 경우 장기 실행 작업이 포함된 작업의 슬롯 시간 비율이 일정하지 않음) 간에 균형을 찾는 것입니다.
스케줄러로부터 수신하는 것보다 많은 슬롯이 중요한 작업에 일관적으로 필요한 경우, 슬롯 수가 보장된 추가 예약을 만들고 작업을 이 예약에 할당할 수 있습니다. 자세한 내용은 워크로드 관리를 참조하세요.
유휴 슬롯
어떤 시점에서든 일부 슬롯은 유휴 상태로 유지될 것입니다. 여기에는 다음이 포함될 수 있습니다.
- 예약에 할당되지 않은 슬롯 약정
- 예약 기준에 할당되었지만 현재 사용 중이 아닌 슬롯
기본적으로 예약에서 실행되는 쿼리에는 동일한 관리 프로젝트 내부의 다른 예약에 있는 유휴 상태의 슬롯이 사용됩니다. 즉, 용량이 있는 한 항상 작업이 실행될 수 있습니다. 유휴 용량은 리소스가 필요한 쿼리 우선순위에 관계없이 필요에 따라 원래 할당된 예약으로 즉시 다시 선점될 수 있습니다. 이 작업은 실시간으로 자동으로 실행됩니다.
이 기능을 사용 중지하고 예약에 프로비저닝된 슬롯만 사용되도록 강제하려면 ignore_idle_slots
를 true
로 설정합니다. ignore_idle_slots
이 true
로 설정된 예약은 유휴 슬롯을 받지 않습니다.
다른 버전의 예약 간에는 유휴 슬롯을 공유할 수 없습니다. 기준 슬롯 또는 약정 슬롯만 공유할 수 있습니다. 자동 확장 슬롯은 일시적으로 사용할 수 있지만 축소될 수 있으므로 공유할 수 없습니다.
ignore_idle_slots
이 false이면 예약은 슬롯 수 0
개를 가질 수 있으며, 사용되지 않은 슬롯에 여전히 액세스할 수 있습니다. default
예약만 사용하는 경우 이 방식으로 설정하는 것이 좋습니다. 그런 후 해당 예약에 프로젝트 또는 폴더를 할당할 수 있고 여기에는 유휴 슬롯만 사용됩니다.
ML_EXTERNAL
유형 할당은 앞에서 설명한 동작에 대한 예외입니다. BigQuery ML 외부 모델 생성 작업에서 사용하는 슬롯은 선점형이 아닙니다. 즉, ml_external 및 쿼리 할당 유형이 모두 있는 예약의 슬롯은 ML_EXTERNAL
작업에서 슬롯을 차지하지 않는 경우에만 다른 쿼리 작업에 사용할 수 있습니다.
또한 이러한 작업은 다른 예약의 유휴 슬롯을 사용하지 않습니다.
제한사항
- 구입한 예약은 다른 조직과 공유할 수 없습니다.
- 각 조직별로 별도의 예약과 관리 프로젝트를 만들어야 합니다.
- 조직마다 활성 약정이 있는 관리 프로젝트가 단일 위치에 최대 10개까지 있을 수 있습니다.
- 유휴 상태의 용량은 조직 간에 또는 단일 조직 내 다른 관리 프로젝트 간에 공유될 수 없습니다.
- 약정은 리전별 리소스입니다. 한 리전 또는 멀티 리전에서 구매한 약정을 다른 리전 또는 멀티 리전에서 사용할 수 없습니다. 약정은 리전 간에 또는 리전과 멀티 리전 간에 이동할 수 없습니다.
- 하나의 관리 프로젝트에서 구매한 약정은 다른 관리 프로젝트로 이동할 수 없습니다.
- 하나의 버전으로 구매한 약정은 다른 버전의 예약에 사용할 수 없습니다.
- 유휴 슬롯은 서로 다른 버전의 예약 간에 공유되지 않습니다.
- 자동 확장된 슬롯은 더 이상 필요하지 않을 때 축소되기 때문에 공유할 수 없습니다.
할당량
슬롯 할당량은 한 위치에서 구매할 수 있는 최대 슬롯 수입니다. 이러한 할당량은 청구되지 않고, 예약 및 약정에 대해서만 청구됩니다. 자세한 내용은 예약 할당량 및 한도를 참조하세요. 슬롯 할당량 증가에 대한 자세한 내용은 할당량 증가 요청을 참조하세요.
가격 책정
예약 가격 책정에 대한 자세한 내용은 정액제 가격 책정을 참조하세요.