Vista TABLE_STORAGE_BY_FOLDER

La vista INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER contiene una fila por cada tabla o vista materializada de la carpeta superior del proyecto actual, incluidas sus subcarpetas.

Esta tabla no mantiene datos en tiempo real y puede tener un retraso de unos segundos o minutos. Los cambios en el almacenamiento que se deban únicamente a la caducidad de particiones o tablas, o a modificaciones en el periodo de viaje en el tiempo del conjunto de datos, pueden tardar hasta un día en aparecer en la vista INFORMATION_SCHEMA.TABLE_STORAGE. Si se elimina un conjunto de datos que contiene más de 1000 tablas, esta vista no reflejará el cambio hasta que haya transcurrido el periodo de retroceso del conjunto de datos eliminado.

Las vistas de almacenamiento de tablas te ofrecen una forma cómoda de observar el consumo de almacenamiento actual y, además, proporcionan detalles sobre si el almacenamiento utiliza bytes lógicos sin comprimir, bytes físicos comprimidos o bytes de viajes en el tiempo. Esta información puede ayudarte con tareas como planificar el crecimiento futuro y comprender los patrones de actualización de las tablas.

Datos incluidos en las *_BYTES columnas

Las columnas *_BYTES de las vistas de almacenamiento de tablas incluyen información sobre el uso de bytes de almacenamiento. Esta información se determina analizando el uso del almacenamiento de las vistas materializadas y los siguientes tipos de tablas:

  • Tablas permanentes creadas con cualquiera de los métodos descritos en Crear y usar tablas.
  • Tablas temporales creadas en sesiones. Estas tablas se colocan en conjuntos de datos con nombres generados, como "_c018003e063d09570001ef33ae401fad6ab92a6a".
  • Tablas temporales creadas en consultas de varias instrucciones ("scripts"). Estas tablas se colocan en conjuntos de datos con nombres generados, como "_script72280c173c88442c3a7200183a50eeeaa4073719".

Los datos almacenados en la caché de resultados de consultas no se te facturan, por lo que no se incluyen en los valores de la columna *_BYTES.

Los clones y las copias de seguridad muestran los valores de las columnas *_BYTES como si fueran tablas completas, en lugar de mostrar la diferencia del almacenamiento usado por la tabla base, por lo que son una sobreestimación. En tu factura se tiene en cuenta correctamente esta diferencia en el uso del almacenamiento. Para obtener más información sobre los bytes delta almacenados y facturados por los clones y las instantáneas, consulta la TABLE_STORAGE_USAGE_TIMELINE vista.

Previsión de la facturación del almacenamiento

Para predecir la facturación mensual del almacenamiento de un conjunto de datos, puede usar las columnas logical o physical *_BYTES de esta vista, en función del modelo de facturación del almacenamiento del conjunto de datos que utilice. Ten en cuenta que esta es solo una previsión aproximada y que los importes de facturación precisos se calculan en función del uso de la infraestructura de facturación del almacenamiento de BigQuery y se muestran en Facturación de Cloud.

En el caso de los conjuntos de datos que usan un modelo de facturación lógica, puedes predecir tus costes de almacenamiento mensuales de la siguiente manera:

((Valor de ACTIVE_LOGICAL_BYTES / POW(1024, 3)) * precio de bytes lógicos activos) + ((Valor de LONG_TERM_LOGICAL_BYTES / POW(1024, 3)) * precio de bytes lógicos a largo plazo)

El valor ACTIVE_LOGICAL_BYTES de una tabla refleja los bytes activos que usa esa tabla en ese momento.

En el caso de los conjuntos de datos que usan un modelo de facturación física, puedes predecir los costes de almacenamiento de la siguiente manera:

((valor de ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES / POW(1024, 3)) * precio de bytes físicos activos) + ((valor de LONG_TERM_PHYSICAL_BYTES / POW(1024, 3)) * precio de bytes físicos a largo plazo)

El valor ACTIVE_PHYSICAL_BYTES de una tabla refleja los bytes activos que usa actualmente esa tabla más los bytes que se usan para la función de viaje en el tiempo de esa tabla.

Para ver los bytes activos de la tabla, resta el valor de TIME_TRAVEL_PHYSICAL_BYTES al valor de ACTIVE_PHYSICAL_BYTES.

Para obtener más información, consulta la página Precios de almacenamiento.

Permisos obligatorios

Para consultar la vista INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER, necesitas los siguientes permisos de gestión de identidades y accesos (IAM) en la carpeta superior del proyecto:

  • bigquery.tables.get
  • bigquery.tables.list

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos anteriores:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer

Para obtener más información sobre los permisos de BigQuery, consulta el artículo sobre los roles y permisos de gestión de identidades y accesos de BigQuery.

Esquema

