Estadísticas de Datastore

Firestore en modo Datastore (Datastore) mantiene estadísticas sobre los datos que almacenas en un una aplicación, como la cantidad de entidades que hay, el tipo o la cantidad espacio se utiliza en los valores de propiedad de un tipo determinado.

Puedes ver estas estadísticas en la consola de Google Cloud, en una de de la siguiente manera:

  • En la página Panel,
  • En la página Entidades, ejecuta una consulta de GQL con el formato SELECT * FROM __Stat_Kind__.
  • De manera programática dentro de la aplicación, mediante consultas sobre nombres especiales con la API de Datastore. Para obtener más información sobre el de API de Datastore, consulta APIs y Referencia.

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. Son llamadas entidades estadísticas. Por ejemplo, cada app 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 realizan un seguimiento de la información sobre tus datos y te ofrecen estadísticas sobre el uso de datos. Se crean automáticamente. Cada entidad estadística tiene la 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 un tipo específico. El tipo de estadísticas indica la categoría. de estadísticas que se recopilan o utilizan. Usa el tipo para identificar el propósito de un estadísticas, como optimizar una consulta, mejorar el rendimiento o analizar datos.

Algunos tipos de estadísticas también tienen propiedades adicionales que se enumeran en la Lista de estadísticas de este documento.

Cuando el sistema de estadísticas crea entidades estadísticas nuevas, no borra las entidades estadísticas anteriores de inmediato. La mejor manera de obtener una vista coherente de las estadísticas es consultar la entidad estadística con el timestamp más reciente y, luego, usar esa marca de tiempo como filtro cuando recuperas otras entidades estadísticas.

El sistema de estadísticas también crea estadísticas específicas para cada espacio de nombres. Los nombres de tipo de estadísticas específicas de espacios de nombres son con el prefijo __Stat_Ns__, seguido de los mismos sufijos que los nombres de tipos de 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 del espacio de nombres. Solo puedes encontrar estadísticas específicas del espacio de nombres en el espacio de nombres al que son relevantes.

Lista de estadísticas

La siguiente es una lista de 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: Es el almacenamiento en entradas de índices integrados medidos 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: Es 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 cadena)
entity_bytes: El almacenamiento en la tabla de entidades medido en bytes
builtin_index_bytes: Es el almacenamiento en entradas de índices integrados medidos 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: Es el recuento 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 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:

index_id: El ID del índice
kind_name: Es el nombre del tipo representado (una string).
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: Es el almacenamiento en entradas de índices integrados medidos 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: Es 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: Es el almacenamiento en entradas de índices integrados medidos 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: Es 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: Es el almacenamiento en entradas de índices integrados medidos 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 cadena)
property_name: el nombre de la propiedad (una cadena)
kind_name: Es el nombre del tipo representado (una string).
entity_bytes: El almacenamiento en la tabla de entidades medido en bytes
builtin_index_bytes: Es el almacenamiento en entradas de índices integrados medidos en bytes.
builtin_index_count: Es 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:

  • Las propiedades __Stat_PropertyType_Kind__ y __Stat_PropertyType_PropertyName_Kind__ muestran metadatos de tipo de propiedad para los tipos de valores 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 cadenas, la propiedad registra el tipo de propiedad como STRING, mientras que el tipo de propiedad real es ARRAY<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 campo subject_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 campo subject_namespace. Por lo tanto, una consulta en la categoría __Stat_Namespace__ (del espacio de nombres de cadena vacía) ordenada de forma descendente por bytes enumerará primero los espacios de nombres que consumen el almacenamiento más grande. Dado que las consultas entre espacios de nombres no son posibles, cualquier consulta sobre entidades __Stat_Ns_Total__ producirá como máximo un solo registro.

Orden de eliminación de las entidades de estadísticas

Las aplicaciones con miles de espacios de nombres, tipos o nombres de propiedades requieren una gran cantidad de entidades estadísticas. Para reducir la sobrecarga de almacenamiento y la actualización de las estadísticas, las bases de datos de Firestore en modo Datastore eliminar 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 estadísticas se descartan en grupos en el siguiente orden predeterminado:

  1. estadísticas por espacio de nombres, por categoría y por propiedad:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  2. estadísticas por categoría y por propiedad

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  3. estadísticas por espacio de nombres

    • __Stat_Namespace__
    • __Stat_Ns_Kind_CompositeIndex__
    • __Stat_Ns_PropertyType__
    • __Stat_Ns_Total__

Las entidades de estadísticas de similares tienen el siguiente orden de lanzamiento:

  1. 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__
  2. estadísticas por categoría

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

¿Qué sigue?