使用 INFORMATION_SCHEMA 获取表元数据

INFORMATION_SCHEMA 包含表元数据的这些视图:

  • TABLESTABLE_OPTIONS 表的元数据
  • 用于列和字段元数据的 COLUMNSCOLUMN_FIELD_PATHS
  • 关于表分区的元数据的 PARTITIONS预览版

TABLESTABLE_OPTIONS 还包含有关视图的概要信息。 如需了解详情,请改为查询 VIEWS

所需权限

对于 TABLESTABLE_OPTIONS,您必须获得以下权限:

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

对于 COLUMNSCOLUMN_FIELD_PATHS,您必须获得以下权限:

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

对于 PARTITIONS,您必须获得以下权限:

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

语法

对任何这些视图的查询都必须具有 数据集或地区限定符

-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

-- Returns metadata for tables in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.TABLES;

TABLES 视图

查询 INFORMATION_SCHEMA.TABLES 视图时,查询结果为数据集中的每个表或视图返回一行。

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

列名 数据类型
TABLE_CATALOG STRING 该数据集所属项目的项目 ID
TABLE_SCHEMA STRING 包含表或视图的数据集的名称,也称为 datasetId
TABLE_NAME STRING 表或视图的名称,也称为 tableId
TABLE_TYPE STRING 表类型:
IS_INSERTABLE_INTO STRING YESNO,具体取决于表是否支持 DML INSERT 语句
IS_TYPED STRING 值始终为 NO
CREATION_TIME TIMESTAMP 表的创建时间
DDL预览版 STRING 可用于重新创建表的 DDL 语句,例如 CREATE TABLECREATE VIEWDDL 列从 SELECT * 查询中隐藏。除非您明确选择它,否则不会返回。此列会针对 EXTERNAL TABLE 返回 NULL

示例

示例 1:

以下示例会检索名为 mydataset 的数据集中所有表的表元数据。该查询会选择 INFORMATION_SCHEMA.TABLES 视图中除下面两列以外的所有列:is_typed (该列留待将来使用)和 ddl(从 SELECT * 查询中隐藏)。系统会返回默认项目中 mydataset 的所有表的元数据。

mydataset 包含以下表:

  • mytable1:标准 BigQuery 表
  • myview1:BigQuery 视图

如需对非默认项目运行查询,请按 `project_id`.dataset.INFORMATION_SCHEMA.view 格式将相应的项目 ID 添加到数据集,例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLES

要运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     * EXCEPT(is_typed)
    FROM
     mydataset.INFORMATION_SCHEMA.TABLES
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(is_typed)
 FROM
   mydataset.INFORMATION_SCHEMA.TABLES'

结果应如下所示:

  +----------------+---------------+----------------+------------+--------------------+---------------------+
  | table_catalog  | table_schema  |   table_name   | table_type | is_insertable_into |    creation_time    |
  +----------------+---------------+----------------+------------+--------------------+---------------------+
  | myproject      | mydataset     | mytable1       | BASE TABLE | YES                | 2018-10-29 20:34:44 |
  | myproject      | mydataset     | myview1        | VIEW       | NO                 | 2018-12-29 00:19:20 |
  +----------------+---------------+----------------+------------+--------------------+---------------------+
  

示例 2:

以下示例从 INFORMATION_SCHEMA.TABLES 视图中检索类型为 BASE TABLE 的所有表。不包括 is_typed 列,并隐藏 ddl 列。系统会返回默认项目中 mydataset 的所有表的元数据。

如需对非默认项目运行查询,请按 `project_id`.dataset.INFORMATION_SCHEMA.view 格式将相应的项目 ID 添加到数据集,例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLES

要运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     * EXCEPT(is_typed)
    FROM
     mydataset.INFORMATION_SCHEMA.TABLES
    WHERE
     table_type="BASE TABLE"
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(is_typed)
 FROM
   mydataset.INFORMATION_SCHEMA.TABLES
 WHERE
   table_type="BASE TABLE"'

