BigQuery 테이블의 메타데이터 색인 생성

이 문서에서는 BigQuery의 열 메타데이터 색인을 설명하고 색인 최신성 및 쿼리 성능을 개선하기 위해 전용 리소스를 할당하는 방법을 설명합니다.

BigQuery는 1GiB를 초과하는 BigQuery 테이블의 메타데이터 색인을 자동으로 생성합니다. 이 메타데이터에는 파일 위치, 파티션 정보, 열 수준 속성이 포함되며, BigQuery는 이를 사용하여 쿼리를 최적화하고 가속화합니다.

기본적으로 BigQuery의 메타데이터 색인은 무료 백그라운드 작업이며 별도의 조치를 취하지 않아도 됩니다. 그러나 색인 업데이트 빈도는 사용 가능한 무료 리소스에 따라 달라지며 성능 서비스 수준 목표 (SLO)는 없습니다. 색인 최신성이 사용 사례에 중요한 경우 BACKGROUND 예약을 구성하는 것이 좋습니다.

메타데이터 색인 새로고침 시간 보기

테이블의 마지막 메타데이터 색인 새로고침 시간을 보려면 INFORMATION_SCHEMA.TABLE_STORAGELAST_METADATA_INDEX_REFRESH_TIME 열을 쿼리합니다. 이렇게 하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 쿼리 편집기에서 다음 문을 입력합니다.

    SELECT
      project_id,
      project_number,
      table_name,
      last_metadata_index_refresh_time
    FROM
      [PROJECT_ID.]region-REGION.INFORMATION_SCHEMA.TABLE_STORAGE;

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다. 지정하지 않으면 기본 프로젝트가 사용됩니다.
    • REGION: 프로젝트가 있는 리전입니다(예: region-us).
  3. 실행을 클릭합니다.

열 메타데이터 색인 사용량 보기

작업이 완료된 후 열 메타데이터 색인이 사용되었는지 확인하려면 작업 리소스의 TableMetadataCacheUsage 속성을 확인하세요. unusedReason 필드가 비어 있으면 (채워지지 않음) 열 메타데이터 색인이 사용되었습니다. 이 필드가 채워지면 함께 제공되는 explanation 필드에 열 메타데이터 색인이 사용되지 않은 이유가 표시됩니다.

INFORMATION_SCHEMA.JOBSmetadata_cache_statistics 필드를 사용하여 열 메타데이터 색인 사용량을 볼 수도 있습니다.

예를 들어 다음은 my-job 작업의 열 메타데이터 색인 사용량을 표시합니다.

SELECT metadata_cache_statistics
FROM `region-US`.INFORMATION_SCHEMA.JOBS
WHERE job_id = 'my-job';

다른 예로 다음은 my-table 테이블에 열 메타데이터 색인을 사용한 작업 수를 표시합니다.

SELECT COUNT(*)
FROM
  `region-US`.INFORMATION_SCHEMA.JOBS,
  UNNEST(metadata_cache_statistics.table_metadata_cache_usage) AS stats
WHERE
  stats.table_reference.table_id='my-table' AND
  stats.table_reference.dataset_id='my-dataset' AND
  stats.table_reference.project_id='my-project' AND
  stats.unusedReason IS NULL;

전용 색인 생성 리소스 설정

프로젝트에서 메타데이터 색인 업데이트를 위한 리소스를 설정하려면 먼저 프로젝트에 예약이 할당되어 있어야 합니다. 이렇게 하려면 다음 단계를 따르세요.

  1. BACKGROND 예약 만들기
  2. 예약에 프로젝트를 할당합니다.

예약을 설정한 후 다음 방법 중 하나를 선택하여 메타데이터 색인 생성 작업에 슬롯을 할당합니다. 기본적으로 이 방식으로 할당된 슬롯은 슬롯이 유휴 상태인 경우 다른 작업과 공유됩니다. 자세한 내용은 유휴 슬롯을 참고하세요.

콘솔

  1. Google Cloud 콘솔에서 용량 관리 페이지로 이동합니다.

    용량 관리로 이동

  2. 예약 작업 > 할당 만들기를 클릭합니다.

  3. 예약 프로젝트를 선택합니다.

  4. Job TypeBackground로 설정합니다.

  5. 만들기를 클릭합니다.

bq

bq mk 명령어를 사용합니다.

bq mk \
  --project_id=ADMIN_PROJECT_ID \
  --location=LOCATION \
  --reservation_assignment \
  --reservation_id=RESERVATION_NAME \
  --assignee_id=PROJECT_ID \
  --job_type=BACKGROUND \
  --assignee_type=PROJECT

다음을 바꿉니다.

  • ADMIN_PROJECT_ID: 예약 리소스를 소유하는 관리 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 예약 위치
  • RESERVATION_NAME: 예약 이름.
  • PROJECT_ID: 이 예약에 할당할 프로젝트 ID입니다.

