구성 설정 관리

BigQuery 관리자와 프로젝트 소유자는 조직 및 프로젝트 수준에서 구성 설정을 관리할 수 있습니다. 구성을 설정하여 전체 데이터 인프라에서 보안을 적용하고, 비용을 관리하고, 쿼리 성능을 최적화할 수 있습니다. 기본값을 설정하면 일관된 규정 준수 및 운영 효율성을 보장하여 BigQuery 환경을 더 쉽게 관리할 수 있습니다.

구성 설정 지정

다음 섹션에서는 기본 구성 설정을 지정하는 방법을 설명합니다. 기본 설정은 조직 또는 프로젝트 수준에서 구성되지만 세션 또는 작업 수준에서 재정의할 수 있습니다. 기본 동작을 적용하려면 관련 조직 정책과 함께 기본 설정을 구성하면 됩니다.

필요한 역할

구성 설정을 지정하는 데 필요한 권한을 얻으려면 관리자에게 BigQuery 관리자 (roles/bigquery.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 구성 설정을 지정하는 데 필요한 bigquery.config.update 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 가져올 수도 있습니다.

BigQuery의 IAM 역할과 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.

조직 설정 구성

다음 GoogleSQL 문을 사용하여 조직 수준에서 설정을 구성할 수 있습니다. 구성을 지정할 때 구성을 적용할 리전을 지정해야 합니다. 각 문에 하나의 리전만 사용할 수 있습니다.

조직 설정을 구성하려면 ALTER ORGANIZATION SET OPTIONS DDL 문을 사용합니다. 다음 예에서는 다음을 비롯한 여러 기본 구성을 지정합니다.

  • 시간대: America/Chicago
  • Cloud KMS 키: 사용자 정의 키
  • 쿼리 제한 시간: 30분 (1,800,000밀리초)
  • 대화형 쿼리 큐 제한 시간: 10분 (600,000밀리초)
  • 일괄 쿼리 큐 제한 시간: 20분 (1,200,000밀리초)
ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.default_time_zone`= 'America/Chicago',
  -- Ensure all service accounts under the organization have permission to KMS_KEY
  `region-REGION.default_kms_key_name` = KMS_KEY,
  `region-REGION.default_query_job_timeout_ms` = 1800000,
  `region-REGION.default_interactive_query_queue_timeout_ms` = 600000,
  `region-REGION.default_batch_query_queue_timeout_ms` = 1200000,
  `region-REGION.default_storage_billing_model`= BILLING_MODEL,
  `region-REGION.default_max_time_travel_hours` = 72);

다음을 바꿉니다.

  • REGION: 프로젝트 또는 조직과 연결된 리전(예: us 또는 europe-west6)
  • KMS_KEY: 사용자 정의 Cloud KMS 키. 자세한 내용은 고객 관리 Cloud KMS 키를 참고하세요.
  • BILLING_MODEL: 새 데이터 세트의 스토리지 모델입니다(예: 실제 바이트의 경우 PHYSICAL).

다음 예시에서는 모든 조직 수준의 기본 설정을 삭제합니다.

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.default_time_zone` = NULL,
  `region-REGION.default_kms_key_name` = NULL,
  `region-REGION.default_query_job_timeout_ms` = NULL,
  `region-REGION.default_interactive_query_queue_timeout_ms` = NULL,
  `region-REGION.default_batch_query_queue_timeout_ms` = NULL,
  `region-REGION.default_storage_billing_model`= NULL,
  `region-REGION.default_max_time_travel_hours` = NULL);

프로젝트 설정 구성

다음 GoogleSQL 문을 사용하여 프로젝트 수준에서 설정을 구성할 수 있습니다. 구성을 지정할 때 구성을 적용할 리전을 지정해야 합니다. 각 문에 하나의 리전만 사용할 수 있습니다.