结果应如下所示:

  +----------------+---------------+----------------+------------+--------------------+---------------------+
  | table_catalog  | table_schema  |   table_name   | table_type | is_insertable_into |    creation_time    |
  +----------------+---------------+----------------+------------+--------------------+---------------------+
  | myproject      | mydataset     | mytable1       | BASE TABLE | NO                 | 2018-10-31 22:40:05 |
  +----------------+---------------+----------------+------------+--------------------+---------------------+
  

示例 3:

以下示例从 census_bureau_usa 数据集中 population_by_zip_2010 表的 INFORMATION_SCHEMA.TABLES 视图中检索 table_nameddl 列。此数据集是 BigQuery 公共数据集计划的一部分。

由于您查询的表属于其他项目,因此您应按以下格式将相应项目 ID 添加到数据集:`project_id`.dataset.INFORMATION_SCHEMA.view。在此示例中,该值为 `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES

如需运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     table_name, ddl
    FROM
     `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
    WHERE
     table_name="population_by_zip_2010"
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   table_name, ddl
 FROM
   `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
 WHERE
   table_name="population_by_zip_2010"'

结果应如下所示:

+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|       table_name       |                                                                                                            ddl                                                                                                             |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010`                                                                                                                                               |
|                        | (                                                                                                                                                                                                                          |
|                        |   geo_id STRING OPTIONS(description="Geo code"),                                                                                                                                                                           |
|                        |   zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"),                                                                                                                          |
|                        |   population INT64 OPTIONS(description="The total count of the population for this segment."),                                                                                                                             |
|                        |   minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."),                                                          |
|                        |   maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), |
|                        |   gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.")                                                                                                                    |
|                        | )                                                                                                                                                                                                                          |
|                        | OPTIONS(                                                                                                                                                                                                                   |
|                        |   labels=[("freebqcovid", "")]                                                                                                                                                                                             |
|                        | );                                                                                                                                                                                                                         |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  

TABLE_OPTIONS 视图

查询 INFORMATION_SCHEMA.TABLE_OPTIONS 视图时,查询结果为数据集中的每个表或视图返回一行。

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

列名 数据类型
TABLE_CATALOG STRING 该数据集所属项目的项目 ID
TABLE_SCHEMA STRING 包含表或视图的数据集的名称,也称为 datasetId
TABLE_NAME STRING 表或视图的名称,也称为 tableId
OPTION_NAME STRING 选项表中的一个名称值
OPTION_TYPE STRING 选项表中的一个数据类型值
OPTION_VALUE STRING 选项表中的一个值选项
选项表
OPTION_NAME OPTION_TYPE OPTION_VALUE
partition_expiration_days FLOAT64 分区表中所有分区的默认生命周期(以天为单位)
expiration_timestamp FLOAT64 此表的到期时间
kms_key_name STRING 用于加密表的 Cloud KMS 密钥的名称
friendly_name STRING 表的描述性名称
description STRING 表的说明
labels ARRAY<STRUCT<STRING, STRING>> 一组 STRUCT,表示表的标签
require_partition_filter BOOL 对于表执行的查询是否需要分区过滤条件
enable_refresh BOOL 此标志表示是否为具体化视图启用自动刷新
refresh_interval_minutes FLOAT64 具体化视图的刷新频率

示例

示例 1:

以下示例通过查询 INFORMATION_SCHEMA.TABLE_OPTIONS 视图来检索默认项目 (myproject) 中的 mydataset 中的所有表的默认表到期时间。

如需对非默认项目运行查询,请按 `project_id`.dataset.INFORMATION_SCHEMA.view 格式将相应的项目 ID 添加到数据集,例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS

要运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     *
    FROM
     mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
    WHERE
     option_name="expiration_timestamp"
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
 WHERE
   option_name="expiration_timestamp"'

结果应如下所示:

  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | table_catalog  | table_schema  | table_name |     option_name      | option_type |             option_value             |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | myproject      | mydataset     | mytable1   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2020-01-16T21:12:28.000Z" |
  | myproject      | mydataset     | mytable2   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2021-01-01T21:12:28.000Z" |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  

示例 2:

以下示例检索 mydataset 中包含测试数据的所有表的元数据。该查询使用 description 选项中的值查找在说明的任何位置包含“test”的表。mydataset 位于默认项目 myproject 中。

