Firestore en el modo de Datastore (Datastore) mantiene estadísticas sobre los datos que almacenas en una aplicación, como el número de entidades, de qué tipo son o cuánto espacio utilizan los valores de propiedad de un tipo determinado.
Puedes ver estas estadísticas en la consola de una de las siguientes formas: Google Cloud
- En la página Panel de control.
- En la página Entidades, ejecuta una consulta de GQL con el formato
SELECT * FROM __Stat_Kind__
. - De forma programática en la aplicación, consultando entidades con nombres especiales mediante la API de Datastore. Para obtener más información sobre la API Datastore, consulta APIs & Reference (APIs y referencia).
Datastore usa nombres de tipo que empiezan y terminan con dos guiones bajos para identificar entidades especiales que proporcionan estadísticas sobre sus datos. Se denominan entidades de estadísticas. Por ejemplo, cada aplicación tiene una entidad del tipo __Stat_Total__
, que representa estadísticas sobre todas las entidades de una base de datos en modo Datastore.
Las entidades de estadísticas monitorizan información sobre tus datos y te ofrecen estadísticas sobre el uso que haces de ellos. Se crean automáticamente. Cada entidad de estadísticas tiene las siguientes propiedades:
count
: el número de elementos que tiene en cuenta la estadística (un entero largo).bytes
: el tamaño total de los elementos de esta estadística (un entero largo).timestamp
: hora de la actualización más reciente de la estadística (un valor de fecha y hora).
Cada entidad pertenece a un tipo específico. Tipo de estadísticas: indica la categoría de estadísticas que se recogen o se usan. Usa el tipo para identificar el propósito de una estadística, como optimizar una consulta, mejorar el rendimiento o analizar datos.
Algunos tipos de estadísticas también tienen propiedades adicionales que se indican en la sección Lista de estadísticas de este documento.
Cuando el sistema de estadísticas crea nuevas entidades de estadísticas, no elimina las anteriores de inmediato. La mejor forma de obtener una vista coherente de las estadísticas es consultar la entidad de estadísticas con el timestamp
más reciente y, a continuación, usar ese valor de marca de tiempo como filtro al obtener 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 tipo de las estadísticas específicas de un espacio de nombres empiezan por __Stat_Ns__
y van seguidos de los mismos sufijos que los nombres de tipo 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 espacios de nombres. Solo puedes encontrar estadísticas específicas de un espacio de nombres en el espacio de nombres al que corresponden.
Lista de estadísticas
A continuación se muestra una lista de las estadísticas disponibles:
Estadística | Tipo de entidad con estadística | Descripción |
---|---|---|
Todas las entidades | __Stat_Total__ Entrada específica del 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 integradas, medido en bytes.• builtin_index_count : el número de entradas de índice integradas.• composite_index_bytes : el almacenamiento en entradas de índice compuesto medido en bytes.• composite_index_count : el número de entradas de índices compuestos. |
Todas las entidades de un espacio de nombres | __Stat_Namespace__ Ten en cuenta que se crean entidades __Stat_Namespace__ para cada espacio de nombres encontrado y que solo se encuentran en el espacio de nombres de cadena vacía. |
Todas las entidades de un espacio de nombres. • subject_namespace : el espacio de nombres representado (una cadena)• entity_bytes : el almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes : el almacenamiento en entradas de índice integradas, medido en bytes.• builtin_index_count : el número de entradas de índice integradas.• composite_index_bytes : el almacenamiento en entradas de índice compuesto medido en bytes.• composite_index_count : el número de entradas de índice compuesto.Para obtener más información, consulta la sección Limitaciones de las estadísticas de este documento. |
Todas las entradas de los índices definidos en la aplicación | __Stat_Kind_CompositeIndex__ Entrada específica del espacio de nombres: __Stat_Ns_Kind_CompositeIndex__ |
Entradas de la tabla de índices compuestos: una entidad de estadísticas por cada tipo de entidad almacenada. Propiedades adicionales: • alphanumeric_id : identificador alfanumérico del índice. Es el mismo identificador que se usa en gcloud y en la API.• index_id : representación interna del ID del índice como número entero. En el caso de gcloud y los métodos de API, usa alphanumeric_id .• kind_name : el nombre del tipo representado (una cadena)• last_known_usage_timestamp : la última vez que este índice respondió a una consulta. Siempre será un tiempo entre stat_tracked_since_time y la marca de tiempo. Se le asigna el valor null si no se ha registrado ningún uso en ese periodo. No está presente en __Stat_Ns_Kind_CompositeIndex__ .• stat_tracked_since_time : el inicio del periodo en el que se conoce el uso del índice. No está disponible para __Stat_Ns_Kind_CompositeIndex__ . |
Todas las entradas de los índices integrados | __Stat_Kind_BuiltinIndex__ |
Información sobre los índices integrados en la base de datos. Una entidad de estadísticas por cada índice integrado. Propiedades adicionales: • property_name : el nombre de la propiedad indexada.• kind_name : el nombre del tipo representado (una cadena).• api_scope : Firestore o Datastore .• query_scope : el ámbito de la consulta de índice. Siempre debe ser COLLECTION_GROUP (tipo) para las bases de datos de Datastore.• value_mode : el modo del ámbito de la consulta, como ASC o DESC .• last_known_usage_timestamp : la última vez que este índice respondió a una consulta. Siempre será un tiempo entre stat_tracked_since_time y la marca de tiempo. Se define como null si no se ha registrado ningún uso en ese periodo.• stat_tracked_since_time : el inicio del periodo en el que se conoce el uso del índice. |
Entidades de un tipo | __Stat_Kind__ Entrada específica del espacio de nombres: __Stat_Ns_Kind__ |
Entidades de un tipo; una entidad con estadísticas para cada tipo de entidad almacenado Propiedades adicionales: • kind_name : el nombre del tipo representado (una cadena)• entity_bytes : el almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes : el almacenamiento en entradas de índice integradas, medido en bytes.• builtin_index_count : el número de entradas de índice integradas.• composite_index_bytes : el almacenamiento en entradas de índice compuesto medido en bytes.• composite_index_count : el número de entradas de índices compuestos. |
Entidades raíz de un tipo | __Stat_Kind_IsRootEntity__ Entrada específica del espacio de nombres: __Stat_Ns_Kind_IsRootEntity__ |
Entidades de un tipo que son entidades raíz del grupo de entidades (sin entidad principal de ancestro); una entidad con estadísticas para cada tipo de entidad almacenado Propiedades adicionales: • kind_name : el nombre del tipo representado (una cadena)• entity_bytes : el almacenamiento en la tabla de entidades medido en bytes. |
Entidades de un tipo sin raíz | __Stat_Kind_NotRootEntity__ Entrada específica del espacio de nombres: __Stat_Ns_Kind_NotRootEntity__ |
Entidades de un tipo que no son entidades raíz del grupo de entidades (con entidad principal de ancestro); una entidad con estadísticas para cada tipo de entidad almacenado Propiedades adicionales: • kind_name : el nombre del tipo representado (una cadena)• entity_bytes : el almacenamiento en la tabla de entidades medido en bytes. |
Propiedades de un tipo | __Stat_PropertyType__ Entrada específica del espacio de nombres: __Stat_Ns_PropertyType__ |
Propiedades de un tipo de valor en todas las entidades; una entidad con estadísticas por tipo de valor Propiedades adicionales: • property_type : el nombre del tipo de valor (una cadena)• entity_bytes : el almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes : el almacenamiento en entradas de índice integradas, medido en bytes.• builtin_index_count : el recuento de entradas de índice integradas. |
Propiedades de un tipo por tipo | __Stat_PropertyType_Kind__ Entrada específica del espacio de nombres: __Stat_Ns_PropertyType_Kind__ |
Propiedades de un tipo de valor en entidades del tipo especificado; una entidad con estadísticas por cada combinación de tipo de propiedad y de tipo Propiedades adicionales: • property_type : nombre del tipo de valor (una cadena)• kind_name : nombre del tipo representado (una cadena)• entity_bytes : almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes : el almacenamiento del índice integrado, medido en bytes.• builtin_index_count : el número de entradas de índice integradas.Para obtener más información, consulta la sección Limitaciones de las estadísticas de este documento. |
Propiedades con un nombre | __Stat_PropertyName_Kind__ Entrada específica del espacio de nombres: __Stat_Ns_PropertyName_Kind__ |
Propiedades con un determinado nombre en entidades de un tipo específico; una entidad con estadísticas por combinación de nombre de propiedad y tipo exclusivos Propiedades adicionales: • property_name : nombre de la propiedad (una cadena)• kind_name : nombre del tipo representado (una cadena)• entity_bytes : almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes : el almacenamiento en entradas de índice integradas, medido en bytes.• builtin_index_count : el recuento de entradas de índice integradas. |
Propiedades de un tipo y con un nombre | __Stat_PropertyType_PropertyName_Kind__ Entrada específica del espacio de nombres: __Stat_Ns_PropertyType_PropertyName_Kind__ |
Propiedades con un nombre y un tipo de valor determinados en todas las entidades de un tipo determinado. Se trata de una entidad de estadísticas por cada combinación de nombre de propiedad, tipo de valor y tipo que haya en la base de datos. Propiedades adicionales: • property_type : nombre del tipo de valor (una cadena)• property_name : nombre de la propiedad (una cadena).• kind_name : el nombre del tipo representado (una cadena).• entity_bytes : el almacenamiento en la tabla de entidades medido en bytes.• builtin_index_bytes : el almacenamiento en entradas de índice integradas, medido en bytes.• builtin_index_count : el número de entradas de índice integradas.Para obtener más información, consulta la sección Limitaciones de las estadísticas de este documento. |
Algunas estadísticas hacen referencia a los tipos de valor de propiedad por su nombre, como cadenas. Estos son los nombres:
"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:
- Las propiedades
__Stat_PropertyType_Kind__
y__Stat_PropertyType_PropertyName_Kind__
devuelven metadatos de tipo de propiedad para los tipos de valor array y registran por separado el tipo de propiedad de cada valor de la matriz. Por ejemplo, si una propiedad de matriz almacena una lista de cadenas, 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 los registros__Stat_Ns_Total__
. Las entidades__Stat_Namespace__
se almacenan en el espacio de nombres vacío y contienen un camposubject_namespace
que 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 lo tanto, una consulta de tipo__Stat_Namespace__
(del espacio de nombres de cadena vacía) ordenada de forma descendente porbytes
mostrará primero los espacios de nombres que consumen la mayor cantidad de almacenamiento. Como no se pueden hacer consultas en varios espacios de nombres, cualquier consulta de entidades__Stat_Ns_Total__
solo generará un registro como máximo.
Orden de colocación de las entidades de estadísticas
Las aplicaciones con miles de espacios de nombres, tipos o nombres de propiedades requieren un gran número 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 el modo de Datastore eliminan progresivamente 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 eliminan.
Las entidades de estadísticas se colocan en grupos en el siguiente orden predeterminado:
Estadísticas por espacio de nombres, por tipo y por propiedad:
__Stat_Ns_PropertyName_Kind__
__Stat_Ns_PropertyType_PropertyName_Kind__
estadísticas por tipo 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 tipo tienen el siguiente orden de eliminación:
estadísticas por espacio de nombres y por tipo
__Stat_Ns_Kind__
__Stat_Ns_Kind_IsRootEntity__
__Stat_Ns_Kind_NotRootEntity__
__Stat_Ns_PropertyType_Kind__
estadísticas por tipo
__Stat_Kind__
__Stat_Kind_IsRootEntity__
__Stat_Kind_NotRootEntity__
__Stat_PropertyType_Kind__