TABLE_STORAGE_USAGE_TIMELINE 视图
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
视图提供以下类型的表在过去 90 天内的每日总存储用量:
- 标准表
- 具体化视图
- 包含基表中字节增量的表克隆
- 包含基表中字节增量的表快照
没有计费字节数的表不包含在 INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
视图中。这包括以下类型的表:
- 外部表
- 匿名表
- 空表
- 不包含基表中字节增量的表克隆
- 不包含基表中字节增量的表快照
查询 INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
视图时,查询结果包含每天当前项目的每个表或具体化视图对应的一行。
此表中的数据不会实时保留,表格数据大约需要 72 小时才能反映在此视图中。
存储用量以 MiB 秒为单位返回。例如,如果项目在 86,400 秒(24 小时)使用 1,000,000 个物理字节,则物理总用量为 86,400,000,000 字节秒,转换为 82,397 MiB 秒,如以下示例所示:
86,400,000,000 / 1,024 / 1,024 = 82,397
这是 BILLABLE_TOTAL_PHYSICAL_USAGE
列将返回的值。
如需了解详情,请参阅存储价格详细信息。
所需权限
如需查询 INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
视图,您需要拥有以下 Identity and Access Management (IAM) 权限:
bigquery.tables.get
bigquery.tables.list
以下每个预定义的 IAM 角色均可提供上述权限:
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
roles/bigquery.admin
对于包含区域限定符的查询,您必须拥有项目的权限。
如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制。
架构
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
视图具有如下架构:
USAGE_DATE |
DATE |
所显示字节的结算日期(使用 America/Los_Angeles 时区) |
PROJECT_ID |
STRING |
该数据集所属项目的项目 ID |
TABLE_CATALOG |
STRING |
该数据集所属项目的项目 ID |
PROJECT_NUMBER |
INT64 |
该数据集所属项目的项目编号 |
TABLE_SCHEMA |
STRING |
包含表或物化视图的数据集的名称,也称为 datasetId |
TABLE_NAME |
STRING |
表或物化视图的名称,也称为 tableId |
BILLABLE_TOTAL_LOGICAL_USAGE |
INT64 |
总逻辑用量(以 MiB 秒为单位)。 如果数据集使用物理存储结算模式,则返回 0。 |
BILLABLE_ACTIVE_LOGICAL_USAGE |
INT64 |
存在时间少于 90 天的逻辑用量(以 MiB 秒为单位)。 如果数据集使用物理存储结算模式,则返回 0。 |
BILLABLE_LONG_TERM_LOGICAL_USAGE |
INT64 |
存在时间超过 90 天的逻辑用量(以 MiB 秒为单位)。 如果数据集使用物理存储结算模式,则返回 0。 |
BILLABLE_TOTAL_PHYSICAL_USAGE |
INT64 |
总用量(以 MiB 秒为单位)。这包括用于故障安全和时间旅行存储的物理字节数。 如果数据集使用逻辑存储结算模式,则返回 0。 |
BILLABLE_ACTIVE_PHYSICAL_USAGE |
INT64 |
存在时间少于 90 天的物理用量(以 MiB 秒为单位)。这包括用于故障安全和时间旅行存储的物理字节数。 如果数据集使用逻辑存储结算模式,则返回 0。 |
BILLABLE_LONG_TERM_PHYSICAL_USAGE |
INT64 |
存在时间超过 90 天的物理用量(以 MiB 秒为单位)。 如果数据集使用逻辑存储结算模式,则返回 0。 |
范围和语法
针对此视图的查询必须包含区域限定符。下表说明了此视图的区域范围:
视图名称 | 资源范围 | 区域范围 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE[_BY_PROJECT] |
项目级 | REGION |
可选:PROJECT_ID
:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。
REGION
:任何数据集区域名称。例如 `region-us`
。
以下示例演示了如何返回指定项目中的表的存储信息:
SELECT * FROM myProject.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
以下示例演示了如何返回指定区域中的表的存储信息:
SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
示例
示例 1
以下示例汇总了指定区域中的项目每天的存储用量。
SELECT usage_date, project_id, SUM(billable_total_logical_usage) AS billable_total_logical_usage, SUM(billable_active_logical_usage) AS billable_active_logical_usage, SUM(billable_long_term_logical_usage) AS billable_long_term_logical_usage, SUM(billable_total_physical_usage) AS billable_total_physical_usage, SUM(billable_active_physical_usage) AS billable_active_physical_usage, SUM(billable_long_term_physical_usage) AS billable_long_term_physical_usage FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE GROUP BY 1, 2 ORDER BY usage_date;
结果类似于以下内容:
+-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | usage_date | project_id | billable_total_logical_usage | billable_active_logical_usage | billable_long_term_logical_usage | billable_total_physical_usage | billable_active_physical_usage | billable_long_term_physical_usage | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-03 | project_A | 305085738096 | 7667321458 | 297418416638 | 74823954823 | 124235724 | 74699719099 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-04 | project_A | 287033241105 | 7592334614 | 279440906491 | 75071991788 | 200134561 | 74871857227 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-03 | project_B | 478173930912 | 8137372626 | 470036558286 | 0 | 0 | 0 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-04 | project_B | 496648915405 | 7710451723 | 488938463682 | 0 | 0 | 0 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+
示例 2
以下示例展示了使用逻辑存储的数据集中的表在指定日期的存储用量。
SELECT usage_date, table_schema, table_name, billable_total_logical_usage FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE WHERE project_id = 'PROJECT_ID' AND table_schema = 'DATASET_NAME' AND usage_date = 'USAGE_DATE' ORDER BY billable_total_logical_usage DESC;
结果类似于以下内容:
+--------------+--------------+------------+------------------------------+ | usage_date | table_schema | table_name | billable_total_logical_usage | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_4 | 734893409201 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_1 | 690070445455 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_3 | 52513713981 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_2 | 8894535355 | +--------------+--------------+------------+------------------------------+
示例 3
以下示例展示了使用物理存储的数据集中的表在最近使用日期的存储用量。
SELECT usage_date, table_schema, table_name, billable_total_physical_usage FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY project_id, table_schema, table_name ORDER BY usage_date DESC) AS rank FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE ) WHERE rank = 1 AND project_id = 'PROJECT_ID' AND table_schema ='DATASET_NAME' ORDER BY usage_date;
结果类似于以下内容:
+--------------+--------------+------------+-------------------------------+ | usage_date | table_schema | table_name | billable_total_physical_usage | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_4 | 345788341123 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_1 | 0 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_3 | 9123481400212 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_2 | 1451334553 | +--------------+--------------+------------+-------------------------------+
示例 4
以下示例会联接 TABLE_OPTIONS
和 TABLE_STORAGE_USAGE_TIMELINE
视图,以便根据标记获取存储用量详细信息。
SELECT * FROM region-REGION.INFORMATION_SCHEMA.TABLE_OPTIONS INNER JOIN region-REGION.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE USING (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME) WHERE option_name='tags' AND CONTAINS_SUBSTR(option_value, '(\"tag_namespaced_key\", \"tag_namespaced_value\")')