Nota: Se recomienda encarecidamente a los desarrolladores que creen aplicaciones nuevas que usen la biblioteca de cliente de NDB, que ofrece varias ventajas en comparación con esta biblioteca de cliente, como el almacenamiento automático en caché de entidades mediante la API Memcache. Si actualmente usas la biblioteca de cliente de DB anterior, consulta la guía de migración de DB a NDB.
Datastore mantiene estadísticas sobre los datos almacenados de una aplicación, como el número de entidades de un tipo determinado o el espacio que utilizan los valores de propiedad de un tipo determinado. Puedes ver estas estadísticas en la consola, en la página Panel de control. Google Cloud
También puedes acceder a estos valores de forma programática en la aplicación consultando entidades con nombres especiales mediante la API Datastore.
Se puede acceder a cada estadística como una entidad cuyo nombre de tipo empieza y termina con dos guiones bajos. Por ejemplo, cada aplicación tiene exactamente una entidad del tipo __Stat_Total__
que representa las estadísticas de todas las entidades de Datastore en total. 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
: 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 (valor de fecha y hora)
Algunos tipos de estadísticas incluyen también propiedades adicionales, las cuales se enumeran a continuación.
Una aplicación de Python puede usar las clases de modelo proporcionadas por el paquete
google.appengine.ext.db.stats
para acceder a las entidades estadísticas.
from google.appengine.ext.db import stats
global_stat = stats.GlobalStat.all().get()
print 'Total bytes stored: %d' % global_stat.bytes
print 'Total entities stored: %d' % global_stat.count
Cuando el sistema de estadísticas crea nuevas entidades de estadísticas, no elimina las antiguas de inmediato. La mejor forma de obtener una vista coherente de las estadísticas es consultar la entidad GlobalStat
con la timestamp
más reciente y, a continuación, usar ese valor de marca de tiempo como filtro al obtener otras entidades de estadísticas.
Las entidades con estadísticas se incluyen en los valores de estadísticas que se calculan. Las entidades de estadísticas ocupan espacio en función del número de tipos únicos y nombres de propiedades que utiliza la aplicación.
El sistema de estadísticas también creará estadísticas específicas para cada espacio de nombres.
Ten en cuenta que, si una aplicación no usa espacios de nombres de Datastore, no se crearán estadísticas específicas de espacios de nombres. Las estadísticas específicas de un espacio de nombres se encuentran en el espacio de nombres al que corresponden. Los nombres de los tipos de estadísticas específicas de un espacio de nombres tienen el prefijo __Stat_Ns_
y el mismo sufijo correspondiente que los tipos de estadísticas de toda la aplicación.
Las aplicaciones con miles de espacios de nombres, tipos o nombres de propiedades requieren un número muy elevado de entidades de estadísticas. Para que la sobrecarga de almacenar y actualizar las estadísticas sea razonable, Datastore elimina progresivamente las entidades de estadísticas en el siguiente orden:
- 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 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__
y__Stat_PropertyType_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 resumen (__Stat_Kind_CompositeIndex__
,
__Stat_PropertyType__
, __Stat_Total__
) nunca se eliminan.
A continuación, se incluye la lista completa de estadísticas disponibles:
Estadística | Tipo de entidad con estadística | Descripción |
---|---|---|
Todas las entidades | __Stat_Total__ Clase de Python: GlobalStat Entrada específica del espacio de nombres: __Stat_Ns_Total__ Clase de Python: NamespaceGlobalStat |
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 : número de entradas de índice integradas.• composite_index_bytes : el almacenamiento de las entradas de índice compuesto, medido en bytes.• composite_index_count : número de entradas de índices compuestos. |
Todas las entidades de un espacio de nombres | __Stat_Namespace__ Clase de Python: NamespaceStat 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 : número de entradas de índice integradas.• composite_index_bytes : el almacenamiento de las entradas de índice compuesto, medido en bytes.• composite_index_count : número de entradas de índices compuestos. |
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__ Clase de Python: KindStat |
Entradas de la tabla de índices compuestos. Una entidad de estadísticas por cada tipo de entidad almacenada. Propiedades adicionales: • index_id , el ID del índice.• kind_name , el nombre del tipo representado (una cadena) |
Entidades de un tipo | __Stat_Kind__ Clase de Python: KindStat Entrada específica del espacio de nombres: __Stat_Ns_Kind__ Clase de Python: NamespaceKindStat |
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 : número de entradas de índice integradas.• composite_index_bytes : el almacenamiento de las entradas de índice compuesto, medido en bytes.• composite_index_count : número de entradas de índices compuestos. |
Entidades raíz de un tipo | __Stat_Kind_IsRootEntity__ Clase de Python: KindRootEntityStat Entrada específica del espacio de nombres: __Stat_Ns_Kind_IsRootEntity__ Clase de Python: NamespaceKindRootEntityStat |
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__ Clase de Python: KindNotRootEntityStat Entrada específica del espacio de nombres: __Stat_Ns_Kind_NotRootEntity__ Clase de Python: NamespaceKindNotRootEntityStat |
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__ Clase de Python: PropertyTypeStat Entrada específica del espacio de nombres: __Stat_Ns_PropertyType__ Clase de Python: NamespacePropertyTypeStat |
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__ Clase de Python: KindPropertyTypeStat Entrada específica del espacio de nombres: __Stat_Ns_PropertyType_Kind__ Clase de Python: NamespaceKindPropertyTypeStat |
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 , el nombre del tipo de valor (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 del índice integrado, medido en bytes.• builtin_index_count : el recuento de entradas de índice integradas. |
Propiedades con un nombre | __Stat_PropertyName_Kind__ Clase de Python: KindPropertyNameStat Entrada específica del espacio de nombres: __Stat_Ns_PropertyName_Kind__ Clase de Python: NamespaceKindPropertyNameStat |
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__ Clase de Python: KindPropertyNamePropertyTypeStat Entrada específica del espacio de nombres: __Stat_Ns_PropertyType_PropertyName_Kind__ Clase de Python: NamespaceKindPropertyNamePropertyTypeStat |
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 exista en Datastore. Propiedades adicionales: • property_type , el nombre del tipo de valor (una cadena)• property_name , el 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 recuento de entradas de índice integradas. |
Algunas estadísticas hacen referencia a los tipos de valor de propiedad de Datastore por 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"