Datastore 통계

Datastore 모드의 Firestore(Datastore)는 애플리케이션에 저장하는 데이터에 대한 통계를 유지합니다(예: 항목 수, 종류, 지정된 유형의 속성 값에서 사용되는 공간).

Google Cloud 콘솔에서 다음 방법 중 하나로 이러한 통계를 볼 수 있습니다.

  • 대시보드 페이지
  • 항목 페이지에서 SELECT * FROM __Stat_Kind__ 형식으로 GQL 쿼리를 실행합니다.
  • Datastore API를 사용하여 항목의 특정 이름을 쿼리하면 애플리케이션 내부에서 프로그래매틱 방식으로 통계를 확인할 수 있습니다. Datastore API에 대한 자세한 내용은 API 및 참조를 참조하세요.

Datastore는 밑줄 2개로 시작하고 끝나는 종류 이름을 사용하여 데이터에 관한 통계를 제공하는 특수 항목을 식별합니다. 이를 통계 항목이라고 합니다. 예를 들어 각 앱에는 Datastore 모드 데이터베이스의 모든 항목에 대한 통계를 나타내는 __Stat_Total__ 종류 항목이 하나 있습니다.

통계 항목은 데이터에 관한 정보를 추적하고 데이터 사용에 관한 통계를 제공합니다. 이는 자동으로 생성됩니다. 각 통계 항목에는 다음과 같은 속성이 있습니다.

  • count: 통계에서 인식된 항목 수(긴 정수)
  • bytes: 이 통계 항목의 총 크기(긴 정수)
  • timestamp: 통계가 최근 업데이트된 시간(날짜-시간 값)

각 항목은 특정 종류에 속합니다. 통계 종류는 수집 또는 사용 중인 통계의 카테고리를 나타냅니다. 종류를 사용하여 쿼리 최적화, 성능 개선, 데이터 분석과 같은 통계의 목적을 식별합니다.

일부 통계 종류에는 이 문서의 통계 목록 섹션에 나열된 추가 속성도 포함됩니다.

통계 시스템에서 새로운 통계 항목을 생성한다고 이전 통계 항목이 즉시 삭제되는 것은 아닙니다. 통계 보기의 일관성을 유지하는 가장 좋은 방법은 최신 timestamp로 통계 항목을 쿼리한 후 다른 통계 항목을 가져올 때 해당 타임스탬프 값을 필터로 사용하는 것입니다.

통계 시스템은 각 네임스페이스별 통계도 생성합니다. 네임스페이스별 통계의 종류 이름은 __Stat_Ns__로 시작하고 애플리케이션 전체에 적용되는 통계의 종류 이름과 동일한 서픽스로 끝납니다.

애플리케이션이 네임스페이스를 사용하지 않으면 통계 시스템에서 네임스페이스별 통계를 생성하지 않습니다. 네임스페이스별 통계는 관련 네임스페이스에서만 확인할 수 있습니다.

통계 목록

다음은 사용 가능한 통계 목록입니다.

통계 통계 항목 종류 설명
모든 항목 __Stat_Total__
네임스페이스별 항목:
__Stat_Ns_Total__
모든 항목. 추가 속성:

entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수
composite_index_bytes: 바이트 단위로 측정된 복합 색인 항목의 저장용량
composite_index_count: 복합 색인 항목 수
네임스페이스의 모든 항목 __Stat_Namespace__
__Stat_Namespace__ 항목은 각 네임스페이스에 대해 생성되며 비어 있는 문자열 네임스페이스에서만 확인됩니다.
네임스페이스의 모든 항목

subject_namespace: 나타내는 네임스페이스(문자열)
entity_bytes바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수
composite_index_bytes: 바이트 단위로 측정된 복합 색인 항목의 저장용량
composite_index_count: 복합 색인 항목 수

자세한 내용은 이 문서의 통계 제한사항 섹션을 참조하세요.
애플리케이션에서 정의된 색인의 모든 항목 __Stat_Kind_CompositeIndex__
네임스페이스별 항목:
__Stat_Ns_Kind_CompositeIndex__
복합 색인 테이블의 항목(저장된 각 항목 종류당 하나의 통계 항목). 추가 속성:

