Statistiques du datastore en Python 2

Remarque : Les développeurs qui créent des applications sont vivement encouragés à utiliser la bibliothèque cliente NDB, qui présente plusieurs avantages 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.

Cloud 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 afficher ces statistiques dans la console GCP depuis 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 Cloud 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é de genre __Stat_Total__, qui représente des statistiques sur toutes les entités de Cloud Datastore au total. Chaque entité statistique possède les propriétés suivantes :

  • count, le nombre d'éléments considérés 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.

Pour accéder aux entités statistiques, une application peut avoir recours aux classes de modèle fournies par le package google.appengine.ext.db.stats.

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 des statistiques crée des entités statistiques, il ne supprime pas immédiatement les anciennes. La meilleure façon d'obtenir une vue cohérente des statistiques consiste à rechercher l'entité GlobalStat avec la valeur timestamp la plus récente, puis à utiliser cette valeur d'horodatage comme filtre lors de l'extraction 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 nommage. Veuillez noter que si une application n'utilise pas les espaces de nommage Cloud Datastore, les statistiques spécifiques à un espace de nommage ne seront pas créées. Les statistiques spécifiques à un espace de nommage se trouvent dans l'espace de nommage auquel elles se rapportent. Les noms de genres pour les statistiques spécifiques à un espace de nommage 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 nommage, 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, Cloud Datastore supprime progressivement les entités de 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 d'un espace de nommage :
__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 nommage __Stat_Namespace__
Classe Python : NamespaceStat
Notez que les entités __Stat_Namespace__ sont créées pour chaque espace de nommage rencontré et ne se trouvent que dans l'espace de nommage de chaîne vide.
Toutes les entités dans un espace de noms.

subject_namespace : l'espace de nommage 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 d'un espace de nommage : __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 d'un espace de nommage :
__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 d'un espace de nommage :
__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 d'un espace de nommage :
__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 d'un espace de nommage :
__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 : le nom du type de valeur (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 par genre __Stat_PropertyType_Kind__
Classe Python : KindPropertyTypeStat
Entrée spécifique d'un espace de nommage :
__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 d'un espace de nommage :
__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 qui possèdent un nom __Stat_PropertyType_PropertyName_Kind__
Classe Python : KindPropertyNamePropertyTypeStat
Entrée spécifique d'un espace de nommage :
__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 Cloud 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 de valeur de propriété Cloud Datastore par nom, sous forme de 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"
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Python 2