Statistiche di Datastore nei servizi in bundle legacy

Nota: gli sviluppatori che creano nuove applicazioni sono vivamente invitati a utilizzare la libreria client NDB, che offre diversi vantaggi rispetto a questa libreria client, ad esempio la memorizzazione nella cache automatica delle entità tramite l'API Memcache. Se al momento utilizzi la libreria client DB precedente, leggi la guida alla migrazione da DB a NDB

Datastore gestisce le statistiche relative ai dati archiviati per un'applicazione, ad esempio il numero di entità di un determinato tipo o la quantità di spazio utilizzata dai valori delle proprietà di un determinato tipo. Puoi visualizzare queste statistiche nella pagina Dashboard della console Google Cloud.

Puoi anche accedere a questi valori in modo programmatico all'interno dell'applicazione eseguire query su entità con nomi specifici usando l'API Datastore. Ogni statistica è accessibile come un'entità il cui nome del tipo inizia e termina con due trattini bassi. Ad esempio, ogni app ha esattamente un'entità di tipo __Stat_Total__ che rappresenta le statistiche su tutte le entità in Datastore in totale. Ogni entità statistica ha quanto segue: proprietà:

  • count, il numero di elementi considerati dalla statistica (un numero intero lungo)
  • bytes, la dimensione totale degli elementi per questa statistica (un numero intero lungo)
  • timestamp, l'ora dell'aggiornamento più recente della statistica (un data/ora )

Alcuni tipi di statistiche hanno anche proprietà aggiuntive, elencate di seguito.

Un'applicazione Python può utilizzare le classi di modelli fornite dal pacchetto google.appengine.ext.db.stats per accedere alle entità statistiche.

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

Quando il sistema delle statistiche crea nuove entità statistiche, non elimina subito quelle vecchie. Il modo migliore per ottenere una visione coerente delle statistiche è eseguire una query per l'entità GlobalStat con il valore timestamp più recente, quindi utilizzare questo valore del timestamp come filtro per recuperare altre entità statistiche.

Le entità statistiche sono incluse nei valori statistici calcolati. Le entità statistiche occupano spazio in base al numero di tipi e nomi di proprietà unici utilizzati dall'applicazione.

Il sistema di statistiche creerà anche statistiche specifiche per ogni spazio dei nomi. Tieni presente che se un'applicazione non utilizza gli spazi dei nomi di Datastore, le statistiche specifiche dello spazio dei nomi non verranno create. Le statistiche specifiche dello spazio dei nomi si trovano nello spazio dei nomi a cui si riferiscono. I nomi dei tipi per statistiche specifiche per lo spazio dei nomi hanno il prefisso __Stat_Ns_ e hanno lo stesso come suffisso corrispondente ai tipi di statistiche a livello di applicazione.

Le applicazioni con migliaia di spazi dei nomi, tipi o nomi di proprietà richiedono un gran numero di entità statistiche. Per ridurre i costi di archiviazione e le statistiche sono ragionevoli, Datastore progressivamente elimina le entità statistiche, nel seguente ordine:

  • Statistiche per spazio dei nomi, per tipo e per proprietà: __Stat_Ns_PropertyName_Kind__ e __Stat_Ns_PropertyType_PropertyName_Kind__
  • statistiche per tipo e per proprietà: __Stat_PropertyName_Kind__, __Stat_PropertyType_PropertyName_Kind__
  • Statistiche per namespace e tipo: __Stat_Ns_Kind__, __Stat_Ns_Kind_IsRootEntity__, __Stat_Ns_Kind_NotRootEntity__, __Stat_Ns_PropertyType_Kind__
  • statistiche per tipo: __Stat_Kind__, __Stat_Kind_IsRootEntity__, __Stat_Kind_NotRootEntity__ __Stat_PropertyType_Kind__
  • Statistiche per spazio dei nomi: __Stat_Namespace__, __Stat_Ns_Kind_CompositeIndex__, __Stat_Ns_PropertyType__, __Stat_Ns_Total__

Le entità delle statistiche di riepilogo (__Stat_Kind_CompositeIndex__, __Stat_PropertyType__ e __Stat_Total__) non vengono mai eliminati.

Di seguito è riportato l'elenco completo delle statistiche disponibili:

Statistica Tipo entità statistiche Descrizione
tutte le entità __Stat_Total__
Classe Python: GlobalStat
Voce specifica dello spazio dei nomi:
__Stat_Ns_Total__
Classe Python: NamespaceGlobalStat
Tutte le entità. Proprietà aggiuntive:

entity_bytes: lo spazio di archiviazione nella tabella delle entità misurato in byte.
builtin_index_bytes: lo spazio di archiviazione nelle voci dell'indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci dell'indice integrate.
composite_index_bytes: lo spazio di archiviazione nelle voci di indice composto misurato in byte.
composite_index_count: il conteggio delle voci di indice composto.
tutte le entità in uno spazio dei nomi __Stat_Namespace__
Classe Python: NamespaceStat
Tieni presente che le entità __Stat_Namespace__ vengono create per ogni spazio dei nomi incontrato e si trovano solo nello spazio dei nomi della stringa vuota.
Tutte le entità in uno spazio dei nomi.

subject_namespace, lo spazio dei nomi rappresentato (una stringa)
entity_bytes: lo spazio di archiviazione nella tabella delle entità misurato in byte.
builtin_index_bytes: spazio di archiviazione nelle voci di indice integrate misurato in byte.
builtin_index_count: il numero di voci di indice integrate.
composite_index_bytes: lo spazio di archiviazione nelle voci di indice composto misurato in byte.
composite_index_count: il conteggio delle voci di indice composto.
tutte le voci negli indici definiti dall'applicazione __Stat_Kind_CompositeIndex__
Voce specifica dello spazio dei nomi: __Stat_Ns_Kind_CompositeIndex__

