Remarque : Les développeurs qui créent des applications sont vivement encouragés à utiliser la bibliothèque cliente NDB qui présente plusieurs avantages supplémentaires par rapport à cette bibliothèque cliente, tels que la mise en cache automatique des entités via l'API Memcache. Si vous utilisez actuellement l'ancienne bibliothèque cliente DB, consultez le guide de migration de DB vers NDB.
Datastore conserve des statistiques sur les données stockées pour une application, telles que le nombre d'entités d'un genre donné ou l'espace utilisé par les valeurs de propriété d'un type donné. Vous pouvez consulter ces statistiques dans la console Google Cloud, sur la page Tableau de bord.
Vous pouvez également accéder à ces valeurs de manière automatisée dans l'application en interrogeant des entités spécialement désignées à l'aide de l'API Datastore.
Chaque statistique est accessible en tant qu'entité dont le nom de genre commence et se termine par deux traits de soulignement. Par exemple, chaque application possède exactement une entité du genre __Stat_Total__
qui représente des statistiques sur toutes les entités de Datastore au total. Chaque entité statistique possède les propriétés suivantes :
count
, le nombre d'éléments pris en compte par la statistique (un entier long)bytes
, la taille totale des éléments pour cette statistique (un entier long)timestamp
, l'heure de la mise à jour de la statistique la plus récente (une valeur date-heure)
Certains genres de statistiques possèdent également des propriétés supplémentaires, répertoriées ci-dessous.
Une application Python peut utiliser des classes de modèle fournies par le package google.appengine.ext.db.stats
pour accéder à des entités statistiques.
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
Lorsque le système de statistiques crée des entités statistiques, il ne supprime pas immédiatement les anciennes. Le meilleur moyen d'obtenir un affichage cohérent des statistiques est de requérir l'entité GlobalStat
dotée de la valeur timestamp
la plus récente, puis d'utiliser cette valeur comme filtre lors de la récupération d'autres entités statistiques.
Les entités statistiques sont incluses dans les valeurs statistiques calculées. Elles utilisent l'espace en fonction du nombre de noms de propriétés et de genres uniques utilisés par l'application.
Le système de statistiques crée également des statistiques spécifiques à chaque espace de noms. Veuillez noter que si une application n'utilise pas les espaces de noms Datastore, les statistiques spécifiques aux espaces de noms ne seront pas créées. Les statistiques spécifiques à un espace de noms se trouvent dans l'espace de noms auquel elles se rapportent. Les noms de genres pour les statistiques spécifiques à un espace de noms portent le préfixe __Stat_Ns_
et le même suffixe que les genres de statistiques à l'échelle de l'application.
Les applications comportant des milliers d'espaces de noms, de genres ou de noms de propriétés nécessitent un très grand nombre d'entités statistiques. Pour que le temps nécessaire au stockage et à la mise à jour des statistiques reste raisonnable, Datastore supprime progressivement les entités statistiques, dans l'ordre suivant :
- Statistiques par espace de noms, par genre et par propriété :
__Stat_Ns_PropertyName_Kind__
,__Stat_Ns_PropertyType_PropertyName_Kind__
- Statistiques par genre et par propriété :
__Stat_PropertyName_Kind__
,__Stat_PropertyType_PropertyName_Kind__
- Statistiques par espace de noms et par genre :
__Stat_Ns_Kind__
,__Stat_Ns_Kind_IsRootEntity__
,__Stat_Ns_Kind_NotRootEntity__
,__Stat_Ns_PropertyType_Kind__
- Statistiques par genre :
__Stat_Kind__
,__Stat_Kind_IsRootEntity__
,__Stat_Kind_NotRootEntity__
,__Stat_PropertyType_Kind__
- Statistiques par espace de noms :
__Stat_Namespace__
,__Stat_Ns_Kind_CompositeIndex__
,__Stat_Ns_PropertyType__
,__Stat_Ns_Total__
Les entités statistiques récapitulatives (__Stat_Kind_CompositeIndex__
, __Stat_PropertyType__
, __Stat_Total__
) ne sont jamais supprimées.
La liste complète des statistiques disponibles est la suivante :
Statistique | Genre d'entité statistique | Description |
---|---|---|
toutes les entités | __Stat_Total__ Classe Python : GlobalStat Entrée spécifique à un espace de noms : __Stat_Ns_Total__ Classe Python : NamespaceGlobalStat |
Toutes les entités. Propriétés supplémentaires : • entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées• composite_index_bytes : l'espace de stockage dans les entrées d'index composite, mesuré en octets• composite_index_count : le nombre d'entrées d'index composite |
Toutes les entités dans un espace de noms | __Stat_Namespace__ Classe Python : NamespaceStat Notez que les entités __Stat_Namespace__ sont créées pour chaque espace de noms rencontré et ne se trouvent que dans l'espace de noms de chaîne vide. |
Toutes les entités dans un espace de noms. • subject_namespace : l'espace de noms représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées• composite_index_bytes : l'espace de stockage dans les entrées d'index composite, mesuré en octets• composite_index_count : le nombre d'entrées d'index composite |
Toutes les entrées dans les index définis par l'application | __Stat_Kind_CompositeIndex__ Entrée spécifique à un espace de noms : __Stat_Ns_Kind_CompositeIndex__ Classe Python : KindStat |
Entrées dans la table d'index composite ; une entité statistique pour chaque genre d'entité stockée. Propriétés supplémentaires : • index_id : l'identifiant de l'index• kind_name : le nom du genre représenté (une chaîne) |
Entités d'un genre | __Stat_Kind__ Classe Python : KindStat Entrée spécifique à un espace de noms : __Stat_Ns_Kind__ Classe Python : NamespaceKindStat |
Entités d'un genre ; une entité statistique pour chaque genre d'entité stocké. Propriétés supplémentaires : • kind_name : le nom du genre représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées• composite_index_bytes : l'espace de stockage dans les entrées d'index composite, mesuré en octets• composite_index_count : le nombre d'entrées d'index composite |
Entités racines d'un genre | __Stat_Kind_IsRootEntity__ Classe Python : KindRootEntityStat Entrée spécifique à un espace de noms : __Stat_Ns_Kind_IsRootEntity__ Classe Python : NamespaceKindRootEntityStat |
Entités d'un genre qui sont les entités racines d'un groupe d'entités (sans parent ascendant) ; une entité statistique pour chaque genre d'entité stocké. Propriétés supplémentaires : • kind_name : le nom du genre représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets |
Entités non racines d'un genre | __Stat_Kind_NotRootEntity__ Classe Python : KindNotRootEntityStat Entrée spécifique à un espace de noms : __Stat_Ns_Kind_NotRootEntity__ Classe Python : NamespaceKindNotRootEntityStat |
Entités d'un genre qui ne sont pas les entités racines d'un groupe d'entités (avec parent ascendant) ; une entité statistique pour chaque genre d'entité stocké. Propriétés supplémentaires : • kind_name : le nom du genre représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets |
propriétés d'un type | __Stat_PropertyType__ Classe Python : PropertyTypeStat Entrée spécifique à un espace de noms : __Stat_Ns_PropertyType__ Classe Python : NamespacePropertyTypeStat |
Propriétés d'un type de valeur sur l'ensemble des entités ; une entité statistique par type de valeur. Propriétés supplémentaires : • property_type : nom du type de valeur (une chaîne)• entity_bytes : espace de stockage de la table des entités mesuré en octets.• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées |
Propriétés d'un type par genre | __Stat_PropertyType_Kind__ Classe Python : KindPropertyTypeStat Entrée spécifique à un espace de noms : __Stat_Ns_PropertyType_Kind__ Classe Python : NamespaceKindPropertyTypeStat |
Propriétés d'un type de valeur sur les entités d'un genre donné ; une entité statistique par combinaison de type de propriété et de genre. Propriétés supplémentaires : • property_type : le nom du type de valeur (une chaîne)• kind_name : le nom du genre représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées |
propriétés avec un nom | __Stat_PropertyName_Kind__ Classe Python : KindPropertyNameStat Entrée spécifique à un espace de noms : __Stat_Ns_PropertyName_Kind__ Classe Python : NamespaceKindPropertyNameStat |
Propriétés avec un nom donné sur les entités d'un genre donné ; une entité statistique par combinaison de nom de propriété unique et de genre. Propriétés supplémentaires : • property_name : le nom de la propriété (une chaîne)• kind_name : le nom du genre représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées |
Propriétés d'un type comportant un nom | __Stat_PropertyType_PropertyName_Kind__ Classe Python : KindPropertyNamePropertyTypeStat Entrée spécifique à un espace de noms : __Stat_Ns_PropertyType_PropertyName_Kind__ Classe Python : NamespaceKindPropertyNamePropertyTypeStat |
Propriétés avec un nom donné et un type de valeur donné sur les entités d'un genre donné ; une entité statistique par combinaison de nom de propriété, de type de valeur et de genre existant dans Datastore. Propriétés supplémentaires : • property_type : le nom du type de valeur (une chaîne)• property_name : le nom de la propriété (une chaîne)• kind_name : le nom du genre représenté (une chaîne)• entity_bytes : l'espace de stockage dans la table des entités, mesuré en octets• builtin_index_bytes : l'espace de stockage dans les entrées d'index intégrées, mesuré en octets• builtin_index_count : le nombre d'entrées d'index intégrées |
Certaines statistiques font référence aux types des valeurs de propriétés du magasin de données en utilisant leurs noms, en tant que chaînes. Ces noms sont les suivants :
"Blob"
"BlobKey"
"Boolean"
"Category"
"Date/Time"
"Email"
"Float"
"GeoPt"
"IM"
"Integer"
"Key"
"Link"
"NULL"
"PhoneNumber"
"PostalAddress"
"Rating"
"ShortBlob"
"String"
"Text"
"User"