컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

테이블 통계

Cloud Bigtable은 테이블 통계(테이블에 대한 메타데이터)를 제공합니다. 이 통계는 열당 행 수 또는 열 당 평균 셀 수와 같은 테이블에 대한 요약 정보를 제공합니다.

이 문서에서는 테이블 통계와 Google Cloud CLI를 사용하여 테이블 통계를 가져오는 방법을 설명합니다. 이 페이지를 읽기 전에 Bigtable 스토리지 모델을 이해하고 스키마 설계 권장사항가비지 컬렉션을 숙지하고 있어야 합니다.

테이블 통계는 Bigtable 테이블을 관찰할 수 있게 해줍니다. 성능 또는 스토리지 문제를 해결하거나 스토리지 비용의 소스를 확인하려고 할 때 유용할 수 있습니다. 또한 필요한 것보다 많은 데이터를 저장하고 있는지 확인하는 데에도 도움이 됩니다.

예상 정밀도

테이블의 테이블 통계를 검색할 때 제공되는 데이터는 근사치입니다. 테이블 통계는 가장 최근의 압축축을 기준으로 인스턴스 클러스터 중 하나의 테이블 상태를 반영합니다.

일반적으로 테이블 생성 후 약 1주일 후에 발생하는 초기 압축까지는 테이블 통계의 전체 집합을 사용할 수 없습니다. 테이블 통계는 최근 압축을 기준으로 정확하며, 최대 일주일 전일 수 있습니다.

테이블 통계 필드

테이블의 테이블 통계에 대한 요청은 다음 필드를 반환합니다. 자세한 내용과 예시는 다음 섹션에 나와 있습니다.

테이블 통계 필드 API 이름 Description(설명)
행 수 row_count 테이블의 행 수입니다. 자세한 내용은 행 수를 참조하세요.
행당 평균 열 수 average_columns_per_row 전체 테이블에 대한 각 행의 평균 열 수입니다. 자세한 내용과 예시는 행당 평균 열 수를 참조하세요.
열당 평균 셀 수 average_cells_per_column 모든 행의 모든 열에 저장된 평균 셀 수입니다. 자세한 내용은 열당 평균 셀 수를 참조하세요.
바이트 단위의 논리적 데이터 logical_data_bytes 테이블이 점유하는 공간의 크기입니다. 자세한 내용은 바이트 단위의 논리적 데이터를 참조하세요.

테이블 통계에는 테이블의 각 column family에 대한 다음 필드도 포함됩니다.

column family 통계 필드 API 이름 Description(설명)
행당 평균 열 수 average_columns_per_row column family의 행당 평균 열 수입니다. 자세한 내용과 예시는 행당 평균 열 수를 참조하세요.
열당 평균 셀 수 average_cells_per_column 각 열에 있는 셀 수로, column family의 열이 있는 모든 행에서 평균을 냅니다. 자세한 내용과 예시는 열당 평균 셀 수를 참조하세요.
바이트 단위의 논리적 데이터 logical_data_bytes column family가 점유하는 공간의 크기입니다. 자세한 내용은 바이트 단위의 논리적 데이터를 참조하세요.

테이블 통계 필드 세부정보

행 수

행 수는 테이블의 행 수입니다. 각 행은 row key로 식별됩니다.

행당 평균 열 수

Bigtable은 테이블의 행당 평균 열 수에 도달하기 위해 전체 테이블의 열 수를 계산하고 이 값을 테이블의 행 수로 나눕니다.

예를 들어 다음 표를 살펴보세요. 첫 번째 행에는 3개의 열이 있고, 두 번째 행에는 2개의 열이 있습니다.

행 키 Column family family-A Column family family-B
row key 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
row key 2 family-A:qualifier-W family-B:qualifier-Z

테이블에는 열 5개와 행 2개가 포함되므로 행당 평균 열 수는 2.5개입니다.

이 테이블 통계는 테이블이 길고 좁거나(행당 열 수가 적음) 짧고 넓은지(각 행마다 여러 개의 열)에 대한 일반적인 정보를 제공합니다.

열당 평균 셀 수

