Firestore en modo Datastore (Datastore) mantiene estadísticas sobre los datos que almacenas en una aplicación, como cuántas entidades hay, de qué tipo o cuánto espacio usan los valores de propiedad de un tipo determinado.
Puedes ver estas estadísticas en la Google Cloud consola de una de las siguientes maneras:
- En la página Panel
- En la página Entidades, ejecuta una consulta GQL en formato
SELECT * FROM __Stat_Kind__. - De manera programática en la aplicación, consulta las entidades con nombres especiales con la API de Datastore. Para obtener más información sobre la API de Datastore, consulta APIs y referencias.
Datastore usa nombres de categorías que comienzan y terminan con dos guiones bajos para identificar entidades especiales que proporcionan estadísticas sobre tus datos. Estas se denominan entidades de estadísticas. Por ejemplo, cada app tiene una entidad de la categoría __Stat_Total__, que representa las estadísticas de todas las entidades en una base de datos en modo Datastore.
Las entidades de estadísticas hacen un seguimiento de la información sobre tus datos y te brindan estadísticas sobre el uso de datos. Se crean automáticamente. Cada entidad estadística tiene las siguientes propiedades:
count: El número de elementos que considera la estadística (un número entero largo)bytes: El tamaño total de los elementos para esta estadística (un número entero largo)timestamp: La hora de la actualización más reciente de la estadística (un valor de fecha y hora)
Cada entidad pertenece a una categoría específica. La categoría de estadísticas indica la categoría de estadísticas que se recopilan o usan. Usa la categoría para identificar el propósito de una estadística, como optimizar una consulta, mejorar el rendimiento o el análisis de datos.
Algunas categorías de estadísticas también tienen propiedades adicionales que se enumeran en la sección Lista de estadísticas de este documento.
Cuando el sistema de estadísticas crea nuevas entidades de estadísticas, no borra las anteriores de inmediato. La mejor manera de obtener una vista coherente de
las estadísticas es realizar una consulta sobre la entidad estadística con el timestamp más reciente y, luego, usar ese
valor de marca de tiempo como filtro para recuperar otras entidades de estadísticas.
El sistema de estadísticas también crea estadísticas específicas para cada espacio de nombres. Los nombres de categorías de las estadísticas específicas de espacio de nombres tienen el prefijo __Stat_Ns__, seguido de los mismos sufijos que los nombres de categorías de las estadísticas que se aplican a toda la aplicación.
Si una aplicación no usa espacios de nombres, el sistema de estadísticas no creará estadísticas específicas de espacio de nombres. Solo puedes encontrar estadísticas específicas de espacio de nombres en el espacio de nombres al que corresponden.
Lista de estadísticas
La siguiente es una lista de las estadísticas disponibles:
| Estadística | Categoría de la entidad de estadística | Descripción |
|---|---|---|
| Todas las entidades | __Stat_Total__Entrada específica de espacio de nombres: __Stat_Ns_Total__ |
Todas las entidades. Propiedades adicionales: • entity_bytes: El almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes: El almacenamiento en entradas de índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado.• composite_index_bytes: El almacenamiento en entradas de índice compuesto medido en bytes.• composite_index_count: El recuento de entradas de índice compuesto |
| Todas las entidades en un espacio de nombres | __Stat_Namespace__ Ten en cuenta que las entidades __Stat_Namespace__ se crean para cada espacio de nombres encontrado y solo se ubican en el espacio de nombres de string vacía. |
Todas las entidades de un espacio de nombres. • subject_namespace: El espacio de nombres representado (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes: El almacenamiento en entradas de índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado.• composite_index_bytes: El almacenamiento en entradas de índice compuesto medido en bytes.• composite_index_count: El recuento de entradas de índice compuestoPara obtener más información, consulta la sección Limitaciones de las estadísticas de este documento. |
| Todas las entradas en índices definidos de la aplicación | __Stat_Kind_CompositeIndex__Entrada específica de espacio de nombres: __Stat_Ns_Kind_CompositeIndex__ |
Entradas en la tabla de índice compuesto; una entidad estadística por cada categoría de entidad almacenada. Propiedades adicionales: • alphanumeric_id: El identificador alfanumérico del índice El mismo identificador que se usa en gcloud y la API.• index_id: Representación interna de números enteros del ID del índice Para gcloud y los métodos de la API, usa alphanumeric_id en su lugar.• kind_name: El nombre de la categoría representada (una string)• last_known_usage_timestamp: La última vez que este índice entregó una consulta Siempre será un tiempo entre stat_tracked_since_time y la marca de tiempo Se establece en null si no se registró ningún uso en ese período No está presente para __Stat_Ns_Kind_CompositeIndex__.• stat_tracked_since_time: El inicio del período en el que se conoce el uso del índice No está presente para __Stat_Ns_Kind_CompositeIndex__ |
| Todas las entradas en índices integrados | __Stat_Kind_BuiltinIndex__ |
Información sobre los índices integrados en la base de datos Una entidad estadística por cada índice integrado Propiedades adicionales: • property_name: El nombre de la propiedad indexada• kind_name: El nombre de la categoría representada (una string).• api_scope: Firestore o Datastore.• query_scope: El alcance de la consulta de índice Siempre se establece en COLLECTION_GROUP (categoría) para las bases de datos de Datastore.• value_mode: El modo para el alcance de la consulta, como ASC o DESC.• last_known_usage_timestamp: La última vez que este índice entregó una consulta Siempre será un tiempo entre stat_tracked_since_time y la marca de tiempo Se establece en null si no se registró ningún uso en ese período.• stat_tracked_since_time: El inicio del período en el que se conoce el uso del índice |
| Entidades de una categoría | __Stat_Kind__ Entrada específica de espacio de nombres: __Stat_Ns_Kind__ |
Entidades de una categoría; una entidad estadística por cada categoría de entidad almacenada. Propiedades adicionales: • kind_name: El nombre de la categoría representada (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes: El almacenamiento en entradas de índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado.• composite_index_bytes: El almacenamiento en entradas de índice compuesto medido en bytes.• composite_index_count: El recuento de entradas de índice compuesto |
| Entidades raíz de una categoría | __Stat_Kind_IsRootEntity__Entrada específica de espacio de nombres: __Stat_Ns_Kind_IsRootEntity__ |
Entidades de una categoría que son entidades raíz de un grupo de entidades (no tienen una superior principal); una entidad estadística por cada categoría de entidad almacenada. Propiedades adicionales: • kind_name: El nombre de la categoría representada (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes. |
| Entidades que no son raíz de una categoría | __Stat_Kind_NotRootEntity__Entrada específica de espacio de nombres: __Stat_Ns_Kind_NotRootEntity__ |
Entidades de una categoría que no son entidades raíz de un grupo de entidades (tienen una superior principal); una entidad estadística por cada categoría de entidad almacenada. Propiedades adicionales: • kind_name: El nombre de la categoría representada (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes. |
| Propiedades de un tipo | __Stat_PropertyType__Entrada específica de espacio de nombres: __Stat_Ns_PropertyType__ |
Propiedades de un tipo de valor en todas las entidades; una entidad estadística por tipo de valor. Propiedades adicionales: • property_type: El nombre del tipo de valor (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes: El almacenamiento en entradas de índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado |
| Propiedades de un tipo por categoría | __Stat_PropertyType_Kind__Entrada específica de espacio de nombres: __Stat_Ns_PropertyType_Kind__ |
Propiedades de un tipo de valor en las entidades de una categoría específica; una entidad estadística por combinación de tipo y categoría de propiedad. Propiedades adicionales: • property_type: El nombre del tipo de valor (una string)• kind_name: El nombre de la categoría representada (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes: El almacenamiento en el índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado.Para obtener más información, consulta la sección Limitaciones de las estadísticas de este documento. |
| Propiedades con nombre | __Stat_PropertyName_Kind__Entrada específica de espacio de nombres: __Stat_Ns_PropertyName_Kind__ |
Propiedades con un nombre determinado en todas las entidades de una categoría específica; una entidad estadística por combinación de nombre y categoría de propiedad única. Propiedades adicionales: • property_name: El nombre de la propiedad (una string)• kind_name: El nombre de la categoría representada (una string)• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes• builtin_index_bytes: El almacenamiento en entradas de índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado |
| Propiedades de un tipo y con un nombre | __Stat_PropertyType_PropertyName_Kind__Entrada específica de espacio de nombres: __Stat_Ns_PropertyType_PropertyName_Kind__ |
Propiedades con un nombre determinado y de un tipo de valor determinado en entidades de una categoría determinada; una entidad estadística por combinación de nombre de propiedad, tipo de valor y categoría que existe en la base de datos. Propiedades adicionales: • property_type: El nombre del tipo de valor (una string)• property_name: El nombre de la propiedad (una string)• kind_name: El nombre de la categoría representada (una string).• entity_bytes: El almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes: El almacenamiento en entradas de índice integrado medido en bytes.• builtin_index_count: El recuento de entradas de índice integrado.Para obtener más información, consulta la sección Limitaciones de las estadísticas de este documento. |
Algunas estadísticas se refieren a los tipos de valores de propiedad por nombre, como strings. Los nombres son los siguientes:
"Blob""BlobKey""Boolean""Category""Date/Time""Email""Float""GeoPt""IM""Integer""Key""Link""NULL""PhoneNumber""PostalAddress""Rating""ShortBlob""String""Text""User"
Limitaciones de las estadísticas
Las estadísticas tienen las siguientes limitaciones:
- La propiedad
__Stat_PropertyType_Kind__y la propiedad__Stat_PropertyType_PropertyName_Kind__muestran metadatos de tipo de propiedad para los tipos de valores de array y registran por separado el tipo de propiedad para cada valor del array. Por ejemplo, si una propiedad de array almacena una lista de strings, la propiedad registra el tipo de propiedad comoSTRING, mientras que el tipo de propiedad real esARRAY<STRING>. - Las entidades
__Stat_Namespace__contienen la misma información que se encuentra en los registros__Stat_Ns_Total__. Las entidades__Stat_Namespace__se almacenan en el espacio de nombres vacío y contienen un camposubject_namespaceque describe el espacio de nombres al que pertenecen. Los registros__Stat_Ns_Total__se almacenan en el espacio de nombres al que hacen referencia y, por lo tanto, no contienen un camposubject_namespace. Por consiguiente, una consulta en la categoría__Stat_Namespace__(desde el espacio de nombres de string vacía) ordenada de forma descendente porbytesenumerará primero los espacios de nombres que consumen el almacenamiento más grande. Debido a que no se pueden realizar consultas entre espacios de nombres, cualquier consulta sobre entidades__Stat_Ns_Total__producirá como máximo un solo registro.
Orden de eliminación de entidades de estadísticas
Las aplicaciones con miles de espacios de nombres, categorías o nombres de propiedades necesitan una gran cantidad de entidades de estadísticas. Para reducir la sobrecarga de almacenamiento y actualización de las estadísticas, las bases de datos de Firestore en modo Datastore descartan de forma progresiva las entidades de estadísticas según el orden que se indica más adelante.
Las entidades de estadísticas de resumen __Stat_Kind_CompositeIndex__, __Stat_PropertyType__ y __Stat_Total__ nunca se descartan.
Las entidades de estadísticas se descartan en grupos en el siguiente orden predeterminado:
Estadísticas por espacio de nombres, por categoría y por propiedad:
__Stat_Ns_PropertyName_Kind____Stat_Ns_PropertyType_PropertyName_Kind__
Estadísticas por categoría y por propiedad
__Stat_PropertyName_Kind____Stat_PropertyType_PropertyName_Kind__
Estadísticas por espacio de nombres
__Stat_Namespace____Stat_Ns_Kind_CompositeIndex____Stat_Ns_PropertyType____Stat_Ns_Total__
Las entidades de estadísticas de categorías tienen el siguiente orden de eliminación:
Estadísticas por espacio de nombres y por categoría
__Stat_Ns_Kind____Stat_Ns_Kind_IsRootEntity____Stat_Ns_Kind_NotRootEntity____Stat_Ns_PropertyType_Kind__
Estadísticas por categoría
__Stat_Kind____Stat_Kind_IsRootEntity____Stat_Kind_NotRootEntity____Stat_PropertyType_Kind__