파티션 및 클러스터 권장사항 보기

이 문서에서는 파티션 및 클러스터 추천자의 작동 방식과 권장사항 및 통계를 보는 방법을 설명합니다.

BigQuery 파티셔닝 및 클러스터링 추천자는 BigQuery 테이블이 최적화되도록 파티션 또는 클러스터 권장사항을 생성합니다. 추천자는 BigQuery 테이블의 워크플로를 분석하고 테이블 파티션 나누기 또는 테이블 클러스터링을 사용하여 워크플로 및 쿼리 비용을 효율적으로 최적화하기 위한 권장사항을 제공합니다.

추천자 서비스에 대한 자세한 내용은 추천자 개요를 참조하세요.

추천자 작동 방식

파티션 나누기 및 클러스터링 추천자는 권장사항을 생성하기 위해 지난 30일 동안의 프로젝트 워크로드 실행 데이터를 사용하여 최적화되지 않은 파티션 나누기 및 클러스터링 구성에 대해 각 BigQuery 테이블을 분석합니다. 또한 추천자는 머신러닝을 사용하여 다양한 파티셔닝 또는 클러스터링 구성으로 워크로드 실행을 최적화할 수 있는 정도를 예측합니다. 추천자가 테이블의 파티션 나누기 또는 클러스터링을 통해 상당한 비용을 절감하는 것으로 확인되면 추천자는 권장사항을 생성합니다. 파티셔닝 및 클러스터링 추천자는 다음 유형의 권장사항을 생성합니다.

기존 테이블 유형 권장사항 하위유형 권장사항 예시
파티셔닝되지 않음, 클러스터링되지 않음 파티션 'column_C에서 일별로 파티션을 나누어 월별 약 64 슬롯 시간 절약'
파티셔닝되지 않음, 클러스터링되지 않음 클러스터 'column_C에서 클러스터링하여 월 약 64 슬롯 시간 절약'
파티셔닝, 클러스터링되지 않음 클러스터 'column_C에서 클러스터링하여 월 약 64 슬롯 시간 절약'

각 권장사항은 다음 세 가지 부분으로 구성됩니다.

  • 특정 테이블의 파티션 또는 클러스터링에 대한 안내
  • 파티션을 나누거나 클러스터링할 테이블의 특정 열
  • 권장사항 적용 시 예상되는 월별 절감액

잠재적인 워크로드 절감을 계산하기 위해 추천자는 지난 30일 동안의 이전 실행 워크로드 데이터가 향후 워크로드를 나타내는 것으로 가정합니다.

Recommender API는 테이블 워크로드 정보도 통계 형식으로 반환합니다. 통계는 프로젝트 워크로드를 이해하는 데 도움이 되는 발견 항목으로, 파티션 또는 클러스터 권장사항으로 워크로드 비용을 개선하는 방법에 대한 추가 컨텍스트를 제공합니다.

제한사항

파티셔닝 및 클러스터링 추천자는 legacy SQL 쿼리를 분석에서 제외합니다.

파티셔닝 및 클러스터링 추천자는 다음 리전에 저장된 리소스를 지원하지 않습니다.

  • europe-central2, europe-west8, europe-west9, europe-west12, europe-north1, europe-southwest1
  • us-east1, us-east5, us-south1
  • me-central1, me-central2, me-west1
  • australia-southeast2
  • southamerica-west1

시작하기 전에

파티션 및 클러스터 권장사항을 보려면 먼저 Recommender API를 사용 설정해야 합니다.

필수 권한