Bigtable은 테이블의 열당 평균 셀 수를 가져오기 위해 테이블에 저장된 총 셀 수를 테이블의 열 수로 나눕니다.

스키마 디자인 및 가비지 컬렉션 정책에 따라 테이블의 열에 여러 셀이 있거나 셀 하나만 있을 수 있습니다. 저장할 수 있는 셀 수는 할당량과 테이블 내 데이터 크기의 한도 페이지에 설명된 데이터 크기 한도에 따라 달라집니다.

이 숫자가 예상보다 많은 경우 가비지 컬렉션 규칙을 검사하여 필요한 것보다 많은 셀을 유지하고 있는지 확인합니다. 스키마 및 쓰기 패턴을 조정해야 하는지 여부도 생각해보세요.

바이트 단위의 논리적 데이터(테이블)

이 값은 전체 테이블을 읽는 데 필요한 대략적인 바이트 수를 나타냅니다. 이 테이블 통계로 테이블에 저장된 바이트 수를 파악할 수 있습니다. 논리적 데이터를 바이트 단위로 이해하면 압축이 테이블에 미치는 영향을 이해하는 데 도움이 될 수 있습니다. 예를 들어 Cloud Monitoring에서 보고된 테이블 크기가 테이블의 바이트 단위의 논리적 데이터보다 크거나 같으면 데이터를 쉽게 압축할 수 없는 형식으로 저장하는 것일 수도 있습니다.

column family 통계 필드 세부정보

테이블의 테이블 통계에는 테이블의 각 column family에 대한 다음 필드가 포함됩니다.

행당 평균 열 수

이 수는 column family의 열 수를 테이블의 행 수로 나눠서 계산합니다.

예를 들어 다음 표를 살펴보세요. 테이블에는 column family family-Afamily-B의 열이 있는 3개의 행이 있습니다.

행 키 Column family family-A Column family family-B
row key 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
row key 2 family-A:qualifier-W
row key 3 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y family-B:qualifier-Z

column family family-A에는 테이블에 총 5개의 열이 있습니다. 3개의 행으로 나누면 family-A의 열당 평균 셀 수는 1.67입니다(소수점 2자리로 반올림됨).

column family family-B에는 테이블에 총 3개의 열이 있습니다. 3개의 행으로 나누면 family-A의 행당 평균 열 수는 1입니다.

열당 평균 셀 수

Bigtable은 열당 column family의 평균 셀 수를 결정하기 위해 테이블의 모든 행에 있는 column family의 모든 셀 수를 테이블의 행 수로 나눕니다.

예를 들어 column family family-D에 있는 다음 행을 살펴보겠습니다.

행 키 Column family family-D
row key 1 family-D:qualifier-W(셀 3개) family-D:qualifier-X(셀 1개)
row key 2 family-D:qualifier-X(셀 10개)
row key 3 family-D:qualifier-W(셀 7개) family-D:qualifier-Y(셀 6개)

column family의 셀 수는 3 + 1 + 10 + 7 + 6 = 27입니다. 이 값을 3(행 수)으로 나누면 column family family-D에 열당 평균 셀이 9임을 의미합니다.

바이트 단위의 논리적 데이터(column family)

바이트 단위의 논리적 데이터는 column family가 차지하는 공간을 반영합니다. 이 값은 테이블 통계가 반환될 때 column family의 모든 데이터를 읽어야 하는 대략적인 바이트 수입니다.

gcloud CLI 사용 예시

sample-table이라는 테이블의 테이블 통계를 가져오려면 bigtable instances table describe 명령어를 사용합니다.

bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID --view stats

다음을 바꿉니다.

  • TABLE_ID: 테이블의 영구 식별자
  • INSTANCE_ID: 인스턴스의 영구 식별자

출력은 다음과 비슷합니다.

  columnFamilies:
    my-family:
     stats:
       averageCellsPerColumn: 12.34
       averageColumnsPerRow: 56.78
       logicalDataBytes: 314159
  name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
  stats:
    averageCellsPerColumn: 12.34
    averageColumnsPerRow: 56.78
    logicalDataBytes: 314159
    rowCount: 271828

다음 단계