기본 구성 관리

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

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

가격 책정

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

기본 구성

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

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

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

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

기본 구성 만들기

이 섹션에서는 구성을 만드는 방법을 설명합니다.

필수 권한

구성을 만들려면 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);

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

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

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

구성 값 검색

정보 스키마를 보면 조직 또는 프로젝트의 기본 구성 설정을 볼 수 있습니다. 쿼리할 뷰는 다음 세 가지입니다.

새 구성이 적용되고 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;