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 nei seguenti modi:

  • Nella pagina Dashboard.
  • Nella pagina Entità, esegui una query GQL nel formato 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 sui per l'API Datastore, consulta API e Riferimento.

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 ti 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 articoli 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 le statistiche che vengono raccolte o utilizzate. Utilizza il tipo per identificare lo scopo di un statistiche, come 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 statistico crea nuove entità statistiche, non elimina le entità statistiche 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 di statistiche specifiche dello spazio dei nomi vengono preceduto dal prefisso __Stat_Ns__, seguito dagli stessi suffissi dei nomi di tipo di statistiche applicabili all'intera applicazione.

Se un'applicazione non utilizza spazi dei nomi, il sistema di statistiche non crea 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 entità statistiche Descrizione
tutte le entità __Stat_Total__
Voce specifica dello spazio dei nomi:
__Stat_Ns_Total__
Tutte le entità. Proprietà aggiuntive:

entity_bytes: 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 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 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 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 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:

index_id: l'ID indice.
kind_name: il nome del tipo rappresentato (una stringa)
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: 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 degli indici composti.
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à radice del gruppo di entità (nessuna entità padre 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 root 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 precedente); 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: 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 per tipo __Stat_PropertyType_Kind__
Voce specifica dello spazio dei nomi:
__Stat_Ns_PropertyType_Kind__
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: 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 dato nome tra entità di un determinato tipo; un'entità statistica per 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: spazio di archiviazione nelle voci di 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 con un determinato tipo di valore tra entità di un determinato tipo; un'entità statistica per 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: spazio di archiviazione nelle voci di indice integrate misurato in byte.
builtin_index_count: il numero di voci di indice integrate.

Per ulteriori informazioni, consulta la sezione Limiti delle statistiche di questo documento.

Alcune statistiche fanno riferimento ai tipi di valori delle proprietà in base al nome, 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"

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 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__ sono archiviati nello spazio dei nomi a cui fanno riferimento e 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 negli spazi dei nomi, qualsiasi query per le entità __Stat_Ns_Total__ produrrà al massimo un singolo record.

Ordine di inserimento delle entità 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à 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à statistiche dei tipi hanno il seguente ordine di rilascio:

  1. statistiche per tipo e spazio dei nomi

    • __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