alphanumeric_id: 색인의 영숫자 식별자입니다. gcloud 및 API에 사용되는 동일한 식별자입니다.
index_id: 색인 ID의 내부 정수 표현입니다. gcloud 및 API 메서드의 경우 alphanumeric_id를 대신 사용하세요.
kind_name: 나타내는 종류 이름 (문자열)
last_known_usage_timestamp: 이 색인이 쿼리를 제공한 마지막 시간입니다. 항상 stat_tracked_since_time과 타임스탬프 사이의 시간입니다. 해당 시간대에 기록된 사용량이 없는 경우 null로 설정합니다. __Stat_Ns_Kind_CompositeIndex__에는 없습니다.
stat_tracked_since_time: 색인 사용이 알려진 기간의 시작입니다. __Stat_Ns_Kind_CompositeIndex__에는 표시되지 않습니다.
기본 제공 색인의 모든 항목 __Stat_Kind_BuiltinIndex__ 데이터베이스의 기본 제공 색인에 관한 정보입니다. 기본 제공 색인마다 하나의 통계 항목 추가 속성:

property_name: 색인 생성된 속성의 이름입니다.
kind_name: 나타내는 종류 이름 (문자열)
api_scope: Firestore 또는 Datastore입니다.
query_scope: 색인 쿼리 범위입니다. Datastore 데이터베이스의 경우 항상 COLLECTION_GROUP (종류)로 설정합니다.
value_mode: 쿼리 범위의 모드(예: ASC 또는 DESC)입니다.
last_known_usage_timestamp: 이 색인이 쿼리를 제공한 마지막 시간입니다. 항상 stat_tracked_since_time과 타임스탬프 사이의 시간입니다. 해당 시간대에 사용이 기록되지 않은 경우 null로 설정합니다.
stat_tracked_since_time: 색인 사용이 알려진 기간의 시작입니다.
종류 항목 __Stat_Kind__
네임스페이스별 항목:
__Stat_Ns_Kind__
종류의 항목(저장된 각 항목 종류당 하나의 통계 항목) 추가 속성:

kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수
composite_index_bytes: 바이트 단위로 측정된 복합 색인 항목의 저장용량
composite_index_count: 복합 색인 항목 수
종류의 루트 항목 __Stat_Kind_IsRootEntity__
네임스페이스별 항목:
__Stat_Ns_Kind_IsRootEntity__
항목 그룹 루트 항목(상위 없음)인 종류 항목(저장된 항목의 각 종류당 하나의 통계 항목). 추가 속성:

kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
종류의 비 루트 항목 __Stat_Kind_NotRootEntity__
네임스페이스별 항목:
__Stat_Ns_Kind_NotRootEntity__
항목 그룹 루트 항목(상위 있음)이 아닌 종류 항목(저장된 항목의 각 종류당 하나의 통계 항목). 추가 속성:

kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
유형 속성 __Stat_PropertyType__
네임스페이스별 항목:
__Stat_Ns_PropertyType__
모든 항목의 값 유형 속성(값 유형당 통계 항목 한 개). 추가 속성:

property_type: 값 유형 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수
종류별 유형 속성 __Stat_PropertyType_Kind__
네임스페이스별 항목:
__Stat_Ns_PropertyType_Kind__
특정 종류 항목 전반에 적용되는 값 유형 속성(값 유형 및 종류 조합당 하나의 통계 항목).

추가 속성:

property_type: 값 유형 이름(문자열)
kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인의 저장용량
builtin_index_count: 내장 색인 항목 수

자세한 내용은 이 문서의 통계 제한사항 섹션을 참조하세요.
이름이 포함된 속성 __Stat_PropertyName_Kind__
네임스페이스별 항목:
__Stat_Ns_PropertyName_Kind__
특정 종류의 항목 전반에 이름을 지정하는 속성(고유한 속성 이름 및 종류 조합당 하나의 통계 항목). 추가 속성:

