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 选项表中的一个名称值
OPTION_TYPE STRING 选项表中的一个数据类型值
OPTION_VALUE STRING 选项表中的一个值选项

选项表
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_partition_expiration_days FLOAT64 数据集中所有分区表的默认生命周期(以天为单位)
default_table_expiration_days FLOAT64 数据集中所有表的默认生命周期(以天为单位)
max_time_travel_hours INTEGER 时间旅行窗口,表示为 24 的倍数(48、72、96、120、144、168),介于 48(2 天)到 168(7 天)之间
description STRING 数据集的说明
friendly_name STRING 数据集的说明
labels ARRAY<STRUCT<STRING, STRING>> 一组 STRUCT,表示数据集上的标签
storage_billing_model 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")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+