Statistiques de table

Bigtable fournit des statistiques de table (des métadonnées concernant une table) qui vous fournissent 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 nécessaires à la lecture de la table entière. Cette statistique de table vous donne une idée du nombre d'octets stockés dans la table. La valeur des données logiques en octets peut vous aider à comprendre l'impact de la compression sur la table. Par exemple, si la taille de la table indiquée dans Cloud Monitoring est identique ou supérieure à la valeur des données logiques en octets pour la table, il est possible que vous stockiez vos données dans un format difficile à compresser.

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 occupé par la famille de colonnes. Cette valeur correspond approximativement au nombre d'octets 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.

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