구성 설정 관리

이 문서에서는 조직 또는 프로젝트 수준에서 BigQuery 구성 설정을 지정하고 검색하는 방법을 설명합니다.

예를 들어 작업을 관리하는 데 도움이 되도록 이 서비스를 사용하여 기본 작업 설정을 구성할 수 있습니다. 기본 설정은 조직 또는 프로젝트 수준에서 구성되지만 세션 또는 작업 수준에서 재정의할 수 있습니다. 기본 설정을 관련 조직 정책과 함께 구성하여 기본 동작을 적용할 수 있습니다.

구성 설정

다음과 같은 구성 설정을 지정할 수 있습니다.

  • default_batch_query_queue_timeout_ms: 일괄 쿼리가 queued되는 기본 시간(밀리초)입니다. 설정되지 않은 경우 기본값은 24시간입니다. 최솟값은 1밀리초입니다. 최댓값은 48시간입니다. 일괄 쿼리 큐 추가를 사용 중지하려면 값을 -1로 설정합니다.
  • default_column_name_character_map: 열 이름의 문자 기본 범위 및 처리입니다. 설정하지 않으면 열 이름에 지원되지 않는 문자를 사용하는 로드 작업이 오류 메시지와 함께 실패합니다. 일부 이전 테이블은 열 이름에서 지원되지 않는 문자를 대체하도록 설정되어 있을 수 있습니다. 자세한 내용은 load_option_list를 참조하세요.
  • default_interactive_query_queue_timeout_ms: 대화형 쿼리가 큐에 추가되는 기본 시간(밀리초)입니다. 설정되지 않은 경우 기본값은 6시간입니다. 최솟값은 1밀리초입니다. 최댓값은 48시간입니다. 대화형 쿼리 큐 추가를 사용 중지하려면 값을 -1로 설정합니다.
  • default_kms_key_name: 임시 또는 익명 테이블을 포함한 테이블 데이터 암호화를 위한 기본 Cloud Key Management Service 키입니다. 자세한 내용은 고객 관리 Cloud KMS 키를 참조하세요.

  • default_query_job_timeout_ms: 작업이 큐에 저장되는 시간과 실행 소비 시간을 포함하여 쿼리 작업이 타임아웃된 이후의 기본 시간입니다. 제한 시간은 5분에서 6시간 사이여야 합니다. 이 제한 시간은 개별 쿼리 작업 및 스크립트의 하위 작업에만 적용됩니다. 스크립트 작업의 제한 시간을 설정하려면 jobs.insert API 메서드를 사용하고 jobTimeoutMs 필드를 설정해야 합니다.

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

    • 'adaptive=on': 기록 기반 쿼리 최적화를 사용합니다.
    • 'adaptive=off': 기록 기반 쿼리 최적화를 사용하지 않습니다.
    • NULL(기본값): 'adaptive=on'와 동일한 기본 기록 기반 쿼리 최적화 설정을 사용합니다.
  • default_time_zone: 시간대가 인수로 지정되지 않은 경우 시간대 종속 SQL 함수에 사용할 기본 시간대입니다. 이 구성은 시간 단위 열로 파티션을 나눈 테이블(UTC를 시간대로 사용), Storage Transfer Service 일정 전송 또는 bq 명령줄 도구로 데이터 로드에 적용되지 않습니다. 자세한 내용은 시간대를 참조하세요.

  • default_storage_billing_model: 새 데이터 세트의 기본 스토리지 청구 모델입니다. 값을 PHYSICAL로 설정하여 스토리지 요금을 계산할 때 물리적 바이트를 사용하거나 LOGICAL로 설정하여 논리 바이트를 사용합니다. 기본 스토리지 청구 모델을 변경해도 기존 데이터 세트에는 영향을 미치지 않습니다. 자세한 내용은 스토리지 청구 모델을 참고하세요.

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

  • default_cloud_resource_connection_id: 테이블과 모델을 만들 때 사용할 기본 연결입니다. 연결의 ID 또는 이름만 지정하고 연결된 프로젝트 ID 및 리전 접두사는 제외합니다. 기본 연결을 사용하면 생성하는 테이블 또는 모델 유형에 따라 연결의 서비스 계정에 부여된 권한이 업데이트될 수 있습니다. 자세한 내용은 기본 연결 개요를 참고하세요.

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

구성 설정 지정

이 섹션에서는 구성 설정을 지정하는 방법을 설명합니다.

필수 권한

구성 설정을 지정하려면 bigquery.config.update Identity and Access Management(IAM) 권한이 필요합니다. 사전 정의된 IAM 역할 roles/bigquery.admin에는 구성 설정을 지정하는 데 필요한 권한이 포함되어 있습니다.

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

설정 구성

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

조직 설정 구성

조직 설정을 구성하려면 ALTER ORGANIZATION SET OPTIONS DDL 문을 사용합니다. 다음 예시에서는 기본 시간대를 America/Chicago로 설정하고, 기본 Cloud KMS 키를 사용자가 정의한 키로 설정하고, 기본 쿼리 제한 시간을 30분으로 설정하고, 기본 대화형 쿼리 큐 제한 시간을 10분으로 설정하고 기본 일괄 쿼리 큐 제한 시간을 20분으로 설정합니다.

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`= PHYSICAL,
  `region-REGION.default_max_time_travel_hours` = 72);

다음을 바꿉니다.

  • REGION: 프로젝트 또는 조직과 연결된 리전. 예를 들면 us 또는 europe-west6입니다.
  • KMS_KEY: 사용자 정의 Cloud KMS 키. Cloud KMS 키에 대한 자세한 내용은 고객 관리 Cloud KMS 키를 참조하세요.

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

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);

프로젝트 설정 구성

프로젝트 설정을 구성하려면 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`= PHYSICAL,
  `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 키에 대한 자세한 내용은 고객 관리 Cloud KMS 키를 참조하세요.
  • 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 뷰 내에 반영되기까지 몇 분 정도 걸릴 수 있습니다.

필수 권한

구성 설정을 가져오려면 지정된 프로젝트에 대한 bigquery.config.get IAM 권한이 필요합니다.

사전 정의된 다음 각 IAM 역할에는 INFORMATION_SCHEMA 뷰에서 구성을 가져오는 데 필요한 권한이 포함되어 있습니다.

  • roles/bigquery.jobUser
  • roles/bigquery.dataEditor
  • roles/bigquery.dataUser

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;

가격 책정

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