Classe Python: KindStat
Voci nella tabella degli indici composti; un'entità statistica per ogni tipo di entità archiviata. Proprietà aggiuntive:

index_id, l'ID indice.
kind_name, il nome del tipo rappresentato (una stringa)
entità di un tipo __Stat_Kind__
Classe Python: KindStat
Voce specifica per lo spazio dei nomi:
__Stat_Ns_Kind__
Classe Python: NamespaceKindStat
Entità di un tipo; un'entità di stato per ogni tipo di entità archiviata. Proprietà aggiuntive:

kind_name, il nome del tipo rappresentato (una stringa)
entity_bytes: lo spazio di archiviazione nella tabella delle entità misurato in byte.
builtin_index_bytes: lo spazio di archiviazione nelle voci dell'indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci dell'indice integrate.
composite_index_bytes: lo spazio di archiviazione nelle voci dell'indice composito misurato in byte.
composite_index_count: il conteggio delle voci dell'indice composito.
entità radice di un tipo __Stat_Kind_IsRootEntity__
Classe Python: KindRootEntityStat
Voce specifica dello spazio dei nomi:
__Stat_Ns_Kind_IsRootEntity__
Classe Python: NamespaceKindRootEntityStat
Entità di un tipo che sono entità di primo livello del gruppo di entità (non hanno un'entità principale precedente); un'entità di stato per ogni tipo di entità archiviata. Proprietà aggiuntive:

kind_name, il nome del tipo rappresentato (una stringa)
entity_bytes: lo spazio di archiviazione nella tabella delle entità misurato in byte.
entità non principali di un tipo __Stat_Kind_NotRootEntity__
Classe Python: KindNotRootEntityStat
Voce specifica per lo spazio dei nomi:
__Stat_Ns_Kind_NotRootEntity__
Classe Python: NamespaceKindNotRootEntityStat
Entità di un tipo che non sono entità principali del gruppo di entità (hanno un'entità principale del gruppo di entità); un'entità di stato per ogni tipo di entità archiviata. Proprietà aggiuntive:

kind_name, il nome del tipo rappresentato (una stringa)
entity_bytes: lo spazio di archiviazione nella tabella delle entità misurato in byte.
proprietà di un tipo __Stat_PropertyType__
Classe Python: PropertyTypeStat
Voce specifica dello spazio dei nomi:
__Stat_Ns_PropertyType__
Classe Python: NamespacePropertyTypeStat
Proprietà di un tipo di valore in tutte le entità; un'entità statistica per tipo di valore. Proprietà aggiuntive:

property_type, il nome del tipo di valore (una stringa)
entity_bytes: l'archiviazione nella tabella delle entità misurata in byte.
builtin_index_bytes: lo spazio di archiviazione nelle voci dell'indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci dell'indice incorporate.
proprietà di un tipo per tipo __Stat_PropertyType_Kind__
Classe Python: KindPropertyTypeStat
Voce specifica per lo spazio dei nomi:
__Stat_Ns_PropertyType_Kind__
Classe Python: NamespaceKindPropertyTypeStat
le proprietà di un tipo di valore tra le entità di un determinato tipo; un'entità statistica per combinazione di tipo e tipo di proprietà. Proprietà aggiuntive:

property_type, il nome del tipo di valore (una stringa)
kind_name, il nome del tipo rappresentato (una stringa)
entity_bytes: lo spazio di archiviazione nella tabella delle entità misurato in byte.
builtin_index_bytes: spazio di archiviazione nell'indice integrato misurato in byte.
builtin_index_count: il numero di voci di indice integrate.
proprietà con un nome __Stat_PropertyName_Kind__
Classe Python: KindPropertyNameStat
Voce specifica dello spazio dei nomi:
__Stat_Ns_PropertyName_Kind__
Classe Python: NamespaceKindPropertyNameStat
Proprietà con un determinato nome nelle entità di un determinato tipo; un'entità statistica per ogni combinazione di tipo e nome di proprietà univoci. Proprietà aggiuntive:

property_name, il nome della proprietà (una stringa)
kind_name, il nome del tipo rappresentato (una stringa)
entity_bytes: l'archiviazione nella tabella delle entità misurata in byte.
builtin_index_bytes: spazio di archiviazione nelle voci di indice integrate misurato in byte.
builtin_index_count: il numero di voci di indice integrate.
proprietà di un tipo e con un nome __Stat_PropertyType_PropertyName_Kind__
Classe Python: KindPropertyNamePropertyTypeStat
Voce specifica dello spazio dei nomi:
__Stat_Ns_PropertyType_PropertyName_Kind__
Classe Python: NamespaceKindPropertyNamePropertyTypeStat
Proprietà con un determinato nome e con un determinato tipo di valore tra entità di un determinato tipo; un'entità statistica per combinazione di nome proprietà, tipo di valore e tipo esistente in Datastore. Proprietà aggiuntive:

property_type, il nome del tipo di valore (una stringa)
property_name, il nome della proprietà (una stringa)
kind_name, il nome del tipo rappresentato (una stringa)
entity_bytes: l'archiviazione nella tabella delle entità misurata in byte.
builtin_index_bytes: lo spazio di archiviazione nelle voci dell'indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci dell'indice incorporate.

Alcune statistiche fanno riferimento ai tipi di valori delle proprietà Datastore per come stringhe. I nomi sono i seguenti:

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