예약 소개
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는 이 공유 풀 또는 표시된 처리량에 대한 용량 가용성을 보장하지 않습니다. 많은 양의 데이터를 로드하는 경우 슬롯을 사용할 수 있을 때까지 작업이 대기할 수 있습니다. 이 경우에는 전용 슬롯을 구매하고
PIPELINE
작업을 여기에 할당해야 할 수 있습니다. 권장사항에 따라 유휴 슬롯 무시가 사용 설정된 상태로 추가적인 전용 예약을 만듭니다. 유휴 슬롯에 대한 자세한 내용은 유휴 슬롯을 참조하세요.로드 및 추출 작업이 예약에 할당되면 무료 풀에 대한 액세스 권한을 상실합니다. 리소스 사용률 및 작업을 모니터링하여 무료 풀을 사용하는 것보다 나은 성능을 위해 해당 예약에 용량이 충분한지 확인해야 합니다.
BACKGROUND
: 자체 예약을 사용해 BigQuery 검색 색인 관리 작업 또는 BigQuery 변경 데이터 캡처(CDC) 백그라운드 작업을 실행하도록 선택한 경우 이 예약을 사용합니다. 또한 Datastream의 백그라운드 적용 작업으로 소스 데이터베이스를 BigQuery에 복제할 때 이 예약을 사용합니다. Standard 버전에서는BACKGROUND
예약을 사용할 수 없습니다.ML_EXTERNAL
: BigQuery 외부 서비스를 사용하는 BigQuery ML 쿼리에 이 예약을 사용합니다. 자세한 내용은 BigQuery ML 워크로드에 슬롯 할당을 참조하세요. Standard 버전에서는ML_EXTERNAL
예약을 사용할 수 없습니다.
특정 할당에 슬롯을 할당할 수 없습니다. BigQuery 스케줄러는 예약의 할당에 대한 슬롯 할당을 처리합니다.
약정
용량 약정에서는 최대 슬롯 할당량까지 최소 기간 동안 100개 단위로 슬롯을 구입합니다. 용량 약정은 특정 버전으로 생성된 예약에 대해 선택사항이지만 상태가 지속적인 워크로드의 경우 비용을 절약하는 데 도움이 됩니다. 만들 수 있는 약정 수는 제한이 없습니다. 약정 구매에 성공하는 시점부터 비용이 청구됩니다. 현재 가격 책정 정보는 용량 약정 가격 책정을 참조하세요.
3년 약정: 3년 약정을 구매합니다. 3*365일 후 약정 요금제를 갱신할지 또는 다른 유형으로 변환할지 선택할 수 있습니다.
연간 약정. 365일 약정을 구입합니다. 365일 후 약정 요금제를 갱신할지 또는 다른 유형으로 변환할지 선택할 수 있습니다.
어떤 요금제를 선택하든 간에 약정 기간이 종료되어도 슬롯은 만료되지 않습니다. 슬롯은 그대로 유지되고 약정이 삭제될 때까지 비용이 청구됩니다. 또한 최소 기간 이후에 요금제 유형을 변경할 수 있습니다. 요금제 만료 후에는 언제든지 약정을 삭제하거나 갱신 요금제의 조건에 따라 계속 요금을 지불할 수 있습니다. 약정 삭제에 대한 자세한 내용은 약정 삭제를 참조하세요.
연간 또는 3년 약정 요금제의 월별 요금이 청구됩니다. 하지만 지불 약정은 전체 약정 기간에 대한 것이며 월별로 취소할 수는 없습니다. 사용량은 결제 보고서에서 매일 업데이트되며 언제든지 확인 가능합니다.
슬롯은 사용 가능한 용량에 따릅니다. 슬롯 약정 구매를 시도한다고 해서 구매가 보장되는 것은 아닙니다. 하지만 약정 구매가 성공하면 약정을 삭제할 때까지 용량이 보장됩니다.
약정 갱신
약정 요금제를 구입할 때 갱신 요금제를 선택합니다. 만료될 때까지 언제든지 약정 갱신 요금제를 변경할 수 있고 다음과 같은 갱신 요금제를 사용할 수 있습니다.
- 없음. 약정이 종료되면 약정이 삭제됩니다. 예약은 영향을 받지 않습니다.
- 연간. 약정이 종료되면 약정이 1년 더 갱신됩니다.
- 3년. 약정이 종료되면 약정이 3년 더 갱신됩니다.
자동 확장 용량 모델을 사용할 경우 1년 또는 3년 약정 요금제를 1년 또는 3년으로 갱신할 수 있습니다. 약정 구입 또는 갱신에 대한 자세한 내용은 용량 약정 만들기를 참조하세요.
예를 들어 2019년 10월 5일 오후 6시 1년 약정을 구입했으면 해당 시점부터 비용 청구가 시작됩니다. 2020년 10월 4일 오후 6시 이후에 약정을 삭제하거나 갱신할 수 있습니다. 참고로 2020년은 윤년입니다. 2020년 10월 4일 오후 6시 이전에 다음과 같이 갱신 요금제를 변경할 수 있습니다.
- 매년 갱신하도록 선택하면 2020년 10월 4일 오후 6시에 약정이 1년 더 갱신됩니다.
- 3년 약정으로 갱신하도록 선택하면 2020년 10월 4일 오후 6시에 약정이 3년 갱신됩니다.
약정 삭제
약정을 만들고 나면 약정이 만료된 후에만 삭제할 수 있습니다. 연간 약정을 삭제하려면 갱신 요금제를 NONE
으로 설정합니다. 연간 약정이 만료되면 자동으로 삭제됩니다. 약정을 삭제하는 방법에 대한 자세한 내용은 약정 삭제를 참조하세요.
약정을 실수로 구매했거나 약정을 구성할 때 실수한 경우 Cloud Billing 지원팀에 문의하여 도움을 받으세요.
예약 내 슬롯 할당
BigQuery는 공정 예약이라는 알고리즘을 사용하여 단일 예약 내에서 슬롯 용량을 할당합니다.
BigQuery 스케줄러는 예약 내에서, 그리고 특정 프로젝트의 작업 내에서 쿼리를 실행 중인 프로젝트 간에 슬롯을 균등하게 공유합니다. 스케줄러는 최종 공정성을 제공합니다. 짧은 기간 동안 일부 작업에 슬롯 비율이 일정하지 않을 수 있지만 결과적으로 스케줄러가 이 문제를 해결합니다. 스케줄러의 목표는 실행 중인 태스크를 공격적으로 제거하는 방식(이 경우 슬롯 시간이 낭비됨)과 지나치게 관대한 방식(이 경우 장기 실행 태스크가 포함된 작업의 슬롯 시간 비율이 일정하지 않음) 간에 균형을 찾는 것입니다.
스케줄러로부터 수신하는 것보다 많은 슬롯이 중요한 작업에 일관적으로 필요한 경우, 슬롯 수가 보장된 추가 예약을 만들고 작업을 이 예약에 할당할 수 있습니다. 자세한 내용은 워크로드 관리를 참조하세요.
유휴 슬롯
어떤 시점에서든 일부 슬롯은 유휴 상태로 유지될 것입니다. 여기에는 다음이 포함될 수 있습니다.
- 예약에 할당되지 않은 슬롯 약정
- 예약 기준에 할당되었지만 사용 중이 아닌 슬롯
기본적으로 예약에서 실행되는 쿼리에는 동일한 관리 프로젝트 내부의 다른 예약에 있는 유휴 상태의 슬롯이 사용됩니다. 즉, 용량이 있는 한 항상 작업이 실행될 수 있습니다. 유휴 용량은 리소스가 필요한 쿼리 우선순위에 관계없이 필요에 따라 원래 할당된 예약으로 즉시 다시 선점될 수 있습니다. 이 작업은 실시간으로 자동으로 실행됩니다.
이 동작을 방지하고 예약에 프로비저닝된 슬롯만 사용되도록 하려면 ignore_idle_slots
를 true
로 설정합니다. 하지만 ignore_idle_slots
가 true
로 설정된 예약은 유휴 슬롯을 다른 예약과 공유합니다.
다른 버전의 예약 간에는 유휴 슬롯을 공유할 수 없습니다. 기준 슬롯 또는 약정 슬롯만 공유할 수 있습니다. 자동 확장 슬롯은 일시적으로 사용할 수 있지만 축소될 수 있으므로 공유할 수 없습니다.
ignore_idle_slots
이 false이면 예약은 슬롯 수 0
개를 가질 수 있으며, 사용되지 않은 슬롯에 여전히 액세스할 수 있습니다. default
예약만 사용하는 경우 권장사항에 따라 ignore_idle_slots
을 사용 중지합니다. 그런 후 해당 예약에 프로젝트 또는 폴더를 할당할 수 있고 여기에는 유휴 슬롯만 사용됩니다.
ML_EXTERNAL
유형의 할당은 BigQuery ML 외부 모델 생성 작업에 사용되는 슬롯이 비선점형이라는 측면에서 예외입니다. ML_EXTERNAL
및 QUERY
할당 유형의 예약에 포함된 슬롯은 해당 슬롯이 ML_EXTERNAL
작업으로 점유되지 않은 경우에만 다른 쿼리 작업에 사용할 수 있습니다. 또한 이러한 작업은 다른 예약의 유휴 슬롯을 사용할 수 없습니다.
제한사항
- 구입한 예약은 다른 조직과 공유할 수 없습니다.
- 각 조직별로 별도의 예약과 관리 프로젝트를 만들어야 합니다.
- 단일 위치에서 활성 약정을 사용하는 관리 프로젝트가 조직당 최대 5개까지 있을 수 있습니다.
- 유휴 상태의 용량은 조직 간에 또는 단일 조직 내 다른 관리 프로젝트 간에 공유될 수 없습니다.
- 약정은 리전별 리소스입니다. 한 리전 또는 멀티 리전에서 구매한 약정을 다른 리전 또는 멀티 리전에서 사용할 수 없습니다. 약정은 리전 간에 또는 리전과 멀티 리전 간에 이동할 수 없습니다.
- 하나의 관리 프로젝트에서 구매한 약정은 다른 관리 프로젝트로 이동할 수 없습니다.
- 하나의 버전으로 구매한 약정은 다른 버전의 예약에 사용할 수 없습니다.
- 유휴 슬롯은 서로 다른 버전의 예약 간에 공유되지 않습니다.
- 자동 확장된 슬롯은 더 이상 필요하지 않을 때 축소되기 때문에 공유할 수 없습니다.
할당량
슬롯 할당량은 한 위치에서 구매할 수 있는 최대 슬롯 수입니다. 이러한 할당량은 청구되지 않고, 예약 및 약정에 대해서만 청구됩니다. 자세한 내용은 예약 할당량 및 한도를 참조하세요. 슬롯 할당량 증가에 대한 자세한 내용은 할당량 증가 요청을 참조하세요.
가격 책정
예약 가격 책정에 대한 자세한 내용은 용량 기반 가격 책정을 참조하세요.