Firestore in modalità Datastore (Datastore) mantiene statistiche sui dati archiviati in un'applicazione, ad esempio il numero di entità esistenti, il tipo o la quantità di spazio utilizzata dai valori delle proprietà di un determinato tipo.
Puoi visualizzare queste statistiche nella console Google Cloud in uno dei seguenti modi:
- Nella pagina Dashboard.
- Nella pagina Entità, esegui una query GQL sotto forma di
SELECT * FROM __Stat_Kind__
. - In modo programmatico all'interno dell'applicazione eseguendo query per entità con nomi speciali utilizzando l'API Datastore. Per ulteriori informazioni sull'API Datastore, consulta la pagina API e riferimenti.
Datastore utilizza nomi di tipo che iniziano e terminano con due trattini bassi per identificare entità speciali che forniscono statistiche sui dati. Queste entità sono chiamate entità statistiche. Ad esempio, ogni app ha un'entità di tipo
__Stat_Total__
, che rappresenta le statistiche su tutte le entità di un
database in modalità Datastore.
Le entità statistiche monitorano le informazioni sui tuoi dati e forniscono approfondimenti sul loro utilizzo. Vengono creati automaticamente. Ogni entità statistica ha le seguenti 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 valore data/ora)
Ogni entità appartiene a un tipo specifico. Tipo di statistiche indica la categoria delle statistiche raccolte o utilizzate. Utilizza il tipo per identificare lo scopo di una statistica, ad esempio l'ottimizzazione di una query, il miglioramento delle prestazioni o l'analisi dei dati.
Alcuni tipi di statistiche hanno anche proprietà aggiuntive elencate nella sezione Elenco di statistiche di questo documento.
Quando il sistema delle statistiche crea nuove entità statistiche, non elimina immediatamente quelle precedenti. Il modo migliore per ottenere una visione coerente delle statistiche è eseguire una query sull'entità statistica con il valore timestamp
più recente, quindi utilizzare questo valore del timestamp come filtro quando recuperi altre entità statistiche.
Il sistema di statistiche crea anche statistiche specifiche per ogni spazio dei nomi. I nomi di tipo delle statistiche specifiche dello spazio dei nomi sono preceduti da __Stat_Ns__
, seguiti dagli stessi suffissi dei nomi di tipo delle statistiche che si applicano all'intera applicazione.
Se un'applicazione non utilizza gli spazi dei nomi, il sistema di statistiche non creerà statistiche specifiche per lo spazio dei nomi. Puoi trovare statistiche specifiche per spazio dei nomi solo nello spazio dei nomi a cui si riferiscono.
Elenco di statistiche
Di seguito è riportato un elenco delle statistiche disponibili:
Statistica | Tipo di entità di statistica | Descrizione |
---|---|---|
tutte le entità | __Stat_Total__ Voce specifica dello spazio dei nomi: __Stat_Ns_Total__ |
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 dell'indice composito misurato in byte.• composite_index_count : il conteggio delle voci dell'indice composito. |
tutte le entità in uno spazio dei nomi | __Stat_Namespace__ 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 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.Per ulteriori informazioni, consulta la sezione Limitazioni delle statistiche di questo documento. |
Tutte le voci degli indici definiti dall'applicazione | __Stat_Kind_CompositeIndex__ Voce specifica dello spazio dei nomi: __Stat_Ns_Kind_CompositeIndex__ |
Voci nella tabella dell'indice composito; un'entità stat per ogni tipo di entità archiviata. Proprietà aggiuntive: • alphanumeric_id : l'identificatore alfanumerico dell'indice. Lo stesso identificatore utilizzato in gcloud e nell'API.• index_id : rappresentazione interna di un numero intero dell'ID indice. Per i metodi gcloud e API, utilizza alphanumeric_id .• kind_name : il nome del tipo rappresentato (una stringa)• last_known_usage_timestamp : l'ultima volta che questo indice ha eseguito una query. Sarà sempre un orario compreso tra stat_tracked_since_time e il timestamp. Imposta su null se non è stato registrato alcun utilizzo in quella finestra temporale. Non presente per __Stat_Ns_Kind_CompositeIndex__ .• stat_tracked_since_time : l'inizio della finestra temporale in cui è noto l'utilizzo dell'indice. Non presente per __Stat_Ns_Kind_CompositeIndex__ . |
Tutte le voci degli indici integrati | __Stat_Kind_BuiltinIndex__ |
Informazioni sugli indici integrati nel database. Un'entità statistica per ogni indice integrato. Proprietà aggiuntive: • property_name : il nome della proprietà indicizzata.• kind_name : il nome del tipo rappresentato (una stringa).• api_scope : Firestore o Datastore .• query_scope : l'ambito della query dell'indice. Imposta sempre su COLLECTION_GROUP (kind) per i database Datastore.• value_mode : la modalità per l'ambito della query, ad esempio ASC o DESC .• last_known_usage_timestamp : l'ultima volta che questo indice ha eseguito una query. Sarà sempre un orario compreso tra stat_tracked_since_time e il timestamp. Impostato su null se non è stato registrato alcun utilizzo in quella finestra temporale.• stat_tracked_since_time : l'inizio della finestra temporale in cui è noto l'utilizzo dell'indice. |
entità di un tipo | __Stat_Kind__ Voce specifica dello spazio dei nomi: __Stat_Ns_Kind__ |
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à principali di un tipo | __Stat_Kind_IsRootEntity__ Voce specifica dello spazio dei nomi: __Stat_Ns_Kind_IsRootEntity__ |
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__ Voce specifica dello spazio dei nomi: __Stat_Ns_Kind_NotRootEntity__ |
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__ Voce specifica dello spazio dei nomi: __Stat_Ns_PropertyType__ |
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 : 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 incorporate. |
proprietà di un tipo per tipo | __Stat_PropertyType_Kind__ Voce specifica dello spazio dei nomi: __Stat_Ns_PropertyType_Kind__ |
Proprietà di un tipo di valore nelle entità di un determinato tipo; un'entità statistica per ogni 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 : lo spazio di archiviazione nell'indice integrato misurato in byte.• builtin_index_count : il conteggio delle voci dell'indice integrate.Per ulteriori informazioni, consulta la sezione Limitazioni delle statistiche di questo documento. |
proprietà con un nome | __Stat_PropertyName_Kind__ Voce specifica dello spazio dei nomi: __Stat_Ns_PropertyName_Kind__ |
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 : 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 incorporate. |
proprietà di un tipo e con un nome | __Stat_PropertyType_PropertyName_Kind__ Voce specifica dello spazio dei nomi: __Stat_Ns_PropertyType_PropertyName_Kind__ |
Proprietà con un determinato nome e di un determinato tipo di valore nelle entità di un determinato tipo; un'entità statistica per ogni combinazione di nome, tipo di valore e tipo di proprietà esistente nel database. 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 : lo spazio di archiviazione nella tabella 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 incorporate.Per ulteriori informazioni, consulta la sezione Limitazioni delle statistiche di questo documento. |
Alcune statistiche fanno riferimento ai tipi di valori delle proprietà per nome, come stringhe. Questi 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"
Limitazioni delle statistiche
Le statistiche presentano i seguenti limiti:
- La proprietà
__Stat_PropertyType_Kind__
e la proprietà__Stat_PropertyType_PropertyName_Kind__
restituiscono i metadati del tipo di proprietà per i tipi di valori array e registrano separatamente il tipo di proprietà per ogni valore nell'array. Ad esempio, se una proprietà array memorizza un elenco di stringhe, la proprietà registra il tipo di proprietà comeSTRING
, mentre il tipo di proprietà effettivo èARRAY<STRING>
. - Le entità
__Stat_Namespace__
contengono le stesse informazioni presenti nei record__Stat_Ns_Total__
. Le entità__Stat_Namespace__
vengono memorizzate nello spazio di nomi vuoto e contengono un camposubject_namespace
che descrive lo spazio di nomi a cui appartengono. I record__Stat_Ns_Total__
vengono memorizzati nello spazio dei nomi a cui fanno riferimento e, pertanto, non contengono un camposubject_namespace
. Di conseguenza, una query sul tipo__Stat_Namespace__
(dallo spazio dei nomi di stringhe vuote) ordinata in ordine decrescente perbytes
elenca prima gli spazi dei nomi che consumano più spazio di archiviazione. Poiché non sono possibili query tra spazi dei nomi, qualsiasi query per entità__Stat_Ns_Total__
produrrà al massimo un solo record.
Ordine di inserimento delle entità statistiche
Le applicazioni con migliaia di spazi di nomi, tipi o nomi di proprietà richiedono un gran numero di entità statistiche. Per ridurre l'overhead di archiviazione e aggiornamento delle statistiche, i database Firestore in modalità Datastore eliminano progressivamente le entità statistiche in base all'ordine elencato di seguito.
Le entità statistiche di riepilogo __Stat_Kind_CompositeIndex__
, __Stat_PropertyType__
e __Stat_Total__
non vengono mai eliminate.
Le entità statistiche vengono inserite in gruppi nel seguente ordine predefinito:
Statistiche per spazio dei nomi, tipo e proprietà:
__Stat_Ns_PropertyName_Kind__
__Stat_Ns_PropertyType_PropertyName_Kind__
Statistiche per tipo e per proprietà
__Stat_PropertyName_Kind__
__Stat_PropertyType_PropertyName_Kind__
Statistiche per spazio dei nomi
__Stat_Namespace__
__Stat_Ns_Kind_CompositeIndex__
__Stat_Ns_PropertyType__
__Stat_Ns_Total__
Le entità delle statistiche sui tipi hanno il seguente ordine di visualizzazione:
Statistiche per spazio dei nomi e per 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__