Estadísticas de tablas

Bigtable proporciona estadísticas de la tabla, que son metadatos sobre una tabla, que te brindan información resumida sobre la tabla, como la cantidad de filas o la cantidad promedio de celdas por columna.

En este documento, se describen las estadísticas de las tablas y se explica cómo obtenerlas con Google Cloud CLI. Antes de leer esta página, debes comprender el Modelo de almacenamiento de Bigtable y familiarizarte con prácticas recomendadas para el diseño de esquemas y recolección de elementos no utilizados.

Las estadísticas de tablas proporcionan visibilidad en una tabla de Bigtable. Pueden ser útiles para solucionar problemas de rendimiento o almacenamiento, o cuando quiera determinar la fuente de los costos de almacenamiento. También pueden ayudarte para determinar si estás almacenando más datos de los que necesitas.

Precisión esperada

Cuando recuperas estadísticas de una tabla, los datos que obtienes son aproximados Las estadísticas de la tabla reflejan el estado de la tabla en uno de los clústeres a partir de la compactación más reciente.

Un conjunto completo de estadísticas de la tabla no estará disponible hasta después de la compactación inicial, que suele ocurrir alrededor de una semana después de que la tabla se crear. Las estadísticas de la tabla son precisas a partir de la compactación más reciente, que puede ser de hace una semana.

Campos de estadísticas de tablas

Una solicitud de las estadísticas de una tabla muestra los siguientes campos. Los detalles y los ejemplos se encuentran en la siguiente sección.

Campo de estadísticas de la tabla Nombre de la API Descripción
Cantidad de filas row_count La cantidad de filas en la tabla. Para obtener más información, consulta Cantidad de filas.
Cantidad promedio de columnas por fila average_columns_per_row La cantidad promedio de columnas en cada fila para toda la tabla. Para obtener detalles y un ejemplo, consulta Cantidad promedio de columnas por fila.
Cantidad promedio de celdas por columna average_cells_per_column El número promedio de celdas almacenadas en todas las columnas en todas las filas. Para detalles, consulta Cantidad promedio de celdas por columna.
Datos lógicos en bytes logical_data_bytes Es la cantidad de espacio que ocupa la tabla. Para obtener más información, consulta Datos lógicos en bytes.

Las estadísticas de la tabla también incluyen los siguientes campos para cada familia de columnas de la tabla.

Campo de estadísticas de la familia de columnas Nombre de la API Descripción
Cantidad promedio de columnas por fila average_columns_per_row Es la cantidad promedio de columnas por fila en la familia de columnas. Para obtener detalles y un ejemplo, consulta Cantidad promedio de columnas por fila.
Cantidad promedio de celdas por columna average_cells_per_column Es la cantidad de celdas en cada columna, promediada en todas las filas que tienen columnas en la familia de columnas. Para obtener más detalles y un ejemplo, consulta Cantidad promedio de celdas por columna.
Datos lógicos en bytes logical_data_bytes La cantidad de espacio que ocupa la familia de columnas. Para obtener más información, consulta Datos lógicos en bytes.

Detalles del campo de estadísticas de la tabla

Cantidad de filas

El recuento de filas es la cantidad de filas en la tabla. Cada fila se identifica por su clave de fila.

Cantidad promedio de columnas por fila

Para llegar al número promedio de columnas por fila en una tabla, Bigtable cuenta la cantidad de columnas de toda la tabla divide ese valor por el número de filas en la tabla.

A modo de ejemplo, considera la siguiente tabla. La primera fila tiene tres columnas, y la segunda tiene dos columnas.

Clave de fila Familia de columnas A Familia de columnas B
clave de fila 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
clave de fila 2 family-A:qualifier-W family-B:qualifier-Z

La tabla tiene cinco columnas y dos filas, por lo que la cantidad promedio de columnas por fila es 2.5.