프로젝트 설정을 구성하려면 ALTER PROJECT SET OPTIONS DDL 문을 사용합니다. ALTER PROJECT SET OPTIONS DDL 문은 선택적으로 PROJECT_ID 변수를 허용합니다. PROJECT_ID를 지정하지 않으면 기본값은 쿼리가 실행되는 현재 프로젝트입니다. 다음 예에서는 여러 기본 구성을 지정합니다.

  • 시간대: America/Los_Angeles
  • Cloud KMS 키: 예시 키
  • 쿼리 제한 시간: 1시간
  • 대화형 쿼리 대기열 제한 시간: 10분
  • 일괄 쿼리 큐 제한 시간: 20분
  • 예약 기반 공정성: 사용 설정됨
ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.default_time_zone` = 'America/Los_Angeles',
  -- Ensure all service accounts under the project have permission to KMS_KEY
  `region-REGION.default_kms_key_name` = KMS_KEY,
  `region-REGION.default_query_job_timeout_ms` = 3600000,
  `region-REGION.default_interactive_query_queue_timeout_ms` = 600000,
  `region-REGION.default_batch_query_queue_timeout_ms` = 1200000,
  `region-REGION.default_storage_billing_model`= BILLING_MODEL,
  `region-REGION.default_max_time_travel_hours` = 72,
  `region-REGION.default_cloud_resource_connection_id` = CONNECTION_ID,
  `region-REGION.default_sql_dialect_option` = 'default_google_sql',
  `region-REGION.enable_reservation_based_fairness` = true);

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 프로젝트 또는 조직과 연결된 리전(예: us 또는 europe-west6)
  • KMS_KEY: 사용자 정의 Cloud KMS 키. 자세한 내용은 고객 관리 Cloud KMS 키를 참고하세요.
  • BILLING_MODEL: 새 데이터 세트의 스토리지 모델입니다(예: 실제 바이트의 경우 PHYSICAL).
  • CONNECTION_ID: 테이블 및 모델의 기본 연결로 사용할 연결의 ID입니다.

다음 예시에서는 프로젝트 수준의 모든 기본 설정을 삭제합니다. 기본 설정이 있으면 모든 조직 수준 기본 설정이 사용됩니다. 그렇지 않으면 모든 기본 설정이 전역 기본값으로 설정됩니다.

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.default_time_zone` = NULL,
  `region-REGION.default_kms_key_name` = NULL,
  `region-REGION.default_query_job_timeout_ms` = NULL,
  `region-REGION.default_interactive_query_queue_timeout_ms` = NULL,
  `region-REGION.default_batch_query_queue_timeout_ms` = NULL,
  `region-REGION.default_storage_billing_model`= NULL,
  `region-REGION.default_max_time_travel_hours` = NULL,
  `region-REGION.default_cloud_resource_connection_id` = NULL,
  `region-REGION.default_sql_dialect_option` = NULL,
  `region-REGION.enable_reservation_based_fairness` = NULL);

프로젝트 수준 구성은 조직 수준 구성을 재정의합니다. 프로젝트 수준 구성은 세션 수준 구성으로 재정의될 수 있으며, 이는 작업 수준 구성에서 재정의할 수 있습니다.

구성 설정 가져오기

다음 INFORMATION_SCHEMA 뷰를 사용하여 조직 또는 프로젝트의 구성 설정을 볼 수 있습니다.

새 구성이 적용되고 INFORMATION_SCHEMA 뷰 내에 반영되기까지 몇 분 정도 걸릴 수 있습니다.

필요한 역할

구성 설정을 가져오는 데 필요한 권한을 얻으려면 관리자에게 지정된 프로젝트에 대한 BigQuery 작업 사용자 (roles/bigquery.jobUser) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 구성 설정을 검색하는 데 필요한 bigquery.config.get 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 가져올 수도 있습니다.

BigQuery의 IAM 역할과 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.

예시

us 리전의 조직 아래에 있는 구성을 보려면 다음 쿼리를 실행합니다.

SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;

us 리전의 기본 프로젝트 아래에서 유효한 구성을 보려면 다음 쿼리를 실행합니다.

SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;

us 리전의 기본 프로젝트 아래에 있는 구성을 보려면 다음 쿼리를 실행합니다.

SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;

구성 설정

다음 섹션에서는 지정할 수 있는 구성 설정을 설명합니다.

쿼리 및 작업 실행 설정

