Firestore im Datastore-Modus (Datastore) erfasst Statistiken zu den Daten, die Sie in einer Anwendung speichern, z. B. die Anzahl der Entitäten, die Art der Entitäten oder wie viel Speicherplatz für Attributwerte eines bestimmten Typs verwendet wird.
Sie können sich diese Statistiken in der Google Cloud -Konsole auf eine der folgenden Arten ansehen:
- Auf der Seite Dashboard
- Führen Sie auf der Seite Entitäten eine GQL-Abfrage in der Form
SELECT * FROM __Stat_Kind__
aus. - Programmgesteuert innerhalb der Anwendung durch Abfragen nach bestimmten benannten Entitäten mit der Datastore API. Weitere Informationen zur Datastore API finden Sie unter APIs und Referenzen.
Datastore verwendet Artnamen, die mit zwei Unterstrichen beginnen und enden, um spezielle Entitäten zu identifizieren, die Statistiken zu Ihren Daten liefern. Diese werden als Statistikentitäten bezeichnet. Jede App hat beispielsweise eine Entität der Art __Stat_Total__
, die Statistiken für alle Entitäten in einer Datenbank im Datastore-Modus darstellt.
Statistikentitäten enthalten Informationen zu Ihren Daten und geben Ihnen Einblicke in Ihre Datennutzung. Sie werden automatisch erstellt. Alle Statistikentitäten haben folgende Attribute:
count
: die Anzahl der von 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)
Jede Entität gehört zu einer bestimmten Art. Statistiktyp gibt die Kategorie der Statistiken an, die erfasst oder verwendet werden. Mit dem Typ können Sie den Zweck einer Statistik ermitteln, z. B. zum Optimieren einer Abfrage, zum Verbessern der Leistung oder zur Datenanalyse.
Einige Statistiktypen haben zusätzliche Eigenschaften, die im Abschnitt Liste der Statistiken dieses Dokuments aufgeführt sind.
Wenn das Statistiksystem neue Statistikentitäten erstellt, werden die vorherigen Statistikentitäten nicht sofort 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.
Das Statistiksystem erstellt auch für jeden Namespace eigene Statistiken. Die Typnamen von Namespace-spezifischen Statistiken haben das Präfix __Stat_Ns__
, gefolgt von denselben Suffixen wie die Typnamen von Statistiken, die für die gesamte Anwendung gelten.
Wenn eine Anwendung keine Namespaces verwendet, werden auch keine namespace-spezifischen Statistiken erstellt. Namespace-spezifische Statistiken sind nur in dem Namespace verfügbar, für den sie relevant sind.
Liste der Statistiken
Im Folgenden finden Sie eine Liste der verfügbaren Statistiken:
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ägeWeitere Informationen finden Sie im Abschnitt Einschränkungen bei Statistiken in diesem Dokument. |
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 jeden gespeicherten Entitätstyp. Zusätzliche Attribute: • alphanumeric_id : die alphanumerische Kennzeichnung des Index. Dieselbe Kennung, die in gcloud und der API verwendet wird.• index_id : Interne Ganzzahldarstellung der Index-ID. Verwenden Sie für gcloud - und API-Methoden stattdessen alphanumeric_id .• kind_name : der Name des dargestellten Typs (ein String)• last_known_usage_timestamp : der Zeitpunkt, zu dem dieser Index zuletzt eine Anfrage beantwortet hat. Ist immer eine Zeit zwischen stat_tracked_since_time und dem Zeitstempel. Auf null setzen, wenn in diesem Zeitraum keine Nutzung aufgezeichnet wurde. Nicht vorhanden für __Stat_Ns_Kind_CompositeIndex__ .• stat_tracked_since_time : Der Beginn des Zeitfensters, in dem die Indexnutzung bekannt ist. Für __Stat_Ns_Kind_CompositeIndex__ nicht vorhanden. |
Alle Einträge in integrierten Indexen | __Stat_Kind_BuiltinIndex__ |
Informationen zu den integrierten Indexen in der Datenbank. Eine Statistikentität für jeden integrierten Index. Zusätzliche Attribute: • property_name : der Name des indexierten Attributs• kind_name : der Name des dargestellten Typs (ein String)• api_scope : entweder Firestore oder Datastore .• query_scope : der Bereich der Indexabfrage. Für Datastore-Datenbanken muss immer COLLECTION_GROUP (kind) festgelegt werden.• value_mode : Der Modus für den Abfragebereich, z. B. ASC oder DESC .• last_known_usage_timestamp : Der Zeitpunkt, zu dem dieser Index zuletzt eine Abfrage verarbeitet hat. Ist immer eine Zeit zwischen stat_tracked_since_time und dem Zeitstempel. Auf null festgelegt, wenn in diesem Zeitraum keine Nutzung aufgezeichnet wurde.• stat_tracked_since_time : Der Beginn des Zeitfensters, in dem die Indexnutzung bekannt ist. |
Entitäten eines Typs | __Stat_Kind__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind__ |
Entitäten eines Typs; eine Statistikentität für jeden gespeicherten Entitätstyp. 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 eines Typs | __Stat_Kind_IsRootEntity__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind_IsRootEntity__ |
Entitäten eines Typs, die Entitätengruppen-Stammentitäten sind (kein übergeordnetes Element haben); eine Statistikentität für jeden gespeicherten Entitätstyp. 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 eines Typs | __Stat_Kind_NotRootEntity__ Namespace-spezifischer Eintrag: __Stat_Ns_Kind_NotRootEntity__ |
Entitäten eines Typs, die keine Entitätengruppen-Stammentitäten sind (ein übergeordnetes Element haben); eine Statistikentität für jeden gespeicherten Entitätstyp. 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 eines bestimmten Typs hinweg; eine Statistikentität pro Kombination aus Attributtyp und Entitätstyp. 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ägeWeitere Informationen finden Sie in diesem Dokument im Abschnitt Einschränkungen bei Statistiken. |
Attribute mit einem Namen | __Stat_PropertyName_Kind__ Namespace-spezifischer Eintrag: __Stat_Ns_PropertyName_Kind__ |
Attribute mit einem bestimmten Namen über Entitäten eines bestimmten Typs hinweg; eine Statistikentität pro Kombination aus eindeutigem Attributnamen und Entitätstyp. 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ägeWeitere Informationen finden Sie in diesem Dokument im Abschnitt Einschränkungen bei Statistiken. |
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"
Einschränkungen bei Statistiken
Für Statistiken gelten die folgenden Einschränkungen:
- Mit dem Attribut
__Stat_PropertyType_Kind__
und dem Attribut__Stat_PropertyType_PropertyName_Kind__
werden Metadaten zum Attributtyp für array-Werttypen zurückgegeben. Der Attributtyp für jeden Wert im Array wird separat erfasst. Wenn in einem Array-Attribut beispielsweise eine Liste von Strings gespeichert wird, wird der Attributtyp alsSTRING
aufgezeichnet, während der tatsächliche AttributtypARRAY<STRING>
ist. - Die
__Stat_Namespace__
-Entitäten enthalten die gleichen Informationen wie Datensätze vom Typ__Stat_Ns_Total__
. Entitäten vom Typ__Stat_Namespace__
werden im leeren Namespace gespeichert und enthalten das Feldsubject_namespace
. Dieses Feld beschreibt den Namespace, zu dem sie gehören. Datensätze vom Typ__Stat_Ns_Total__
werden in dem Namespace gespeichert, auf den sie sich beziehen, und enthalten daher kein Feldsubject_namespace
. Somit führt eine Abfrage nach dem Typ__Stat_Namespace__
(aus dem leeren String-Namespace), sortiert in absteigender Reihenfolge nachbytes
, zuerst die Namespaces auf, die den meisten Speicherplatz belegen. Da Abfragen über mehrere Namespaces hinweg nicht möglich sind, generiert jede Abfrage für Entitäten vom Typ__Stat_Ns_Total__
immer nur maximal einen Datensatz.
Reihenfolge der Statistiken
Anwendungen mit Tausenden von Namespaces, Typen oder Attributnamen erfordern eine große Anzahl von Statistikentitäten. Um den Aufwand für das Speichern und Aktualisieren der Statistiken zu reduzieren, werden Statistikentitäten in Firestore-Datenbanken im Datastore-Modus progressiv in der unten aufgeführten Reihenfolge gelöscht.
Die zusammenfassenden Statistikentitäten __Stat_Kind_CompositeIndex__
, __Stat_PropertyType__
und __Stat_Total__
werden niemals gelöscht.
Statistik-Entitäten werden in Gruppen in der folgenden Standardreihenfolge 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__
Statistikentitäten vom Typ „Kind“ haben die folgende Drop-Reihenfolge:
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__