La vista INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
FOLDER_NUMBERS REPEATED INTEGER IDs numéricos de las carpetas que contienen el proyecto, empezando por la carpeta que contiene directamente el proyecto, seguida de la carpeta que contiene la carpeta secundaria, y así sucesivamente. Por ejemplo, si FOLDER_NUMBERS es [1, 2, 3], la carpeta 1 contiene inmediatamente el proyecto, la carpeta 2 contiene 1 y la carpeta 3 contiene 2. Esta columna solo se rellena en TABLE_STORAGE_BY_FOLDER.
PROJECT_ID STRING El ID del proyecto que contiene el conjunto de datos.
PROJECT_NUMBER INT64 El número de proyecto del proyecto que contiene el conjunto de datos.
TABLE_CATALOG STRING El ID del proyecto que contiene el conjunto de datos.
TABLE_SCHEMA STRING Nombre del conjunto de datos que contiene la tabla o la vista materializada, también denominado datasetId.
TABLE_NAME STRING Nombre de la tabla o de la vista materializada, también conocido como tableId.
CREATION_TIME TIMESTAMP Hora de creación de la tabla.
TOTAL_ROWS INT64 Número total de filas de la tabla o de la vista materializada.
TOTAL_PARTITIONS INT64 Número de particiones presentes en la tabla o en la vista materializada. Las tablas sin particiones devuelven 0.
TOTAL_LOGICAL_BYTES INT64 Número total de bytes lógicos (sin comprimir) de la tabla o de la vista materializada.
ACTIVE_LOGICAL_BYTES INT64 Número de bytes lógicos (sin comprimir) que tienen menos de 90 días.
LONG_TERM_LOGICAL_BYTES INT64 Número de bytes lógicos (sin comprimir) que tienen más de 90 días.
CURRENT_PHYSICAL_BYTES INT64 Número total de bytes físicos del almacenamiento actual de la tabla en todas las particiones.
TOTAL_PHYSICAL_BYTES INT64 Número total de bytes físicos (comprimidos) usados para el almacenamiento, incluidos los bytes activos, a largo plazo y de viajes en el tiempo (datos eliminados o modificados). No se incluyen los bytes de seguridad (datos eliminados o modificados que se conservan después del periodo de la función de viaje en el tiempo).
ACTIVE_PHYSICAL_BYTES INT64 Número de bytes físicos (comprimidos) con una antigüedad inferior a 90 días, incluidos los bytes de viajes en el tiempo (datos eliminados o modificados).
LONG_TERM_PHYSICAL_BYTES INT64 Número de bytes físicos (comprimidos) con más de 90 días de antigüedad.
TIME_TRAVEL_PHYSICAL_BYTES INT64 Número de bytes físicos (comprimidos) usados por el almacenamiento de viajes en el tiempo (datos eliminados o modificados).
STORAGE_LAST_MODIFIED_TIME TIMESTAMP La hora más reciente en la que se escribieron datos en la tabla.
DELETED BOOLEAN Indica si la tabla se ha eliminado.
TABLE_TYPE STRING El tipo de tabla. Por ejemplo, BASE TABLE.
MANAGED_TABLE_TYPE STRING Esta columna está en versión preliminar. Tipo gestionado de la tabla. Por ejemplo, NATIVE o BIGLAKE.
FAIL_SAFE_PHYSICAL_BYTES INT64 Número de bytes físicos (comprimidos) utilizados por el almacenamiento a prueba de fallos (datos eliminados o modificados).
LAST_METADATA_INDEX_REFRESH_TIME TIMESTAMP La hora de la última actualización del índice de metadatos de la tabla.
TABLE_DELETION_REASON STRING Motivo de la eliminación de la tabla si el campo DELETED es true. Los valores posibles son los siguientes:
  • TABLE_EXPIRATION: tabla eliminada tras el tiempo de vencimiento establecido
  • El usuario ha eliminado el conjunto de datos DATASET_DELETION:
  • El usuario ha eliminado la tabla USER_DELETED:
TABLE_DELETION_TIME TIMESTAMP Hora de eliminación de la tabla.

Ámbito y sintaxis

Las consultas en esta vista deben incluir un calificador de región. En la siguiente tabla se explica el ámbito de la región de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER Carpeta que contiene el proyecto especificado REGION
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • REGION: cualquier nombre de región del conjunto de datos. Por ejemplo, `region-us`.

Para obtener información sobre el almacenamiento de las tablas de la carpeta principal del proyecto especificado, ejecuta la siguiente consulta:

SELECT * FROM `myProject`.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER;

Ejemplo

La siguiente consulta muestra qué proyectos de una carpeta usan más almacenamiento:

SELECT
  project_id,
  SUM(total_logical_bytes) AS total_logical_bytes
FROM
  `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER
GROUP BY
  project_id
ORDER BY
  total_logical_bytes DESC;

El resultado es similar al siguiente:

+---------------------+---------------------+
|     project_id      | total_logical_bytes |
+---------------------+---------------------+
| projecta            |     971329178274633 |
+---------------------+---------------------+
| projectb            |     834638211024843 |
+---------------------+---------------------+
| projectc            |     562910385625126 |
+---------------------+---------------------+