Python 2의 Datastore 통계

참고: 새로운 애플리케이션을 빌드하는 개발자는 이 클라이언트 라이브러리보다 Memcache API를 통한 자동 항목 캐싱과 같은 여러 이점이 있는 NDB 클라이언트 라이브러리를 사용할 것을 적극 권장합니다. 현재 기존 DB 클라이언트 라이브러리를 사용하는 중이라면 DB에서 NDB로 이전 가이드를 참조하세요.

Cloud Datastore는 지정된 종류의 항목 수 또는 지정된 유형의 속성 값에서 사용되는 공간과 같이 애플리케이션에 저장된 데이터에 대한 통계를 유지 관리합니다. GCP 콘솔의 대시보드 페이지에서 이러한 통계를 확인할 수 있습니다.

또한 Cloud Datastore API를 사용하여 특수하게 이름이 지정된 항목을 쿼리하면 애플리케이션 내에서 프로그래매틱 방식으로 이러한 값에 액세스할 수 있습니다. 종류 이름이 밑줄 2개로 시작하고 끝나는 형식의 항목으로 각 통계에 액세스할 수 있습니다. 예를 들어 각 앱에는 Cloud Datastore의 모든 항목 총계에 대한 통계를 나타내는 __Stat_Total__ 종류 항목이 정확히 한 개 있습니다. 각 통계 항목에는 다음과 같은 속성이 있습니다.

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

일부 통계 종류에는 아래에 나열된 추가 속성도 포함됩니다.

Python 애플리케이션은 google.appengine.ext.db.stats 패키지가 제공한 모델 클래스를 사용하여 통계 항목에 액세스할 수 있습니다.

from google.appengine.ext.db import stats

global_stat = stats.GlobalStat.all().get()
print 'Total bytes stored: %d' % global_stat.bytes
print 'Total entities stored: %d' % global_stat.count

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

통계 항목은 계산된 통계 값에 포함됩니다. 통계 항목은 애플리케이션에서 사용되는 고유한 종류와 속성 이름 수만큼 공간을 사용합니다.

통계 시스템은 각 네임스페이스별 통계도 생성합니다. 애플리케이션이 Cloud Datastore 네임스페이스를 사용하지 않으면 네임스페이스별 통계가 생성되지 않습니다. 네임스페이스별 통계는 통계가 지정된 네임스페이스에서 확인할 수 있습니다. 네임스페이스별 통계의 종류 이름은 __Stat_Ns_로 시작하고 애플리케이션 전반의 통계 종류에 해당되는 동일한 서픽스로 끝납니다.

수천 개의 네임스페이스, 종류 또는 속성 이름이 포함된 애플리케이션에는 수많은 통계 항목이 필요합니다. 통계를 저장하고 업데이트하기 위한 오버헤드를 합리적인 수준으로 유지하기 위해 Cloud Datastore는 다음과 같은 순서로 통계 항목을 점진적으로 삭제합니다.

  • 네임스페이스별, 종류별, 속성별 통계: __Stat_Ns_PropertyName_Kind__, __Stat_Ns_PropertyType_PropertyName_Kind__
  • 종류별, 속성별 통계: __Stat_PropertyName_Kind__, __Stat_PropertyType_PropertyName_Kind__
  • 네임스페이스별, 종류별 통계: __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__
  • 네임스페이스별 통계: __Stat_Namespace__, __Stat_Ns_Kind_CompositeIndex__, __Stat_Ns_PropertyType__, __Stat_Ns_Total__

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

사용 가능한 통계의 전체 목록은 다음과 같습니다.

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

entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인 항목의 저장용량
builtin_index_count: 내장 색인 항목 수
composite_index_bytes: 바이트 단위로 측정된 복합 색인 항목의 저장용량
composite_index_count: 복합 색인 항목 수
네임스페이스의 모든 항목 __Stat_Namespace__
Python 클래스: NamespaceStat
__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__

Python 클래스: KindStat
복합 색인 테이블의 항목(저장된 각 항목 종류당 하나의 통계 항목). 추가 속성:

index_id: 색인 ID
kind_name: 나타내는 종류 이름(문자열)
종류 항목 __Stat_Kind__
Python 클래스: KindStat
네임스페이스별 항목:
__Stat_Ns_Kind__
Python 클래스: NamespaceKindStat
종류의 항목(저장된 각 항목 종류당 하나의 통계 항목). 추가 속성:

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

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

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

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

property_type: 값 유형 이름(문자열)
kind_name: 나타내는 종류 이름(문자열)
entity_bytes: 바이트 단위로 측정된 항목 테이블의 저장용량
builtin_index_bytes: 바이트 단위로 측정된 내장 색인의 저장용량
builtin_index_count: 내장 색인 항목 수
이름이 포함된 속성 __Stat_PropertyName_Kind__
Python 클래스: KindPropertyNameStat
네임스페이스별 항목:
__Stat_Ns_PropertyName_Kind__
Python 클래스: NamespaceKindPropertyNameStat
특정 종류의 항목 전반에 이름을 지정하는 속성(고유한 속성 이름 및 종류 조합당 하나의 통계 항목). 추가 속성:

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

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

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

  • "Blob"
  • "BlobKey"
  • "Boolean"
  • "Category"
  • "Date/Time"
  • "Email"
  • "Float"
  • "GeoPt"
  • "IM"
  • "Integer"
  • "Key"
  • "Link"
  • "NULL"
  • "PhoneNumber"
  • "PostalAddress"
  • "Rating"
  • "ShortBlob"
  • "String"
  • "Text"
  • "User"
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Python 2용 App Engine 표준 환경