SQL

프로젝트에 예약을 할당하려면 CREATE ASSIGNMENT DDL 문을 사용합니다.

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 쿼리 편집기에서 다음 문을 입력합니다.

    CREATE ASSIGNMENT
    ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID
    OPTIONS (
      assignee = 'projects/PROJECT_ID',
      job_type = 'BACKGROUND');
    다음을 바꿉니다.

    • ADMIN_PROJECT_ID: 예약 리소스를 소유하는 관리 프로젝트의 프로젝트 ID입니다.
    • LOCATION: 예약 위치
    • RESERVATION_NAME: 예약 이름
    • ASSIGNMENT_ID: 할당 ID. ID는 프로젝트 및 위치에 고유해야 하고, 소문자 또는 숫자로 시작하고 끝나야 하며, 소문자, 숫자, 대시만 포함해야 합니다.
    • PROJECT_ID: 테이블이 포함된 프로젝트 ID입니다. 이 프로젝트가 예약에 할당됩니다.
  3. 실행을 클릭합니다.

색인 생성 작업 정보 보기

전용 색인 생성 작업을 설정한 후 JOBS 보기를 사용하여 색인 생성 작업에 관한 정보를 볼 수 있습니다. 다음 SQL 샘플은 PROJECT_NAME의 최근 5개 새로고침 작업을 보여줍니다.

SELECT *
FROM
  region-us.INFORMATION_SCHEMA.JOBS
WHERE
  project_id = 'PROJECT_NAME'
  AND SEARCH(job_id, '`metadata_cache_refresh`')
ORDER BY
  creation_time DESC
LIMIT 5;

PROJECT_NAME를 메타데이터 색인 생성 작업이 포함된 프로젝트의 이름으로 바꿉니다.

메타데이터 색인 생성 알림 구성

Cloud Monitoring 알림 프로세스는 BigQuery 성능이 정의된 기준을 충족하지 않을 때 알림을 전송합니다. 자세한 내용은 알림 개요를 참고하세요. 메타데이터 색인을 사용하면 슬롯 사용 및 비활성 상태에 대한 알림을 구성할 수 있습니다.

슬롯 사용량 알림

이 알림은 백그라운드 예약이 할당의 지정된 비율을 초과할 때 알립니다. 기본값은 95%입니다. 특정 예약 또는 모든 백그라운드 예약에 대해 이 알림을 구성할 수 있습니다. 이 알림이 트리거되면 예약 크기를 늘리는 것이 좋습니다.

모든 백그라운드 예약에 이 알림을 구성하려면 다음 단계를 따르세요.

  1. 아직 설정하지 않았다면 모니터링 알림 채널을 설정합니다.
  2. 통합 페이지로 이동합니다.

    통합으로 이동

  3. BigQuery 통합을 찾아 세부정보 보기를 클릭합니다.

  4. 알림 탭에서 슬롯 사용량 - 백그라운드 메타데이터 캐시 슬롯 사용량이 너무 높음을 선택합니다.

  5. 선택사항: 이 알림을 추가로 맞춤설정하려면 옵션 표시 > 알림 정책 맞춤설정을 클릭합니다.

  6. 알림 구성에서 알림 채널을 선택합니다.

  7. 만들기를 클릭합니다.

비활성 알림

이 알림은 평균 열 메타데이터 색인 비활성 상태가 기존 평균에 비해 너무 증가할 때 알려줍니다. 기본 임곗값은 4시간 동안의 평균이 30분 넘게 이전 평균의 2배를 초과하는 경우입니다. 이 알림이 트리거되면 예약 크기를 늘리거나 백그라운드 예약이 없는 경우 예약을 만드는 것이 좋습니다.

이 알림을 구성하려면 다음 단계를 따르세요.

  1. 아직 설정하지 않았다면 모니터링 알림 채널을 설정합니다.
  2. 통합 페이지로 이동합니다.

    통합으로 이동

  3. BigQuery 통합을 찾아 세부정보 보기를 클릭합니다.

  4. 알림 탭에서 열 메타데이터 색인 비활성 - 증가율이 너무 큼을 선택합니다.

  5. 선택사항: 이 알림을 추가로 맞춤설정하려면 옵션 표시 > 알림 정책 맞춤설정을 클릭합니다.

  6. 알림 구성에서 알림 채널을 선택합니다.

  7. 만들기를 클릭합니다.

제한사항

메타데이터 쿼리 성능 개선사항은 SELECT, INSERT, CREATE TABLE AS SELECT 문에만 적용됩니다. 데이터 조작 언어 (DML) 문에는 메타데이터 색인 생성으로 인한 개선사항이 적용되지 않습니다.

다음 단계