Esta estadística de la tabla te da una idea general de si tu tabla es alta y estrecho (pocas columnas por fila) o corto y ancho (muchas columnas en cada fila).

Cantidad promedio de celdas por columna

Para obtener la cantidad promedio de celdas por columna de una tabla, Bigtable toma la cantidad total de celdas almacenadas en la tabla y la divide por la cantidad de columnas de la tabla.

Según el diseño de tu esquema y las políticas de recolección de elementos no utilizados, tu tabla puede tener varias celdas en una columna o solo una. El número de que puedes almacenar depende de los límites de tamaño de los datos descritos en en la página Cuotas y límites Tamaño de los datos dentro de las tablas.

Si ese número es más alto de lo que esperabas, examina tu contenido no utilizado. las reglas de recopilación para ver si retiene más celdas de las necesarias. Quizás y preguntar si se deben ajustar tu esquema y los patrones de escritura.

Datos lógicos en bytes (tabla)

Este valor representa la cantidad aproximada de bytes que se necesitaría para leer toda la tabla. Esta estadística de la tabla te da una idea de cuántos bytes hay almacenados en la tabla. Conocer los datos lógicos en bytes puede ayudarte a entender el impacto de la compresión en la mesa. Por ejemplo, si el tamaño de la tabla informado en Cloud Monitoring es igual o mayor que los datos lógicos en bytes para el entonces podrías estar almacenando tus datos en un formato que no sea fácil comprimidos.

Detalles del campo de estadísticas de la familia de columnas

Las estadísticas de una tabla incluyen los siguientes campos para cada familia de columnas de la tabla.

Cantidad promedio de columnas por fila

Para calcular este número, se toma la cantidad de columnas de la familia de columnas y se divide esa cantidad por la cantidad de filas de la tabla.

Por ejemplo, considera la siguiente tabla. La tabla tiene tres filas con en las familias de columnas family-A y family-B.

Clave de fila Familia de columnas A Familia de columnas B
clave de fila 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
clave de fila 2 family-A:qualifier-W
clave de fila 3 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y family-B:qualifier-Z

La familia de columnas family-A tiene un total de cinco columnas en la tabla. Divide por tres filas, eso significa que el número promedio de celdas por columna para family-A es 1.67 (se redondea aquí a dos decimales).

La familia de columnas family-B tiene un total de tres columnas en la tabla. Divide por tres filas, la cantidad promedio de columnas por fila para family-A es 1.

Cantidad promedio de celdas por columna

Para determinar el número promedio de celdas por columna de una familia de columnas, Bigtable toma el recuento de todas las celdas de la familia de columnas filas de la tabla y la divide por el número de filas de la tabla.

A modo de ejemplo, considera las siguientes filas en la familia de columnas family-D.

Clave de fila Familia de columnas D
clave de fila 1 family-D:qualifier-W (3 celdas) familia-D:calificador-X (1 celda)
clave de fila 2 family-D:calificador-X (10 celdas)
clave de fila 3 family-D:qualifier-W (7 celdas) family-D:qualifier-Y (6 celdas)

La cantidad de celdas en la familia de columnas es 3 + 1 + 10 + 7 + 6 = 27. Ese valor dividida por 3 (el número de filas) significa que la familia de columnas family-D tiene un promedio de celdas por columna de 9.

Datos lógicos en bytes (familia de columnas)

Los datos lógicos en bytes reflejan el espacio que ocupa la familia de columnas. Este valor es aproximadamente la cantidad de bytes que necesitas leer los datos en la familia de columnas en el momento en que se mostraron las estadísticas de la tabla.

Ejemplo en el que se usa la CLI de gcloud

Para obtener estadísticas de una tabla llamada sample-table, usa el comando bigtable instances table describe:

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID --view stats

Reemplaza lo siguiente:

  • TABLE_ID: el identificador permanente de la tabla
  • INSTANCE_ID: el identificador permanente de la instancia.

El resultado es similar a este:

  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

¿Qué sigue?