정보 스키마를 사용하여 문제 해결

BigQuery 관리자 또는 데이터 분석가는 엔터프라이즈 워크로드를 관리하기 위해 성능 병목 현상, 쿼리 실패, 용량 한도, 스토리지 증가를 진단하는 안정적이고 확장 가능한 방법을 필요로 합니다. BigQuery 정보 스키마 뷰는 표준 GoogleSQL 쿼리를 통해 액세스할 수 있는 거의 실시간 및 기록 메타데이터를 제공하여 관측 가능성 기반 역할을 합니다.

이 문서에서는 정보 스키마를 사용하여 BigQuery 문제를 해결하는 기본 원칙을 설명하고, 관리 문제 해결 도구 상자에 대한 구조화된 개요를 제공하며, BigQuery 라이브러리의 특정 뷰로 안내합니다.

작업별 정보 스키마 문제 해결

다음 표에는 작업 및 진단 사용 사례별로 분류된 유용한 정보 스키마 뷰가 요약되어 있습니다.

작업 사용 사례 정보 스키마 뷰
쿼리 성능 및 오류
  • 슬롯을 가장 많이 사용하는 비용이 많이 드는 쿼리를 식별합니다.
  • 작업 오류 이유 및 실패 패턴을 집계합니다.
  • 단계별 실행 시간 및 유출된 바이트를 분석합니다.
워크로드 용량 및 경합
  • 슬롯 경합, 제한, 대기 시간을 감지합니다.
  • 인메모리 셔플 메모리 포화를 모니터링합니다.
  • 예약 기준 및 자동 확장 슬롯 사용을 감사합니다.
  • 프로젝트 및 폴더 예약 할당을 확인합니다.
스토리지 비용 및 데이터 아키텍처
  • 물리적 또는 논리적 스토리지가 과도하게 사용되는 테이블을 식별합니다.
  • 시간 이동 및 장애 안전 스토리지 증가를 감지합니다.
  • 파티션 기울어짐 및 파티션 한도에 가까워지는 테이블을 진단합니다.
  • 시간 이동 기간에서 만료되거나 삭제된 테이블을 찾습니다.
액세스 제어 및 거버넌스
  • 테이블 및 데이터 세트에 대한 명시적 Identity and Access Management (IAM) 역할 부여를 감사합니다.
  • 사용자 및 서비스 계정에 대한 액세스 거부 오류를 해결합니다.
  • 프로젝트 간 데이터 세트 공유 및 분석 사용을 추적합니다.
데이터 수집 파이프라인
  • Storage Write API 수집 처리량 및 오류를 모니터링합니다.
  • 스트리밍 삽입 지연 시간 및 속도 제한을 진단합니다.
  • 스트림 유형 및 오류 코드로 실패한 스트림을 식별합니다.
머신러닝 및 벡터 검색
  • 모델 학습 기간 및 리소스 소비를 추적합니다.
  • 벡터 색인 빌드 상태 및 적용 범위 비율을 감사합니다.
  • 저장 프로시저 및 Python UDF 빌드를 해결합니다.
워크로드 최적화 통계
  • 자동 파티션 나누기 및 클러스터링 권장사항을 검토합니다.
  • 구체화된 뷰 후보 테이블을 식별합니다.

정보 스키마를 사용한 문제 해결 원칙

BigQuery에서 워크로드 또는 환경 문제를 진단할 때는 다음 기본 원칙을 적용하세요.

  • 리전, 데이터 세트, 프로젝트별로 범위 지정 BigQuery 워크로드 관리 및 컴퓨팅 리소스는 리전 경계 내에서 실행됩니다. 다음 사항을 고려하세요.

    • 항상 올바른 리전 한정자 (예: region-REGION.INFORMATION_SCHEMA.JOBS_BY_PROJECT) 또는 데이터 세트 한정자를 지정합니다.

    • 단일 사용자 문제, 프로젝트별 워크로드 또는 테넌트 전체 문제를 조사하는지 여부에 따라 적절한 계층 구조 수준 (BY_PROJECT, BY_USER, BY_FOLDER, 또는 BY_ORGANIZATION) 을 선택합니다.

  • 컴퓨팅 수요와 용량의 상관관계 느린 쿼리 성능은 비효율적인 SQL 때문이 아니라 슬롯 경합으로 인해 발생하는 경우가 많습니다. 동일한 시간 창에서 작업 리소스 요청(period_estimated_runnable_units)을 할당된 예약 슬롯(period_slot_ms)과 비교하여 쿼리 조정 기회와 용량 부족으로 인한 문제를 구분합니다.

  • 원격 분석 세분성 및 보관 경계 고려 정보 스키마 뷰마다 고유한 새로고침 간격과 데이터 보관 기간이 있습니다. JOBS 뷰의 작업 메타데이터는 180일 동안 사용할 수 있지만 JOBS_TIMELINERESERVATIONS_TIMELINE 뷰의 고해상도 타임라인 측정항목은 더 짧은 기간 (일반적으로 14 일~30일) 동안 보관됩니다. 장기 감사 및 추세 분석을 위해서는 원격 분석을 파티션을 나눈 테이블로 내보내야 합니다.

  • 여러 문 쿼리에서 측정항목 왜곡 방지 여러 문 스크립트 (DECLARE, IF 또는 WHILE이 포함된 절차형 SQL)는 statement_type = 'SCRIPT'가 있는 상위 작업과 각 문의 개별 하위 작업을 생성합니다. total_slot_ms 또는 total_bytes_billed와 같은 측정항목을 집계할 때는 중복 집계를 방지하기 위해 statement_type = 'SCRIPT'를 필터링합니다.

  • 파티션 열 필터링 쿼리 실행 시간을 최소화하고 주문형 분석에서 불필요한 스캔 비용을 방지하려면 항상 creation_time, job_start_time 또는 period_start와 같은 파티션 열에 제한적인 시간 필터를 포함합니다.

다음 단계

  • 정보 스키마 구문 및 사용 가능한 뷰 목록에 대한 자세한 내용은 INFORMATION_SCHEMA 소개를 참조하세요.
  • 작업 세부정보를 보고, 활성 작업을 나열하고, 실행 중인 작업을 취소하는 방법을 알아보려면 작업 관리를 참조하세요.