SCHEMATA_OPTIONS 视图

对于在项目内每个数据集中设置的每个选项,INFORMATION_SCHEMA.SCHEMATA_OPTIONS 视图都包含与之对应的一行。

准备工作

如需查询数据集元数据的 SCHEMATA_OPTIONS 视图,您需要拥有项目级层的 bigquery.datasets.get Identity and Access Management (IAM) 权限。

以下每个预定义的 IAM 角色均可提供获取 SCHEMATA_OPTIONS 视图所需的权限:

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

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

架构

当您查询 INFORMATION_SCHEMA.SCHEMATA_OPTIONS 视图时,在项目内每个数据集中设置的每个选项都会有一行对应的查询结果。

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

列名 数据类型
CATALOG_NAME STRING 包含数据集的项目的名称
SCHEMA_NAME STRING 数据集的名称,也称为 datasetId
OPTION_NAME STRING 选项的名称。如需查看受支持的选项列表,请参阅架构选项列表

storage_billing_model 选项仅针对 2022 年 12 月 1 日之后更新的数据集显示。对于上次更新日期在该日期之前的数据集,存储结算模式为 LOGICAL

OPTION_TYPE STRING 选项的数据类型
OPTION_VALUE STRING 选项的值

范围和语法

针对此视图的查询必须包含区域限定符。如果您未指定区域限定符,则系统会从美国区域检索元数据。 下表说明了此视图的区域范围:

视图名称 资源范围 区域范围
[PROJECT_ID.]INFORMATION_SCHEMA.SCHEMATA_OPTIONS 项目级 美国区域
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS 项目级 REGION
替换以下内容:

  • 可选:PROJECT_ID:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。

  • REGION:任何数据集区域名称。例如 `region-us`

  • 示例

    -- Returns metadata for datasets in a region.
    SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA_OPTIONS;
    

    示例

    检索项目中所有数据集的默认表到期时间

    如需对非默认项目运行查询,请按以下格式将相应的项目 ID 添加到数据集:

    `PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    例如,`myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS

    SELECT
      *
    FROM
      INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
      option_name = 'default_table_expiration_days';

    结果类似于以下内容:

      +----------------+---------------+-------------------------------+-------------+---------------------+
      |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
      +----------------+---------------+-------------------------------+-------------+---------------------+
      | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
      | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
      | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
      +----------------+---------------+-------------------------------+-------------+---------------------+
      

    检索项目中所有数据集的标签

    如需对非默认项目运行查询,请按以下格式将项目 ID 添加到数据集:

    `PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    ; 例如,`myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS

    SELECT
      *
    FROM
      INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
      option_name = 'labels';

    结果类似于以下内容:

      +----------------+---------------+-------------+---------------------------------+------------------------+
      |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
      +----------------+---------------+-------------+---------------------------------+------------------------+
      | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
      | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
      +----------------+---------------+-------------+---------------------------------+------------------------+