TABLE_OPTIONS 视图
INFORMATION_SCHEMA.TABLE_OPTIONS
视图中的每一行对应数据集中每个表或视图的每个选项。TABLES
和 TABLE_OPTIONS
视图还包含关于视图的概要信息。如需查看详细信息,请查询 INFORMATION_SCHEMA.VIEWS
视图。
所需权限
如需查询 INFORMATION_SCHEMA.TABLE_OPTIONS
视图,您需要拥有以下 Identity and Access Management (IAM) 权限:
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
以下每个预定义的 IAM 角色均可提供上述权限:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制。
架构
当您查询 INFORMATION_SCHEMA.TABLE_OPTIONS
视图时,对于数据集中的每个表或视图,查询结果都会为每个选项返回一行结果。如需详细了解视图,请改为查询 INFORMATION_SCHEMA.VIEWS
视图。
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 |
TIMESTAMP |
此表的到期时间 |
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 |
具体化视图的刷新频率 |
对于外部表,可以使用以下选项:
选项 | |
---|---|
allow_jagged_rows |
如果为 适用于 CSV 数据。 |
allow_quoted_newlines |
如果为 适用于 CSV 数据。 |
bigtable_options |
仅在创建 Bigtable 外部表时才需要。 指定 Bigtable 外部表的架构(采用 JSON 格式)。 如需查看 Bigtable 表定义选项列表,请参阅 REST API 参考文档中的 |
compression |
数据源的压缩类型。支持的值包括: 适用于 CSV 和 JSON 数据。 |
decimal_target_types |
确定如何转换 示例: |
description |
此表的说明。 |
enable_list_inference |
如果为 适用于 Parquet 数据。 |
enable_logical_types |
如果为 适用于 Avro 数据。 |
encoding |
数据的字符编码。支持的值包括: 适用于 CSV 数据。 |
enum_as_string |
如果为 适用于 Parquet 数据。 |
expiration_timestamp |
此表的到期时间。如果未指定,则该表不会过期。 示例: |
field_delimiter |
CSV 文件中的字段的分隔符。 适用于 CSV 数据。 |
format |
外部数据的格式。
支持的
支持的 值 |
hive_partition_uri_prefix |
分区键编码开始之前所有源 URI 的通用前缀。仅适用于 Hive 分区的外部表。 适用于 Avro、CSV、JSON、Parquet、ORC 数据。 示例: |
file_set_spec_type |
指定如何解读加载作业和外部表的源 URI。目前为预览版。 支持的值包括:
例如,如果您的源 URI 为 |
ignore_unknown_values |
如果为 适用于 CSV 和 JSON 数据。 |
json_extension |
对于 JSON 数据,指示特定的 JSON 交换格式。如果未指定,BigQuery 会以通用 JSON 记录的形式读取数据。 支持的值包括: |
max_bad_records |
读取数据时要忽略的错误记录数上限。 适用于 CSV、JSON 和 Google 表格数据。 |
max_staleness |
指定对表执行的操作是否使用缓存的元数据,以及操作使用的缓存元数据的新鲜度。 如需停用元数据缓存,请指定 0。这是默认设置。 如需启用元数据缓存,请指定 30 分钟到 7 天之间的间隔时间字面量值。例如,指定 |
metadata_cache_mode |
指定表的元数据缓存是自动刷新还是手动刷新。 如果设置为 如果要根据您确定的时间表刷新元数据缓存,请设置为 如果 |
null_marker |
表示 CSV 文件中 适用于 CSV 数据。 |
object_metadata |
仅在创建对象表时是必需的。 在创建对象表时,请将此选项的值设置为 |
preserve_ascii_control_characters |
如果为 适用于 CSV 数据。 |
projection_fields |
要加载的实体属性的列表。 适用于 Datastore 数据。 |
quote |
用于括起 CSV 文件中数据部分的字符串。如果您的数据包含括起的换行符,另请将 适用于 CSV 数据。 |
reference_file_schema_uri |
用户提供的包含表架构的参考文件。 适用于 Parquet/ORC/AVRO 数据。 示例: |
require_hive_partition_filter |
如果为 适用于 Avro、CSV、JSON、Parquet、ORC 数据。 |
sheet_range |
要查询的 Google 表格的电子表格范围。 适用于 Google 表格数据。 示例: |
skip_leading_rows |
读取数据时要跳过的文件顶部行数。 适用于 CSV 和 Google 表格数据。 |
uris |
对于非 Bigtable 表的外部表(包括对象表):
外部数据位置的完全限定 URI 数组。
每个 URI 都可以包含一个星号 ( 以下示例展示了有效的
对于 Bigtable 表:
标识用作数据源的 Bigtable 表的 URI;只能指定一个 Bigtable URI。 示例: 如需详细了解如何构建 Bigtable URI,请参阅检索 Bigtable URI。 |
范围和语法
针对此视图的查询必须包含数据集或区域限定符。对于包含数据集限定符的查询,您必须拥有数据集的权限。对于包含区域限定符的查询,您必须拥有项目的权限。如需了解详情,请参阅语法。下表说明了此视图的区域和资源范围:
视图名称 | 资源范围 | 区域范围 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_OPTIONS |
项目级 | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS |
数据集级 | 数据集位置 |
- 可选:
PROJECT_ID
:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。 REGION
:任何数据集区域名称。例如region-us
。DATASET_ID
:您的数据集的 ID。如需了解详情,请参阅数据集限定符。
示例
示例 1:
以下示例通过查询 INFORMATION_SCHEMA.TABLE_OPTIONS
视图来检索默认项目 (myproject
) 中的 mydataset
中的所有表的默认表到期时间。
如需对非默认项目运行查询,请按 `project_id`.dataset.INFORMATION_SCHEMA.view
格式将相应的项目 ID 添加到数据集,例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
。
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
。
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" | +----------------+---------------+------------+-------------+-------------+--------------+