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__
은 절대 삭제되지 않습니다.
통계 항목은 다음과 같은 기본 순서로 그룹으로 삭제됩니다.
네임스페이스별, 종류별, 속성별 통계:
__Stat_Ns_PropertyName_Kind__
__Stat_Ns_PropertyType_PropertyName_Kind__
종류별 및 속성별 통계:
__Stat_PropertyName_Kind__
__Stat_PropertyType_PropertyName_Kind__
네임스페이스별 통계:
__Stat_Namespace__
__Stat_Ns_Kind_CompositeIndex__
__Stat_Ns_PropertyType__
__Stat_Ns_Total__
종류 통계 항목의 삭제 순서는 다음과 같습니다.
네임스페이스별, 종류별 통계
__Stat_Ns_Kind__
__Stat_Ns_Kind_IsRootEntity__
__Stat_Ns_Kind_NotRootEntity__
__Stat_Ns_PropertyType_Kind__
종류별 통계
__Stat_Kind__
__Stat_Kind_IsRootEntity__
__Stat_Kind_NotRootEntity__
__Stat_PropertyType_Kind__