Firestore im Datastore-Modus erfasst Statistiken der für eine Anwendung gespeicherten Daten, z. B. die Anzahl der Entitäten je Typ oder wie viel Speicherplatz für Attributwerte eines bestimmten Typs verwendet wird. Sie können sich diese Statistiken in der Google Cloud Console ansehen. Öffnen Sie entweder die Seite Dashboard oder führen Sie eine GQL-Abfrage in der Form SELECT * FROM __Stat_Kind__
auf der Seite Entitäten aus.
Sie können auch programmatisch innerhalb der Anwendung auf diese Werte zugreifen. Führen Sie dazu mit der Cloud Datastore API Abfragen nach bestimmten benannten Entitäten aus. Auf jede Statistik kann als Entität zugegriffen werden, deren Typname mit zwei Unterstrichen beginnt und endet. Beispiel: Jede Anwendung hat genau eine Entität vom Typ __Stat_Total__
, die Statistiken für alle Entitäten im Datastore-Modus insgesamt darstellt. Alle Statistikentitäten haben folgende Attribute:
count
: die Anzahl der in der Statistik berücksichtigten Elemente (eine lange Ganzzahl)bytes
: die Gesamtgröße der Elemente für diese Statistik (eine lange Ganzzahl)timestamp
: der Zeitpunkt der letzten Aktualisierung der Statistik (ein Datum-Uhrzeit-Wert)
Einige Statistiktypen haben zusätzliche Attribute, die weiter unten aufgeführt sind.
Wenn das Statistiksystem neue Statistikentitäten erstellt, werden die alten Statistikentitäten nicht direkt gelöscht. Die beste Möglichkeit für eine konsistente Ansicht der Statistiken besteht in der Abfrage der Statistikentität mit dem aktuellen timestamp
und der Verwendung dieses Zeitstempelwerts als Filter beim Abruf anderer Statistikentitäten.
Die Statistikentitäten sind in den berechneten Statistikwerten enthalten. Der Speicherbedarf von Statistikentitäten richtet sich nach der Anzahl der von der Anwendung verwendeten verschiedenen Typen und Attributnamen.
Das Statistiksystem erstellt auch für jeden Namespace eigene Statistiken. Wenn eine Anwendung keine Namespaces verwendet, werden keine Namespace-spezifischen Statistiken erstellt. Namespace-spezifische Statistiken sind in dem Namespace enthalten, für den sie spezifisch sind. Die Typnamen für namespace-spezifische Statistiken sind__Stat_Ns_
vorangestellt; sie haben dasselbe Suffix wie anwendungsweite Statistiktypen.
Liste der Statistiken
Die vollständige Liste der verfügbaren Statistiken sieht so aus:
Statistik | Typ der Statistikentität | Beschreibung |
---|---|---|
Alle Entitäten | __Stat_Total__ Namespace-spezifischer Eintrag: __Stat_Ns_Total__ |
Alle Entitäten. Zusätzliche Attribute: • entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz in integrierten Indexeinträgen, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge• composite_index_bytes : der Speicherplatz in zusammengesetzten Indexeinträgen, gemessen in Byte• composite_index_count : die Anzahl der zusammengesetzten Indexeinträge. |
Alle Entitäten in einem Namespace | __Stat_Namespace__ Beachten Sie, dass __Stat_Namespace__ -Entitäten für jeden ermittelten Namespace erstellt werden und nur im leeren String-Namespace enthalten sind. |
Alle Entitäten in einem Namespace • subject_namespace : der dargestellte Namespace (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz in integrierten Indexeinträgen, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge• composite_index_bytes : der Speicherplatz in zusammengesetzten Indexeinträgen, gemessen in Byte• composite_index_count : die Anzahl der zusammengesetzten Indexeinträge. |
Alle Einträge in von der Anwendung definierten Indexen | __Stat_Kind_CompositeIndex__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind_CompositeIndex__ |
Einträge in der zusammengesetzten Indextabelle; eine Statistikentität für jede gespeicherte Entitätsart Zusätzliche Attribute: • index_id : die Index-ID.• kind_name : der Name des dargestellten Typs (ein String) |
Entitäten einer Art | __Stat_Kind__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind__ |
Entitäten einer Art; eine Statistikentität für jede gespeicherte Entitätsart Zusätzliche Attribute: • kind_name : der Name des dargestellten Typs (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz in integrierten Indexeinträgen, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge• composite_index_bytes : der Speicherplatz in zusammengesetzten Indexeinträgen, gemessen in Byte• composite_index_count : die Anzahl der zusammengesetzten Indexeinträge. |
Stammentitäten einer Art | __Stat_Kind_IsRootEntity__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind_IsRootEntity__ |
Entitäten einer Art, die Entitätsgruppen-Stammentitäten sind (kein übergeordnetes Element haben); eine Statistikentität für jede gespeicherte Entitätsart Zusätzliche Attribute: • kind_name : der Name des dargestellten Typs (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte. |
Nicht-Stammentitäten einer Art | __Stat_Kind_NotRootEntity__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind_NotRootEntity__ |
Entitäten einer Art, die keine Entitätsgruppen-Stammentitäten sind (ein übergeordnetes Element haben); eine Statistikentität für jede gespeicherte Entitätsart Zusätzliche Attribute: • kind_name : der Name des dargestellten Typs (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte. |
Attribute eines Typs | __Stat_PropertyType__ Namespace-spezifischer Eintrag: __Stat_Ns_PropertyType__ |
Attribute eines Werttyps über alle Entitäten hinweg; eine Statistikentität pro Werttyp Zusätzliche Attribute: • property_type : der Name des Werttyps (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz in integrierten Indexeinträgen, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge |
Attribute eines Typs pro Entitätstyp | __Stat_PropertyType_Kind__ Namespace-spezifischer Eintrag: __Stat_Ns_PropertyType_Kind__ |
Attribute eines Werttyps über Entitäten einer bestimmten Art hinweg; eine Statistikentität pro Kombination aus Attributtyp und Entitätsart Zusätzliche Attribute: • property_type : der Name des Werttyps (ein String)• kind_name : der Name des dargestellten Typs (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz im integrierten Index, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge |
Attribute mit einem Namen | __Stat_PropertyName_Kind__ Namespace-spezifischer Eintrag: __Stat_Ns_PropertyName_Kind__ |
Attribute mit einem bestimmten Namen über Entitäten einer bestimmten Art hinweg; eine Statistikentität pro Kombination aus eindeutigem Attributnamen und Entitätsart Zusätzliche Attribute: • property_name : der Name des Attributs (ein String)• kind_name : der Name des dargestellten Typs (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz in integrierten Indexeinträgen, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge |
Attribute eines Typs und mit einem Namen | __Stat_PropertyType_PropertyName_Kind__ Namespace-spezifischer Eintrag: __Stat_Ns_PropertyType_PropertyName_Kind__ |
Attribute mit einem bestimmten Namen und einem bestimmten Werttyp über Entitäten eines bestimmten Typs hinweg; eine Statistikentität pro Kombination aus Attributname, Werttyp und Entitätstyp, die in der Datenbank vorhanden ist. Zusätzliche Attribute: • property_type : der Name des Werttyps (ein String)• property_name : der Name des Attributs (ein String)• kind_name : der Name des dargestellten Typs (ein String)• entity_bytes : der Speicherplatz in der Entitätstabelle, gemessen in Byte• builtin_index_bytes : der Speicherplatz in integrierten Indexeinträgen, gemessen in Byte• builtin_index_count : die Anzahl der integrierten Indexeinträge |
Einige Statistiken beziehen sich auf Werttypen von Attributen nach deren Namen, wie Strings. Diese Namen sind:
"Blob"
"BlobKey"
"Boolean"
"Category"
"Date/Time"
"Email"
"Float"
"GeoPt"
"IM"
"Integer"
"Key"
"Link"
"NULL"
"PhoneNumber"
"PostalAddress"
"Rating"
"ShortBlob"
"String"
"Text"
"User"
Reihenfolge der Statistikentitäten verlassen
Anwendungen mit Tausenden von Namespaces, Arten oder Attributnamen erfordern eine große Anzahl von Statistikentitäten. Um den Aufwand für das Speichern und Aktualisieren der Statistiken zu reduzieren, löschen Firestore-Datenbanken im Datastore-Modus Statistikentitäten schrittweise gemäß den später aufgeführten Reihenfolgen.
Firestore im Datastore-Modus verfolgt die Größe von Typ- und Nicht-Typ-Statistikentitäten separat. Die Größe von Statistikentitäten, die keine Art sind, hat keinen Einfluss darauf, wenn Typstatistiken gelöscht werden.
Die zusammenfassenden Statistikentitäten __Stat_Kind_CompositeIndex__
, __Stat_PropertyType__
und __Stat_Total__
werden niemals gelöscht.
Drop-Reihenfolge für Typstatistikentitäten
Statistiken zu Typentitäten werden in der folgenden Reihenfolge gelöscht:
Statistiken pro Namespace und pro Typ
__Stat_Ns_Kind__
__Stat_Ns_Kind_IsRootEntity__
__Stat_Ns_Kind_NotRootEntity__
__Stat_Ns_PropertyType_Kind__
Statistiken pro Typ
__Stat_Kind__
__Stat_Kind_IsRootEntity__
__Stat_Kind_NotRootEntity__
__Stat_PropertyType_Kind__
Löschreihenfolge für Statistikentitäten ohne Typ
Entitätsstatistiken für andere Arten werden in der folgenden Reihenfolge gelöscht:
Statistiken pro Namespace, pro Typ und pro Attribut:
__Stat_Ns_PropertyName_Kind__
__Stat_Ns_PropertyType_PropertyName_Kind__
Statistiken pro Typ und pro Attribut
__Stat_PropertyName_Kind__
__Stat_PropertyType_PropertyName_Kind__
Statistiken pro Namespace
__Stat_Namespace__
__Stat_Ns_Kind_CompositeIndex__
__Stat_Ns_PropertyType__
__Stat_Ns_Total__