如需对非默认项目运行查询,请按 `project_id`.dataset.INFORMATION_SCHEMA.view 格式将相应的项目 ID 添加到数据集,例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS

要运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     *
    FROM
     mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
    WHERE
     option_name="description" AND option_value LIKE "%test%"
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
 WHERE
   option_name="description" AND option_value LIKE "%test%"'

结果应如下所示:

  +----------------+---------------+------------+-------------+-------------+--------------+
  | table_catalog  | table_schema  | table_name | option_name | option_type | option_value |
  +----------------+---------------+------------+-------------+-------------+--------------+
  | myproject      | mydataset     | mytable1   | description | STRING      | "test data"  |
  | myproject      | mydataset     | mytable2   | description | STRING      | "test data"  |
  +----------------+---------------+------------+-------------+-------------+--------------+
  

COLUMNS 视图

查询 INFORMATION_SCHEMA.COLUMNS 视图时,查询为表中的每一列(字段)返回一行结果。

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

列名 数据类型
TABLE_CATALOG STRING 该数据集所属项目的项目 ID
TABLE_SCHEMA STRING 包含表的数据集的名称,也称为 datasetId
TABLE_NAME STRING 表或视图的名称,也称为 tableId
COLUMN_NAME STRING 列的名称
ORDINAL_POSITION INT64 表中列的偏移量,从 1 开始计数;如果列为伪列(例如 _PARTITIONTIME 或 _PARTITIONDATE),则值为 NULL
IS_NULLABLE STRING YESNO,具体取决于列的模式是否允许使用 NULL
DATA_TYPE STRING 列的标准 SQL 数据类型
IS_GENERATED STRING 值始终为 NEVER
GENERATION_EXPRESSION STRING 值始终为 NULL
IS_STORED STRING 值始终为 NULL
IS_HIDDEN STRING YESNO,具体取决于列是否为伪列,例如 _PARTITIONTIME 或 _PARTITIONDATE
IS_UPDATABLE STRING 值始终为 NULL
IS_SYSTEM_DEFINED STRING YESNO,具体取决于列是否为伪列,例如 _PARTITIONTIME 或 _PARTITIONDATE
IS_PARTITIONING_COLUMN STRING YESNO,具体取决于列是否为分区列
CLUSTERING_ORDINAL_POSITION INT64 表的聚簇列中列的偏移量,从 1 开始计数;如果表不是聚簇表,则值为 NULL

示例

以下示例从 census_bureau_usa 数据集内 population_by_zip_2010 表的 INFORMATION_SCHEMA.COLUMNS 视图中检索元数据。此数据集是 BigQuery 公共数据集计划的一部分。

由于您查询的表属于 bigquery-public-data 项目,因此您应按 `project_id`.dataset.INFORMATION_SCHEMA.view 格式将相应项目 ID 添加到数据集;例如 `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES

以下列会从查询结果中排除,因为它们目前预留供将来使用:

  • IS_GENERATED
  • GENERATION_EXPRESSION
  • IS_STORED
  • IS_UPDATABLE

要运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     * EXCEPT(is_generated, generation_expression, is_stored, is_updatable)
    FROM
     `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
    WHERE
     table_name="population_by_zip_2010"
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(is_generated, generation_expression, is_stored, is_updatable)
 FROM
   `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
 WHERE
   table_name="population_by_zip_2010"'

结果应如下所示。为确保可读性,table_catalogtable_schema 会从结果中排除:

+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
|       table_name       | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
| population_by_zip_2010 | zipcode     |                1 | NO          | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | geo_id      |                2 | YES         | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | minimum_age |                3 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | maximum_age |                4 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | gender      |                5 | YES         | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | population  |                6 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
  

COLUMN_FIELD_PATHS 视图

对于嵌套RECORD(或STRUCT)列中的每一列,查询结果都包含对应的一行。

当您查询 INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 视图时,查询为嵌套RECORD(或 STRUCT)列中的每一列返回一行结果。

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

列名 数据类型
TABLE_CATALOG STRING 该数据集所属项目的项目 ID
TABLE_SCHEMA STRING 包含表的数据集的名称,也称为 datasetId
TABLE_NAME STRING 表或视图的名称,也称为 tableId
COLUMN_NAME STRING 列的名称
FIELD_PATH STRING 嵌套在 `RECORD` 或 `STRUCT` 列中的列的路径
DATA_TYPE STRING 列的标准 SQL 数据类型
DESCRIPTION STRING 列的说明

示例

以下示例从 github_repos 数据集commits 表的 INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 视图中检索元数据。此数据集是 BigQuery 公共数据集计划的一部分。

由于您查询的表属于 bigquery-public-data 项目,因此您应按 `project_id`.dataset.INFORMATION_SCHEMA.view 格式将相应项目 ID 添加到数据集;例如 `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS

