Statistiche di Datastore

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à come STRING, 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 campo subject_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 campo subject_namespace. Di conseguenza, una query sul tipo __Stat_Namespace__ (dallo spazio dei nomi di stringhe vuote) ordinata in ordine decrescente per bytes 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:

  1. Statistiche per spazio dei nomi, tipo e proprietà:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  2. Statistiche per tipo e per proprietà

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  3. 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:

  1. Statistiche per spazio dei nomi e per tipo

    • __Stat_Ns_Kind__
    • __Stat_Ns_Kind_IsRootEntity__
    • __Stat_Ns_Kind_NotRootEntity__
    • __Stat_Ns_PropertyType_Kind__
  2. Statistiche per tipo

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

Passaggi successivi