property_name: 속성 이름(문자열)
kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수
이름이 포함된 유형 속성 __Stat_PropertyType_PropertyName_Kind__
네임스페이스별 항목:
__Stat_Ns_PropertyType_PropertyName_Kind__
특정 종류 항목 전반에 특정 이름 및 특정 값 유형을 적용하는 속성(데이터베이스에 존재하는 속성 이름, 값 유형, 종류 조합당 하나의 통계 항목).

추가 속성:

property_type: 값 유형 이름 (문자열)
property_name: 속성 이름 (문자열)
kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수

자세한 내용은 이 문서의 통계 제한사항 섹션을 참조하세요.

일부 통계는 이름별 속성 값 유형을 문자열로 참조합니다. 이러한 이름은 다음과 같습니다.

  • "Blob"
  • "BlobKey"
  • "Boolean"
  • "Category"
  • "Date/Time"
  • "Email"
  • "Float"
  • "GeoPt"
  • "IM"
  • "Integer"
  • "Key"
  • "Link"
  • "NULL"
  • "PhoneNumber"
  • "PostalAddress"
  • "Rating"
  • "ShortBlob"
  • "String"
  • "Text"
  • "User"

통계 제한사항

통계에는 다음과 같은 제한사항이 있습니다.

  • __Stat_PropertyType_Kind__ 속성과 __Stat_PropertyType_PropertyName_Kind__ 속성은 배열 값 유형의 속성 유형 메타데이터를 반환하고 배열의 각 값에 대한 속성 유형을 별도로 기록합니다. 예를 들어 배열 속성에 문자열 목록이 저장된 경우 속성은 속성 유형을 STRING으로 기록하지만 실제 속성 유형은 ARRAY<STRING>입니다.
  • __Stat_Namespace__ 항목에는 __Stat_Ns_Total__ 레코드에 있는 동일한 정보가 포함되어 있습니다. __Stat_Namespace__ 항목은 빈 네임스페이스에 저장되며 소속된 네임스페이스를 설명하는 subject_namespace 필드를 포함합니다. __Stat_Ns_Total__ 레코드는 참조하는 네임스페이스에 저장되므로 subject_namespace 필드를 포함하지 않습니다. 따라서 bytes를 기준으로 내림차순으로 정렬된 __Stat_Namespace__ 종류에 대한 쿼리 (빈 문자열 네임스페이스)는 가장 많은 저장용량을 사용하는 네임스페이스를 먼저 나열합니다. 네임스페이스 전체에 대한 쿼리는 불가능하므로 __Stat_Ns_Total__ 항목에 대한 쿼리는 많아야 1개의 레코드를 생성합니다.

통계 항목 삭제 순서

수천 개의 네임스페이스, 종류 또는 속성 이름이 포함된 애플리케이션에는 수많은 통계 항목이 필요합니다. 통계를 저장하고 업데이트하는 데 드는 오버헤드를 줄이기 위해 Datastore 모드의 Firestore 데이터베이스는 나중에 나열된 순서에 따라 통계 항목을 점진적으로 삭제합니다.

요약 통계 항목 __Stat_Kind_CompositeIndex__, __Stat_PropertyType__, __Stat_Total__은 절대 삭제되지 않습니다.

통계 항목은 다음과 같은 기본 순서로 그룹으로 삭제됩니다.

  1. 네임스페이스별, 종류별, 속성별 통계:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  2. 종류별 및 속성별 통계:

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  3. 네임스페이스별 통계:

    • __Stat_Namespace__
    • __Stat_Ns_Kind_CompositeIndex__
    • __Stat_Ns_PropertyType__
    • __Stat_Ns_Total__

종류 통계 항목의 삭제 순서는 다음과 같습니다.

  1. 네임스페이스별, 종류별 통계

    • __Stat_Ns_Kind__
    • __Stat_Ns_Kind_IsRootEntity__
    • __Stat_Ns_Kind_NotRootEntity__
    • __Stat_Ns_PropertyType_Kind__
  2. 종류별 통계

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

다음 단계