commits 表包含以下嵌套列以及嵌套和重复列:

  • author:嵌套的 RECORD
  • committer:嵌套的 RECORD
  • trailer:嵌套且重复的 RECORD
  • difference:嵌套且重复的 RECORD

查询将检索有关 authordifference 列的元数据。

如需运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT
     *
    FROM
     `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
    WHERE
     table_name="commits"
     AND column_name="author"
     OR column_name="difference"
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
 WHERE
   table_name="commits"
   AND column_name="author"
   OR column_name="difference"'

结果应如下所示。为确保可读性,table_catalogtable_schema 会从结果中排除。

  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | table_name | column_name |     field_path      |                                                                      data_type                                                                      | description |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | commits    | author      | author              | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP>                                                                  | NULL        |
  | commits    | author      | author.name         | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.email        | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.time_sec     | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.tz_offset    | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.date         | TIMESTAMP                                                                                                                                           | NULL        |
  | commits    | difference  | difference          | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL        |
  | commits    | difference  | difference.old_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.new_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.old_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_repo | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_repo | STRING                                                                                                                                              | NULL        |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  

PARTITIONS 视图

当您查询 INFORMATION_SCHEMA.PARTITIONS 视图时,每个分区都会有一行对应的查询结果。

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

列名 数据类型
TABLE_CATALOG STRING 包含表的项目的项目 ID
TABLE_SCHEMA STRING 包含表的数据集的名称,也称为 datasetId
TABLE_NAME STRING 表的名称,也称为 tableId
PARTITION_ID STRING 单个分区的 ID。对于未分区的表,该值为 NULL
TOTAL_ROWS INTEGER 分区中的总行数
TOTAL_LOGICAL_BYTES INTEGER 分区中的逻辑字节总数
TOTAL_BILLABLE_BYTES INTEGER 分区中的可计费字节总数
LAST_MODIFIED_TIME TIMESTAMP 最近将数据写入分区的时间
STORAGE_TIER STRING 分区的存储层级:

示例

以下示例计算 bigquery-public-data.crypto_bitcoin 数据集中所有表使用的每个存储层级的字节数。

如需运行查询,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 查询编辑器框中输入以下标准 SQL 查询。 INFORMATION_SCHEMA 要求使用标准 SQL 语法。标准 SQL 是 Cloud Console 中的默认语法。

    SELECT storage_tier, SUM(total_billable_bytes) billable_bytes
    FROM `bigquery-public-data.crypto_bitcoin.INFORMATION_SCHEMA.PARTITIONS`
    GROUP BY storage_tier
    
  3. 点击运行

bq

使用 query 命令并通过 --nouse_legacy_sql--use_legacy_sql=false 标志指定标准 SQL 语法。INFORMATION_SCHEMA 查询要求使用标准 SQL 语法。

如需运行查询,请输入以下命令:

bq query --nouse_legacy_sql \
'SELECT storage_tier, SUM(total_billable_bytes) billable_bytes
 FROM `bigquery-public-data.crypto_bitcoin.INFORMATION_SCHEMA.PARTITIONS`
 GROUP BY storage_tier'

结果应类似于下表。由于数据集会随时间的推移而更新,确切的字节计数可能会发生变化。

  +--------------+----------------+
  | storage_tier | billable_bytes |
  +--------------+----------------+
  | LONG_TERM    |  1311495144879 |
  | ACTIVE       |    66757629240 |
  +--------------+----------------+