다음 설정을 사용하여 쿼리가 실행, 시간 지정, 대기열에 추가되는 방식을 제어합니다.

  • default_batch_query_queue_timeout_ms: 일괄 쿼리가 queued되는 기본 시간(밀리초)입니다. 설정되지 않은 경우 기본값은 24시간입니다. 최솟값은 1밀리초입니다. 최댓값은 48시간입니다. 일괄 쿼리 큐 추가를 사용 중지하려면 값을 -1로 설정합니다.
  • default_interactive_query_queue_timeout_ms: 대화형 쿼리가 큐에 추가되는 기본 시간(밀리초)입니다. 설정되지 않은 경우 기본값은 6시간입니다. 최솟값은 1밀리초입니다. 최댓값은 48시간입니다. 대화형 쿼리 큐 추가를 사용 중지하려면 값을 -1로 설정합니다.
  • default_query_job_timeout_ms: 작업이 큐에 저장되는 시간과 실행 소비 시간을 포함하여 쿼리 작업이 타임아웃된 이후의 기본 시간입니다. 제한 시간은 5분에서 48시간 사이여야 합니다. 이 제한 시간은 개별 쿼리 작업 및 스크립트의 하위 작업에만 적용됩니다. 스크립트 작업의 제한 시간을 설정하려면 jobs.insert API 메서드를 사용하고 jobTimeoutMs 필드를 설정해야 합니다.

  • enable_reservation_based_fairness: 유휴 슬롯이 공유되는 방식을 결정하는 옵션입니다. 기본값은 false입니다. 즉, 유휴 슬롯이 모든 쿼리 프로젝트에 균등하게 분배됩니다. 사용 설정된 경우 유휴 슬롯은 먼저 모든 예약에 균등하게 공유된 다음 예약 내의 프로젝트에 공유됩니다. 자세한 내용은 예약 기반 공정성을 참고하세요. 이 옵션은 프로젝트 수준에서만 지원됩니다. 조직 또는 작업 수준에서는 지정할 수 없습니다.

  • default_time_zone: 시간대가 인수로 지정되지 않은 경우 시간대 종속 GoogleSQL 함수에 사용할 기본 시간대입니다. 이 구성은 시간 단위 열로 파티션을 나눈 테이블(UTC를 시간대로 사용), Storage Transfer Service 일정 전송 또는 bq 명령줄 도구로 데이터 로드에 적용되지 않습니다. 자세한 내용은 시간대를 참조하세요.

  • default_query_optimizer_options: 기록 기반 쿼리 최적화입니다. 이 옵션은 다음 중 하나일 수 있습니다.

    • 'adaptive=on': 기록 기반 쿼리 최적화를 사용합니다.
    • 'adaptive=off': 기록 기반 쿼리 최적화를 사용하지 않습니다.
    • NULL(기본값): 'adaptive=on'와 동일한 기본 기록 기반 쿼리 최적화 설정을 사용합니다.
  • default_sql_dialect_option: bq 명령줄 도구 또는 BigQuery API를 사용하여 쿼리 작업을 실행하는 기본 SQL 쿼리 언어입니다. 이 설정을 변경해도 콘솔의 기본 다이얼렉트에는 영향을 미치지 않습니다. 이 옵션은 다음 중 하나일 수 있습니다.

    • 'default_legacy_sql' (기본값): 쿼리 언어가 작업 수준에서 지정되지 않은 경우 legacy SQL을 사용합니다.
    • 'default_google_sql': 작업 수준에서 쿼리 언어가 지정되지 않은 경우 GoogleSQL을 사용합니다.
    • 'only_google_sql': 작업 수준에서 쿼리 언어가 지정되지 않은 경우 GoogleSQL을 사용합니다. 쿼리 언어가 legacy SQL로 설정된 작업을 거부합니다.
    • NULL: 'default_legacy_sql'과 동일한 기본 쿼리 다이얼렉트 설정을 사용합니다.

데이터 관리 설정

다음 설정을 사용하여 데이터 생성, 보안, 수명 주기에 관한 규칙을 정의합니다.

  • default_column_name_character_map: 열 이름의 문자 기본 범위 및 처리입니다. 설정하지 않으면 열 이름에 지원되지 않는 문자를 사용하는 로드 작업이 오류 메시지와 함께 실패합니다. 일부 이전 테이블은 열 이름에서 지원되지 않는 문자를 대체하도록 설정되어 있을 수 있습니다. 자세한 내용은 load_option_list를 참조하세요.
  • default_kms_key_name: 임시 또는 익명 테이블을 포함한 테이블 데이터 암호화를 위한 기본 Cloud Key Management Service 키입니다. 자세한 내용은 고객 관리 Cloud KMS 키를 참조하세요.

  • default_max_time_travel_hours: 새 데이터 세트의 기본 시간 이동 기간(시간)입니다. 이 기간은 48~168시간(양 끝 값 포함) 범위 내에 있어야 하며 24로 나누어져야 합니다. 기본 최대 시간 이동 기간(시간)을 변경해도 기존 데이터 세트에는 영향을 미치지 않습니다. 자세한 내용은 시간 이동 및 데이터 보관을 참고하세요.

비용 및 리소스 설정

다음 설정을 사용하여 리소스의 청구 및 연결 방식을 결정합니다.

  • default_storage_billing_model: 새 데이터 세트의 기본 스토리지 청구 모델입니다. 값을 PHYSICAL로 설정하여 스토리지 요금을 계산할 때 물리적 바이트를 사용하거나 LOGICAL로 설정하여 논리 바이트를 사용합니다. 기본 스토리지 청구 모델을 변경해도 기존 데이터 세트에는 영향을 미치지 않습니다. 자세한 내용은 스토리지 청구 모델을 참고하세요.
  • default_cloud_resource_connection_id: 테이블과 모델을 만들 때 사용할 기본 연결입니다. 연결의 ID 또는 이름만 지정하고 연결된 프로젝트 ID 및 리전 접두사는 제외합니다. 기본 연결을 사용하면 생성하는 테이블 또는 모델 유형에 따라 연결의 서비스 계정에 부여된 권한이 업데이트될 수 있습니다. 자세한 내용은 기본 연결 개요를 참고하세요.

가격 책정

BigQuery 구성 서비스를 사용하는 데 추가 비용이 청구되지 않습니다. 자세한 내용은 가격 책정을 참조하세요.