TABLE_STORAGE_BY_ORGANIZATION 视图

INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION 视图包含与当前项目关联的整个组织的每个表或具体化视图对应的一行。此表中的数据不会实时保留,可能会延迟几秒钟到几分钟。

表存储视图为您提供一种便捷的方法来观察当前存储空间消耗情况,并且还提供了有关存储空间是使用逻辑未压缩字节、物理压缩字节还是时间旅行字节的详细信息。这些信息可以帮助您完成规划未来发展和了解表的更新模式等任务。

*_BYTES 列中包含的数据

表存储视图中的 *_BYTES 列包含您的存储空间用量(以字节计)的相关信息。此信息根据具体化视图及以下类型的表的存储空间用量来确定:

  • 通过创建和使用表中所述的任何方法创建的永久表。
  • 通过会话创建的临时表。系统会将这些表放入具有生成名称(如“_c018003e063d09570001ef33ae401fad6ab92a6a”)的数据集中。
  • 多语句查询(“脚本”)中创建的临时表。系统会将这些表放入具有生成名称(如“_script72280c173c88442c3a7200183a50eeeaa4073719”)的数据集中。

查询结果缓存中存储的数据不会产生费用,因此不会计入 *_BYTES 列的值。

克隆和快照会显示 *_BYTES 列值,就像它们是完整的表一样,而不是显示基表所占用存储空间的增量,因此这些值是过高的估计值。您的账单会正确反映存储空间用量的增量。 如需详细了解克隆和快照存储和计费的增量字节数,请参阅 TABLE_STORAGE_USAGE_TIMELINE 视图

预测存储空间结算

如需预测数据集的每月存储结算费用,您可以使用此视图中的 logicalphysical *_BYTES 列,具体取决于数据集使用的数据集存储计费模型。请注意,这只是粗略的预测值,确切的结算金额根据 BigQuery 存储结算基础架构的使用情况并在 Cloud Billing 中显示计算得出。

对于使用逻辑结算模式的数据集,您可以按如下方式预测未来的每月存储费用:

((ACTIVE_LOGICAL_BYTES 值 / POW(1024, 3)) * 活跃逻辑字节价格) + ((LONG_TERM_LOGICAL_BYTES 值 / POW(1024, 3)) * 长期逻辑字节价格)

表的 ACTIVE_LOGICAL_BYTES 值反映了该表当前使用的活跃字节数。

对于使用物理计费模型的数据集,您可以按如下方式预测存储费用:

((ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES 值 / POW(1024, 3)) * 活跃物理字节价格) + ((LONG_TERM_PHYSICAL_BYTES 值 / POW(1024, 3)) * 长期物理字节价格)

表的 ACTIVE_PHYSICAL_BYTES 值反映了该表当前使用的活跃字节数,加上该表用于时间旅行的字节数。

如需单独查看表的活跃字节数,请从 ACTIVE_PHYSICAL_BYTES 值中减去 TIME_TRAVEL_PHYSICAL_BYTES 值。

如需了解详情,请参阅存储价格

所需权限

如需查询 INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION 视图,您需要拥有您的组织的以下 Identity and Access Management (IAM) 权限:

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

以下每个预定义的 IAM 角色均可提供上述权限:

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

此架构视图仅可供已定义 Google Cloud 组织的用户使用。

如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制

架构

INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION 视图具有如下架构:

列名 数据类型
PROJECT_ID STRING 该数据集所属项目的项目 ID
TABLE_CATALOG STRING 该数据集所属项目的项目 ID
PROJECT_NUMBER INT64 该数据集所属项目的项目编号
TABLE_SCHEMA STRING 包含表或具体化视图的数据集的名称,也称为 datasetId
TABLE_NAME STRING 表或具体化视图的名称,也称为 tableId
CREATION_TIME TIMESTAMP 表的创建时间
DELETED BOOLEAN 指示表是否已删除
STORAGE_LAST_MODIFIED_TIME TIMESTAMP 数据写入表的最近时间。
TOTAL_ROWS INT64 表或具体化视图中的总行数
TOTAL_PARTITIONS INT64 表或具体化视图中存在的分区数量。未分区表会返回 0。
TOTAL_LOGICAL_BYTES INT64 表或具体化视图中的逻辑(非压缩)字节总数
ACTIVE_LOGICAL_BYTES INT64 存在时间不超过 90 天的逻辑(非压缩)字节数
LONG_TERM_LOGICAL_BYTES INT64 存在时间超过 90 天的逻辑(非压缩)字节数
TOTAL_PHYSICAL_BYTES INT64 用于存储的物理(压缩)字节总数,包括活跃、长期和时间旅行(已删除或已更改的数据)字节数
ACTIVE_PHYSICAL_BYTES INT64 存在时间短于 90 天的物理(压缩)字节数,包括时间旅行(删除或更改的数据)字节
LONG_TERM_PHYSICAL_BYTES INT64 存在时间超过 90 天的物理(非压缩)字节数
TIME_TRAVEL_PHYSICAL_BYTES INT64 时间旅行存储(删除或更改的数据)使用的物理(非压缩)字节数
FAIL_SAFE_PHYSICAL_BYTES INT64 故障安全存储(删除或更改的数据)使用的物理(非压缩)字节数
TABLE_TYPE STRING 表的类型。 例如,“EXTERNAL”或“BASE TABLE”

范围和语法

针对此视图的查询必须包含区域限定符。下表说明了此视图的区域范围:

视图名称 资源范围 区域范围
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION 包含指定项目的组织 REGION
请替换以下内容:

  • 可选:PROJECT_ID:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。
  • REGION:任何数据集区域名称。例如 region-us

以下示例演示了如何返回组织内指定项目中的表的存储信息:

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

以下示例展示了如何按项目返回组织中表的存储空间信息:

SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION;

示例

以下示例展示了组织中哪些项目目前使用的存储空间最多。

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

结果类似于以下内容:

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