Statistiche di Datastore

Firestore in modalità Datastore (Datastore) gestisce statistiche sui dati archiviati in un'applicazione, ad esempio il numero di entità, il tipo o la quantità di spazio utilizzato 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 nel formato SELECT * FROM __Stat_Kind__.
  • A livello di programmazione all'interno dell'applicazione eseguendo query per entità con nomi speciali utilizzando l'API Datastore. Per saperne di più sull'API Datastore, consulta API e riferimenti.

Datastore utilizza nomi di tipi che iniziano e terminano con due trattini bassi per identificare entità speciali che forniscono statistiche sui tuoi dati. Questi sono chiamati entità statistiche. Ad esempio, ogni app ha un'entità di tipo __Stat_Total__, che rappresenta le statistiche su tutte le entità in un database in modalità Datastore.

Le entità statistiche monitorano le informazioni sui tuoi dati e ti forniscono approfondimenti sul loro utilizzo. Vengono creati automaticamente. Ogni entità statistica ha le seguenti proprietà:

  • count: il numero di elementi presi in considerazione 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 di data e ora)

Ogni entità appartiene a un tipo specifico. Tipo di statistiche indica la categoria di 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 delle statistiche di questo documento.

Quando il sistema di statistiche crea nuove entità statistiche, non elimina subito le entità statistiche precedenti. Il modo migliore per ottenere una visualizzazione coerente delle statistiche è eseguire una query sull'entità statistica con il timestamp più recente, quindi utilizzare questo valore timestamp come filtro quando recuperi altre entità statistiche.

Il sistema di statistiche crea anche statistiche specifiche per ogni spazio dei nomi. I nomi dei tipi di statistiche specifiche dello spazio dei nomi hanno il prefisso __Stat_Ns__, seguito dagli stessi suffissi dei nomi dei tipi di statistiche che si applicano all'intera applicazione.

Se un'applicazione non utilizza spazi dei nomi, il sistema di statistiche non creerà statistiche specifiche per lo spazio dei nomi. Puoi trovare statistiche specifiche per lo spazio dei nomi solo nello spazio dei nomi a cui si riferiscono.

Elenco delle statistiche

Di seguito è riportato un elenco delle statistiche disponibili:

Statistica Tipo di entità delle statistiche 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 di indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci di indice integrate.
composite_index_bytes: lo spazio di archiviazione nelle voci dell'indice composito misurato in byte.
composite_index_count: il conteggio delle voci degli indici composti.
tutte le entità in uno spazio dei nomi __Stat_Namespace__
Tieni presente che le entità __Stat_Namespace__ vengono create per ogni spazio dei nomi rilevato 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: lo spazio di archiviazione nelle voci di indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci di 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 saperne di più, consulta la sezione Limitazioni delle statistiche di questo documento.
tutte le voci negli indici definiti nell'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 intera interna dell'ID indice. Per gcloud e i metodi API, utilizza invece alphanumeric_id.
kind_name: il nome del tipo rappresentato (una stringa)
last_known_usage_timestamp: l'ultima volta che questo indice ha gestito 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 questo intervallo di tempo. 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à di 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 (tipo) 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 gestito 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 questo periodo di tempo.
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à statistica 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 di indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci di indice integrate.
composite_index_bytes: lo spazio di archiviazione nelle voci dell'indice composito misurato in byte.
composite_index_count: il conteggio delle voci degli indici composti.
entità radice di un tipo __Stat_Kind_IsRootEntity__
Voce specifica dello spazio dei nomi:
__Stat_Ns_Kind_IsRootEntity__
Entità di un tipo che sono entità radice del gruppo di entità (non hanno un elemento principale predecessore); un'entità statistica 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 radice di un tipo __Stat_Kind_NotRootEntity__
Voce specifica dello spazio dei nomi:
__Stat_Ns_Kind_NotRootEntity__
Entità di un tipo che non sono entità radice del gruppo di entità (hanno un elemento principale predecessore); un'entità statistica 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 di indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci di indice integrate.
proprietà di un tipo per genere __Stat_PropertyType_Kind__
Voce specifica dello spazio dei nomi:
__Stat_Ns_PropertyType_Kind__
Proprietà di un tipo di valore tra le 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 di indice integrate.

Per saperne di più, 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 tra le entità di un determinato tipo; un'entità stat per ogni combinazione di nome e tipo 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 di indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci di indice integrate.
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 tra le entità di un determinato tipo; un'entità statistica per ogni combinazione di nome della proprietà, tipo di valore e tipo 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 delle entità misurato in byte.
builtin_index_bytes: lo spazio di archiviazione nelle voci di indice integrate misurato in byte.
builtin_index_count: il conteggio delle voci di indice integrate.

Per saperne di più, 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 le seguenti limitazioni:

  • 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 dell'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__ sono archiviate nello spazio dei nomi vuoto e contengono un campo subject_namespace che descrive lo spazio dei 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. Pertanto, una query sul tipo __Stat_Namespace__ (dallo spazio dei nomi della stringa vuota) ordinata in ordine decrescente per bytes elencherà per primi gli spazi dei nomi che consumano la maggiore quantità di spazio di archiviazione. Poiché le query tra spazi dei nomi non sono possibili, qualsiasi query per le entità __Stat_Ns_Total__ produrrà al massimo un singolo record.

Ordine di eliminazione delle entità delle statistiche

Le applicazioni con migliaia di spazi dei nomi, tipi o nomi di proprietà richiedono un numero elevato 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à delle statistiche riepilogative __Stat_Kind_CompositeIndex__, __Stat_PropertyType__ e __Stat_Total__ non vengono mai eliminate.

Le entità delle statistiche vengono inserite nei gruppi nel seguente ordine predefinito:

  1. statistiche per spazio dei nomi, per tipo e per 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à statistiche di tipo hanno il seguente ordine di eliminazione:

  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. per-kind statistics

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

Passaggi successivi