Statistiques de table
Bigtable fournit des statistiques de table (métadonnées relatives à une table) qui donnent des informations récapitulatives sur la table, telles que le nombre de lignes ou le nombre moyen de cellules par colonne.
Ce document décrit les statistiques de table et explique comment les obtenir à l'aide de Google Cloud CLI. Avant de lire cette page, vous devez comprendre le modèle de stockage de Bigtable et connaître les bonnes pratiques liées à la conception de schémas ainsi que la récupération de mémoire.
Les statistiques de table offrent de la visibilité sur une table Bigtable. Cela peut être utile lorsque vous résolvez des problèmes de performance ou de stockage ou lorsque vous souhaitez déterminer la source des coûts de stockage. Ils peuvent également vous aider à déterminer si vous stockez davantage de données que nécessaire.
Précision attendue
Lorsque vous récupérez les statistiques d'une table, les données obtenues sont approximatives : ces statistiques reflètent l'état de votre table dans l'un des clusters de votre instance au moment du compactage le plus récent.
La mise à disposition d'un ensemble complet de statistiques d'une table ne peut intervenir qu'après le compactage initial, qui a généralement lieu une semaine après la création de la table. Les statistiques de table sont exactes au moment du dernier compactage, qui peut dater d'une semaine au plus.
Champs des statistiques de table
Une requête demandant les statistiques d'une table renvoie les champs suivants. Des détails accompagnés d'exemples sont présentés dans la section suivante.
| Champ des statistiques de table | Nom de l'API | Description |
|---|---|---|
| Nombre de lignes | row_count |
Nombre de lignes dans la table. Pour consulter les détails, reportez-vous à la section Nombre de lignes. |
| Nombre moyen de colonnes par ligne | average_columns_per_row |
Nombre moyen de colonnes pour chaque ligne de la table dans son ensemble. Pour consulter les détails et un exemple, reportez-vous à la section Nombre moyen de colonnes par ligne . |
| Nombre moyen de cellules par colonne | average_cells_per_column |
Nombre moyen de cellules stockées dans toutes les colonnes de toutes les lignes. Pour consulter les détails, reportez-vous à la section Nombre moyen de cellules par colonne. |
| Données logiques en octets | logical_data_bytes |
Quantité d'espace occupée par la table. Pour consulter les détails, reportez-vous à la section Données logiques en octets. |
Les statistiques de table incluent également les champs suivants pour chaque famille de colonnes de la table.
| Champ des statistiques de famille de colonnes | Nom de l'API | Description |
|---|---|---|
| Nombre moyen de colonnes par ligne | average_columns_per_row |
Nombre moyen de colonnes par ligne dans la famille de colonnes. Pour consulter les détails et un exemple, reportez-vous à la section Nombre moyen de colonnes par ligne. |
| Nombre moyen de cellules par colonne | average_cells_per_column |
Nombre moyen de cellules dans chaque colonne, calculé sur toutes les lignes comportant des colonnes de la famille de colonnes. Pour consulter les détails et un exemple, reportez-vous à la section Nombre moyen de cellules par colonne. |
| Données logiques en octets | logical_data_bytes |
Quantité d'espace occupée par la famille de colonnes. Pour consulter les détails, reportez-vous à la section Données logiques en octets. |
Détails des champs des statistiques de table
Nombre de lignes
Cette valeur correspond au nombre de lignes dans la table. Chaque ligne est identifiée par une clé de ligne.
Nombre moyen de colonnes par ligne
Pour obtenir le nombre moyen de colonnes par ligne pour une table, Bigtable comptabilise le nombre de colonnes pour la table entière et divise cette valeur par le nombre de lignes de la table.
Prenons comme exemple la table suivante. La première ligne comporte trois colonnes et la deuxième ligne en compte deux.
| Clé de ligne | Famille de colonnes family-A | Famille de colonnes family-B | ||
|---|---|---|---|---|
| clé de ligne 1 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | |
| clé de ligne 2 | family-A:qualifier-W | family-B:qualifier-Z | ||
La table contient cinq colonnes et deux lignes. Le nombre moyen de colonnes par ligne est donc de 2.5.
Cette statistique de table vous donne une idée générale du type de votre table : haute et étroite (quelques colonnes par ligne), ou bien courte et large (beaucoup de colonnes dans chaque ligne).
Nombre moyen de cellules par colonne
Pour obtenir le nombre moyen de cellules par colonne pour une table, Bigtable prend le nombre total de cellules stockées dans la table et le divise par le nombre de colonnes de la table.
Selon la conception de votre schéma et vos stratégies de récupération de mémoire, votre table peut contenir plusieurs cellules ou une seule cellule dans une colonne. Le nombre de cellules que vous pouvez stocker est soumis aux limites de taille des données décrites sur la page "Quotas et limites" sous Taille des données dans les tables.
Si vous constatez que ce nombre est plus élevé que prévu, examinez vos règles de récupération de mémoire pour savoir si vous conservez davantage de cellules que nécessaire. Vous pouvez également vous demander si votre schéma et vos modèles d'écriture doivent être ajustés.
Données logiques en octets (table)
Cette valeur représente le nombre approximatif d'octets non compressés nécessaires à la lecture de la table entière. Cette statistique de table vous donne une idée du volume brut de données stockées dans la table.
Comparer la taille logique à l'utilisation de l'espace de stockage
Bigtable compresse automatiquement les données lorsqu'il les écrit sur le disque. Par conséquent, la taille de la table indiquée comme Utilisation de l'espace de stockage (octets) dans Cloud Monitoring et sur la page de présentation du cluster reflète l'espace de stockage compressé physique sur le disque, plutôt que la taille des données logiques non compressées. La facturation du stockage est également basée sur cette taille physique compressée.
Connaître ces deux valeurs vous aide à évaluer votre taux de compression effectif :
Économies de compression : diviser vos données logiques en octets par votre utilisation du stockage en octets vous donne une estimation de votre taux de compression. Par exemple, si votre table contient 10 To de données logiques et consomme 2,5 To d'espace de stockage sur le disque, votre taux de compression est d'environ 4:1.
Données non compressées ou précompressées : si l'utilisation de l'espace de stockage dans Cloud Monitoring est égale ou supérieure à vos données logiques en octets, vos données peuvent être stockées dans un format qui ne se compresse pas facilement (par exemple, des données qui ont été chiffrées ou compressées avant d'être écrites dans Bigtable), ou votre table peut contenir des valeurs de cellule supérieures à 1 Mio, que Bigtable ne compresse pas automatiquement. Pour en savoir plus sur la façon dont Bigtable compresse les données, consultez Compression des données.
Données écrasées ou supprimées en attente de compactage : les nouvelles mutations sont compressées dès qu'elles sont écrites sur le disque, et non pendant le compactage. Toutefois, lorsque vous écrasez ou supprimez des données, les anciennes versions de cellules et les repères de suppression (tombstones) restent sur le disque et sont comptabilisés dans l'utilisation de l'espace de stockage jusqu'à ce que la prochaine compaction les supprime définitivement. De plus, les statistiques de table reflètent l'état de la table au moment du compactage le plus récent, tandis que l'utilisation du stockage dans Cloud Monitoring est mise à jour en continu à mesure que de nouvelles données sont écrites.
Détails des champs des statistiques de famille de colonnes
Les statistiques d'une table incluent les champs suivants pour chaque famille de colonnes de la table.
Nombre moyen de colonnes par ligne
Ce nombre est calculé en prenant le nombre de colonnes de la famille de colonnes et en le divisant par le nombre de lignes de la table.
Prenons comme exemple la table suivante. La table comporte trois lignes, avec des colonnes dans les familles de colonnes family-A et family-B.
| Clé de ligne | Famille de colonnes family-A | Famille de colonnes family-B | ||
|---|---|---|---|---|
| clé de ligne 1 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | |
| clé de ligne 2 | family-A:qualifier-W | |||
| clé de ligne 3 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | family-B:qualifier-Z |
La famille de colonnes family-A comporte au total cinq colonnes dans la table. En divisant ce nombre par trois lignes, cela signifie que le nombre moyen de cellules par colonne pour family-A est de 1.67 (arrondi ici à deux décimales).
La famille de colonnes family-B comporte au total trois colonnes dans la table. En divisant ce nombre par trois lignes, le nombre moyen de colonnes par ligne pour family-A est de 1.
Nombre moyen de cellules par colonne
Pour déterminer le nombre moyen de cellules par colonne pour une famille de colonnes, Bigtable prend le nombre total de cellules de la famille de colonnes stockées dans toutes les lignes de la table et le divise par le nombre de lignes de la table.
Prenons comme exemple les lignes suivantes dans la famille de colonnes family-D.
| Clé de ligne | Famille de colonnes family-D | ||
|---|---|---|---|
| clé de ligne 1 | family-D:qualifier-W (3 cellules) | family-D:qualifier-X (1 cellule) | |
| clé de ligne 2 | family-D:qualifier-X (10 cellules) | ||
| clé de ligne 3 | family-D:qualifier-W (7 cellules) | family-D:qualifier-Y (6 cellules) | |
Le nombre total de cellules de la famille de colonnes est de 3 + 1 + 10 + 7 + 6 = 27. En divisant cette valeur par trois (qui correspond au nombre de lignes), cela signifie que la famille de colonnes family-D comporte en moyenne 9 cellules par colonne.
Données logiques en octets (famille de colonnes)
Les données logiques en octets reflètent l'espace non compressé occupé par la famille de colonnes. Cette valeur correspond approximativement au nombre d'octets non compressés nécessaires pour lire l'ensemble des données de la famille de colonnes au moment où les statistiques de la table ont été renvoyées. Comme pour les octets logiques au niveau de la table, cette valeur ne reflète pas les économies de stockage réalisées grâce à la compression des données sur le disque.
Exemple utilisant gcloud CLI
Pour obtenir les statistiques d'une table appelée sample-table, utilisez la commande bigtable instances table describe :
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID --view stats
Remplacez les éléments suivants :
TABLE_ID: identifiant permanent de la table.INSTANCE_ID: identifiant permanent de l'instance.
Le résultat ressemble à ce qui suit :
columnFamilies:
my-family:
stats:
averageCellsPerColumn: 12.34
averageColumnsPerRow: 56.78
logicalDataBytes: 314159
name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
stats:
averageCellsPerColumn: 12.34
averageColumnsPerRow: 56.78
logicalDataBytes: 314159
rowCount: 271828Étapes suivantes
- Surveillez vos ressources Bigtable.
- Utilisez Key Visualizer pour analyser vos habitudes d'utilisation.