Firestore im Datastore-Modus (Datastore) erfasst Statistiken zu den Daten, die Sie in einer Anwendung speichern, z. B. die Anzahl der Entitäten, ihren Typ oder wie viel Speicherplatz für Attributwerte eines bestimmten Typs verwendet wird.
Sie können diese Statistiken in der Google Cloud Console 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. - Programmatisch innerhalb der Anwendung, indem Sie mit der Datastore API Abfragen nach bestimmten benannten Entitäten ausführen. Weitere Informationen zur Datastore API finden Sie unter APIs & Referenz.
Datastore verwendet Typnamen, 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 Anwendung hat beispielsweise eine Entität vom Typ __Stat_Total__, die Statistiken für alle Entitäten in einer Datenbank im Datastore-Modus darstellt.
Statistikentitäten erfassen Informationen zu Ihren Daten und geben Ihnen Einblicke in die 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 einem bestimmten Typ. Statistiktyp gibt die Kategorie der Statistiken an, die erfasst oder verwendet werden. Verwenden Sie den Typ, um den Zweck einer Statistik zu ermitteln, z. B. zum Optimieren einer Abfrage, zum Verbessern der Leistung oder zur Datenanalyse.
Einige Statistiktypen haben auch zusätzliche Attribute, die im Abschnitt Liste der Statistiken in diesem Dokument 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 Statistiken, die für jeden Namespace spezifisch sind. Den Typnamen von namespace-spezifischen Statistiken ist __Stat_Ns__ vorangestellt, gefolgt von denselben Suffixen wie die Typnamen von Statistiken, die für die gesamte Anwendung gelten.
Wenn eine Anwendung keine Namespaces verwendet, erstellt das Statistiksystem keine namespace-spezifischen Statistiken. Namespace-spezifische Statistiken finden Sie nur in dem Namespace, 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äge.Weitere Informationen finden Sie im Abschnitt Einschränkungen für Statistiken in diesem Dokument. |
| Alle Einträge in von der Anwendung definierten Indexen | __Stat_Kind_CompositeIndex__Namespace-spezifischer Eintrag: __Stat_Ns_Kind_CompositeIndex__ |
Informationen zu den zusammengesetzten Indexen in der Datenbank; eine Statistikentität für jeden zusammengesetzten Index. Zusätzliche Attribute: • alphanumeric_id: die alphanumerische ID des Index. Dieselbe ID wird in gcloud und der API verwendet.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 Abfrage verarbeitet hat Ist immer ein Zeitpunkt zwischen stat_tracked_since_time und dem Zeitstempel. Wird auf null gesetzt, wenn in diesem Zeitraum keine Nutzung erfasst wurde. Nicht für __Stat_Ns_Kind_CompositeIndex__.• stat_tracked_since_time: der Beginn des Zeitraums, in dem die Indexnutzung bekannt ist Nicht für __Stat_Ns_Kind_CompositeIndex__ 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 der dargestellten Art (ein String).• api_scope: entweder Firestore oder Datastore.• query_scope: der Abfragebereich des Index Für Datastore-Datenbanken immer auf COLLECTION_GROUP (Art) festgelegt.• 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 ein Zeitpunkt zwischen stat_tracked_since_time und dem Zeitstempel. Wird auf null gesetzt, wenn in diesem Zeitraum keine Nutzung erfasst wurde.• stat_tracked_since_time: der Beginn des Zeitraums, in dem die Indexnutzung bekannt ist |
| Entitäten einer Art | __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 der dargestellten Art (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 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 der dargestellten Art (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 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 der dargestellten Art (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 im Abschnitt Einschränkungen für Statistiken in diesem Dokument. |
| 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 der dargestellten Art (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 im Abschnitt Einschränkungen für Statistiken in diesem Dokument. |
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 für Statistiken
Für Statistiken gelten die folgenden Einschränkungen:
- Die
__Stat_PropertyType_Kind__Eigenschaft und die__Stat_PropertyType_PropertyName_Kind__Eigenschaft geben Metadaten zum Eigenschaftstyp für Array-Werttypen zurück und erfassen den Eigenschaftstyp separat für jeden Wert im Array. Wenn beispielsweise ein Array-Attribut eine Liste von Strings speichert, wird der Attributtyp alsSTRINGerfasst, während der tatsächliche AttributtypARRAY<STRING>ist. - Die
__Stat_Namespace__-Entitäten enthalten dieselben Informationen wie__Stat_Ns_Total__-Datensätze.__Stat_Namespace__-Entitäten werden im leeren Namespace gespeichert und beinhalten das Feldsubject_namespace. Dieses Feld beschreibt den Namespace, zu dem sie gehören.__Stat_Ns_Total__-Datensätze 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__Stat_Ns_Total__-Entitäten immer nur maximal einen Datensatz.
Reihenfolge des Löschens von Statistikentitäten
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, löschen Datenbanken im Firestore im Datastore-Modus Statistikentitäten progressiv in der Reihenfolge, die weiter unten aufgeführt ist.
Die zusammenfassenden Statistikentitäten __Stat_Kind_CompositeIndex__, __Stat_PropertyType__ und __Stat_Total__ werden niemals gelöscht.
Statistikentitä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__
Für Statistikentitäten vom Typ gilt die folgende Reihenfolge des Löschens:
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__