Datastore-Statistiken

Firestore im Datastore-Modus (Datastore) erfasst Statistiken der in einer 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 haben folgende Möglichkeiten, diese Statistiken in der Google Cloud Console aufzurufen:

  • 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, indem Sie mit der Datastore API Abfragen nach bestimmten benannten Entitäten ausführen. 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. Beispiel: Jede Anwendung hat eine Entität der Art __Stat_Total__, die Statistiken für alle Entitäten in einer Datenbank im Datastore-Modus darstellt.

Statistik-Entitäten erfassen Informationen zu Ihren Daten und geben Aufschluss über 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. Die Art der Statistik gibt die Kategorie der erfassten oder verwendeten Statistiken an. Anhand der Art können Sie den Zweck einer Statistik ermitteln, z. B. die Optimierung einer Abfrage, die Leistungssteigerung oder die 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. Den Artnamen für Namespace-spezifische Statistiken ist __Stat_Ns__ vorangestellt; sie haben dasselbe Suffix wie anwendungsweite Statistikarten.

Wenn eine Anwendung keine Namespaces verwendet, werden vom Statistiksystem keine Namespace-spezifischen Statistiken erstellt. Namespace-spezifische Statistiken finden Sie nur im 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 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 Eigenschaften:

alphanumeric_id: die alphanumerische Kennung des Index. Dieselbe Kennung, die in gcloud und in der API verwendet wird.
index_id: Interne Ganzzahldarstellung der Index-ID. Verwenden Sie für gcloud- und API-Methoden stattdessen die alphanumeric_id.
kind_name: der Name des dargestellten Typs (ein String)
last_known_usage_timestamp: das Datum und die Uhrzeit, zu dem dieser Index zuletzt eine Abfrage ausgeführt hat. Muss immer eine Zeit zwischen stat_tracked_since_time und dem Zeitstempel sein. Legen Sie null fest, wenn in diesem Zeitraum keine Nutzung erfasst wurde. Für __Stat_Ns_Kind_CompositeIndex__ nicht vorhanden.
stat_tracked_since_time: Beginn des Zeitfensters, für das 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 der indexierten Property
kind_name: der Name des dargestellten Typs (ein String)
api_scope: entweder Firestore oder Datastore.
query_scope: der Indexabfragebereich. Für Datastore-Datenbanken immer auf COLLECTION_GROUP (kind) festlegen.
value_mode: Der Modus für den Abfrageumfang, z. B. ASC oder DESC.
last_known_usage_timestamp: Das Datum und die Uhrzeit, zu dem dieser Index zuletzt für eine Abfrage verwendet wurde. Muss immer eine Zeit zwischen stat_tracked_since_time und dem Zeitstempel sein. Legen Sie null fest, wenn in diesem Zeitraum keine Nutzung erfasst wurde.
stat_tracked_since_time: Beginn des Zeitfensters, für das 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 Eigenschaften:

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.

Weitere Informationen finden Sie im Abschnitt Einschränkungen bei 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 Eigenschaften:

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.

Weitere Informationen finden Sie im Abschnitt Einschränkungen bei 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 bei Statistiken

Für Statistiken gelten die folgenden Einschränkungen:

  • Die Eigenschaften __Stat_PropertyType_Kind__ und __Stat_PropertyType_PropertyName_Kind__ geben Metadaten zum Attributtyp für Array-Werttypen zurück und erfassen den Attributtyp für jeden Wert im Array separat. Wenn in einer Array-Property beispielsweise eine Liste von Strings gespeichert wird, wird der Property-Typ als STRING erfasst, während der tatsächliche Property-Typ ARRAY<STRING> ist.
  • Die __Stat_Namespace__-Entitäten enthalten die gleichen Informationen wie __Stat_Ns_Total__-Datensätze. Entitäten vom Typ __Stat_Namespace__ werden im leeren Namespace gespeichert und enthalten das Feld subject_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 Feld subject_namespace. Somit führt eine Abfrage nach dem Typ __Stat_Namespace__ (aus dem leeren String-Namespace), sortiert in absteigender Reihenfolge nach bytes, 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 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 Firestore-Datenbanken im Datastore-Modus Statistikentitäten nach der unten aufgeführten Reihenfolge.

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

  1. Statistiken pro Namespace, pro Typ und pro Attribut:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  2. Statistiken pro Typ und pro Attribut

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  3. Statistiken pro Namespace

    • __Stat_Namespace__
    • __Stat_Ns_Kind_CompositeIndex__
    • __Stat_Ns_PropertyType__
    • __Stat_Ns_Total__

Die Entitäten für Kinderstatistiken werden in der folgenden Reihenfolge entfernt:

  1. Statistiken pro Namespace und pro Typ

    • __Stat_Ns_Kind__
    • __Stat_Ns_Kind_IsRootEntity__
    • __Stat_Ns_Kind_NotRootEntity__
    • __Stat_Ns_PropertyType_Kind__
  2. Statistiken pro Typ

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

Nächste Schritte