파티션 및 클러스터 권장사항에 액세스하는 데 필요한 권한을 얻으려면 관리자에게 BigQuery 파티셔닝 클러스터링 추천자 뷰어(roles/recommender.bigqueryPartitionClusterViewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 파티션 및 클러스터 권장사항에 액세스하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

파티션 및 클러스터 권장사항에 액세스하려면 다음 권한이 필요합니다.

  • recommender.bigqueryPartitionClusterRecommendations.get
  • recommender.bigqueryPartitionClusterRecommendations.list

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

BigQuery에서 IAM 역할 및 권한에 대한 자세한 내용은 IAM 소개를 참조하세요.

추천 보기

이 섹션에서는 Google Cloud 콘솔, Google Cloud CLI, Recommender API를 사용하여 파티션 및 클러스터 추천과 통계를 보는 방법을 설명합니다.

다음 옵션 중 하나를 선택합니다.

콘솔

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

    BigQuery로 이동

  2. 추천 탭을 열려면 추천 > 모든 추천 보기를 클릭합니다.

    추천을 클릭하여 모든 추천을 확인합니다.

    추천 탭에는 프로젝트에 사용할 수 있는 모든 추천이 나열됩니다.

  3. BigQuery 워크로드 비용 최적화 패널에서 모두 보기를 클릭합니다.

    비용 추천 테이블에는 현재 프로젝트에 생성된 모든 추천이 나와 있습니다. 예를 들어 다음 스크린샷은 추천자가 example_table 테이블을 분석한 다음 대략적인 양의 바이트와 슬롯을 저장하기 위해 example_column 열의 클러스터링을 추천하는 방법을 보여줍니다.

    파티션 나누기 및 클러스터링 추천이 포함된 추천 테이블

  4. 테이블 통계 및 추천에 대한 자세한 내용을 보려면 추천을 클릭합니다.

또는 측면 탐색 메뉴에서 추천을 클릭하여 프로젝트 또는 조직에 사용할 수 있는 모든 추천을 볼 수 있습니다.

gcloud

특정 프로젝트에 대한 파티션 또는 클러스터 권장사항을 보려면 gcloud recommender recommendations list 명령어를 사용합니다.

gcloud recommender recommendations list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --recommender=google.bigquery.table.PartitionClusterRecommender \
    --format=FORMAT_TYPE \

다음을 바꿉니다.

  • PROJECT_NAME: BigQuery 테이블이 포함된 프로젝트의 이름
  • REGION_NAME: 프로젝트가 있는 리전
  • FORMAT_TYPE: 지원되는 gcloud CLI 출력 형식(예: JSON)
다음 표에서는 Recommender API 응답의 중요한 필드를 설명합니다.

속성 하위유형 관련성 설명
recommenderSubtype 파티션 또는 클러스터 권장사항 유형을 나타냅니다.
content.overview.partitionColumn 파티션 권장되는 파티션 나누기 열 이름입니다.
content.overview.partitionTimeUnit 파티션 권장되는 파티션 나누기 시간 단위입니다. 예를 들어 DAY는 권장 열에 일별 파티션을 포함하는 것이 좋다는 것을 의미합니다.
content.overview.clusterColumns 클러스터 권장되는 클러스터링 열 이름입니다.

gcloud CLI를 사용하여 테이블 통계를 보려면 gcloud recommender insights list 명령어를 사용합니다.

gcloud recommender insights list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --insight-type=google.bigquery.table.StatsInsight \
    --format=FORMAT_TYPE \

다음을 바꿉니다.

  • PROJECT_NAME: BigQuery 테이블이 포함된 프로젝트의 이름
  • REGION_NAME: 프로젝트가 있는 리전
  • FORMAT_TYPE: 지원되는 gcloud CLI 출력 형식(예: JSON)
다음 표에서는 통계 API 응답의 중요한 필드를 설명합니다.

속성 하위유형 관련성 설명
content.existingPartitionColumn 클러스터 기존 파티션 나누기 열(있는 경우)
content.tableSizeTb 모두 테이블 크기(테라바이트 단위)
content.bytesReadMonthly 모두 테이블에서 읽은 월별 바이트 수
content.slotMsConsumedMonthly 모두 테이블에서 실행되는 워크로드에서 소비한 월별 슬롯 밀리초
content.queryJobsCountMonthly 모두 테이블에서 실행되는 월별 작업 수

REST API

특정 프로젝트에 대한 파티션 또는 클러스터 권장사항을 보려면 REST API를 사용합니다. 각 명령어에 gcloud CLI를 사용하여 가져올 수 있는 인증 토큰을 제공해야 합니다. 인증 토큰을 가져오는 방법에 대한 자세한 내용은 ID 토큰을 가져오는 방법을 참조하세요.

curl list 요청을 사용하여 특정 프로젝트에 대한 모든 권장사항을 볼 수 있습니다.

curl
    -H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
    -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/recommenders/google.bigquery.table.PartitionClusterRecommender/recommendations

다음을 바꿉니다.

  • GCLOUD_AUTH_TOKEN: 유효한 gcloud CLI 액세스 토큰 이름
  • PROJECT_NAME: BigQuery 테이블이 포함된 프로젝트의 이름
다음 표에서는 Recommender API 응답의 중요한 필드를 설명합니다.

속성 하위유형 관련성 설명
recommenderSubtype 파티션 또는 클러스터 권장사항 유형을 나타냅니다.
content.overview.partitionColumn 파티션 권장되는 파티션 나누기 열 이름입니다.
content.overview.partitionTimeUnit 파티션 권장되는 파티션 나누기 시간 단위입니다. 예를 들어 DAY는 권장 열에 일별 파티션을 포함하는 것이 좋다는 것을 의미합니다.
content.overview.clusterColumns 클러스터 권장되는 클러스터링 열 이름입니다.

REST API를 사용하여 테이블 통계를 보려면 다음 명령어를 실행합니다.

curl
-H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
-H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/insightTypes/google.bigquery.table.StatsInsight/insights

다음을 바꿉니다.

  • GCLOUD_AUTH_TOKEN: 유효한 gcloud CLI 액세스 토큰 이름
  • PROJECT_NAME: BigQuery 테이블이 포함된 프로젝트의 이름
다음 표에서는 통계 API 응답의 중요한 필드를 설명합니다.

속성 하위유형 관련성 설명
content.existingPartitionColumn 클러스터 기존 파티션 나누기 열(있는 경우)
content.tableSizeTb 모두 테이블 크기(테라바이트 단위)
content.bytesReadMonthly 모두 테이블에서 읽은 월별 바이트 수
content.slotMsConsumedMonthly 모두 테이블에서 실행되는 워크로드에서 소비한 월별 슬롯 밀리초
content.queryJobsCountMonthly 모두 테이블에서 실행되는 월별 작업 수

INFORMATION_SCHEMA로 추천 보기

INFORMATION_SCHEMA 뷰를 사용하여 추천 및 통계를 볼 수도 있습니다. 예를 들어 INFORMATION_SCHEMA.RECOMMENDATIONS 뷰를 사용하면 다음 예시와 같이 슬롯 절감액을 기준으로 상위 3개 추천을 확인할 수 있습니다.

+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
|                    recommender                    |   target_resources      | est_gb_saved_monthly | slot_hours_saved_monthly |  last_updated_time
+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
| google.bigquery.materializedview.Recommender      | ["project_resource"]    | 140805.38289248943   |        9613.139166666666 |  2024-07-01 13:00:00
| google.bigquery.table.PartitionClusterRecommender | ["table_resource_1"]    | 4393.7416711859405   |        56.61476777777777 |  2024-07-01 13:00:00
| google.bigquery.table.PartitionClusterRecommender | ["table_resource_2"]    |   3934.07264107652   |       10.499466666666667 |  2024-07-01 13:00:00
+---------------------------------------------------+--------------------------------------------------------------------------------------------------+

자세한 내용은 다음 리소스를 참조하세요.

문제 해결

문제: 특정 테이블에 대한 추천이 표시되지 않습니다.

다음과 같은 경우 파티션 및 클러스터 추천이 표시되지 않을 수 있습니다.

  • 테이블이 10GB 미만입니다.
  • 이 테이블의 DML 작업에 대한 쓰기 비용이 높습니다.
  • 지난 30일 동안 테이블을 읽지 않았습니다.
  • 월별 예상 절감액이 너무 적습니다(슬롯 시간 1시간 미만 절감).
  • 테이블이 이미 클러스터링되었습니다.

가격 책정

권장사항을 확인할 때 워크로드 성능에 미치는 비용 또는 부정적인 영향은 없습니다.

다음 단계