INFORMATION_SCHEMA 简介
BigQuery INFORMATION_SCHEMA
视图是系统定义的只读视图,提供有关 BigQuery 对象的元数据信息。下表列出了您可以查询以检索元数据信息的所有 INFORMATION_SCHEMA
视图:
† 对于 *BY_PROJECT
视图,BY_PROJECT
后缀是可选的。例如,查询 INFORMATION_SCHEMA.JOBS_BY_PROJECT
和 INFORMATION_SCHEMA.JOBS
会返回相同的结果。
价格
对于使用按需价格的项目,针对 INFORMATION_SCHEMA
视图的查询会产生至少 10 MB 数据的处理费用,即使查询处理的字节小于 10 MB 也是如此。10 MB 是按需查询的最低结算数据量。如需了解详情,请参阅按需价格。
如果项目使用基于容量的价格,查询 INFORMATION_SCHEMA
视图和表时会消耗您购买的 BigQuery 槽。如需了解详情,请参阅基于容量的价格。
由于系统不缓存 INFORMATION_SCHEMA
查询,因此每次运行 INFORMATION_SCHEMA
查询时您都需要付费,即使每次都运行相同的查询文本也是如此。
您不需要为 INFORMATION_SCHEMA
视图支付存储费用。
语法
INFORMATION_SCHEMA
视图需要使用数据集或区域进行限定。
数据集限定符
如果存在,则数据集限定符会将结果限制为指定的数据集。 例如:
-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;
以下 INFORMATION_SCHEMA
视图支持数据集限定符:
COLUMNS
COLUMN_FIELD_PATHS
MATERIALIZED_VIEWS
PARAMETERS
PARTITIONS
ROUTINES
ROUTINE_OPTIONS
TABLES
TABLE_OPTIONS
VIEWS
地区限定符
地区限定符使用 region-REGION
语法表示。任何数据集位置名称都可用于 REGION
。例如,以下区域限定符有效:
region-us
region-asia-east2
region-europe-north1
如果存在,则位置限定符会将结果限制在指定区域中。例如,以下查询会返回一个项目在 US
多区域位置中的所有数据集的元数据:
-- Returns metadata for all datasets in a region. SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA;
以下 INFORMATION_SCHEMA
视图不支持区域限定符:
INFORMATION_SCHEMA.PARTITIONS
INFORMATION_SCHEMA.SEARCH_INDEXES
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
如果未指定区域限定符和数据集限定符,则会收到错误。
针对带有区域限定符的 INFORMATION_SCHEMA
视图的查询会在您指定的区域内运行,这意味着您无法编写单个查询来联接来自不同区域的视图中的数据。如需合并来自多个区域的 INFORMATION_SCHEMA
视图,请将查询结果写入表,然后复制表或将数据集移至一个共同区域。
项目限定符
如果存在项目限定符,则会将结果限制为指定的项目。例如:
-- Returns metadata for the specified project and region.
SELECT * FROM myProject.`region-us`.INFORMATION_SCHEMA.TABLES;
-- Returns metadata for the specified project and dataset.
SELECT * FROM myProject.myDataset.INFORMATION_SCHEMA.TABLES;
所有 INFORMATION_SCHEMA
视图都支持项目限定符。如果未指定项目限定符,则视图将默认为将在其中执行查询的项目。
为组织级层视图指定项目限定符(例如 STREAMING_TIMELINE_BY_ORGANIZATION
)不会影响结果。
限制
- BigQuery
INFORMATION_SCHEMA
查询必须采用 GoogleSQL 语法。INFORMATION_SCHEMA
不支持旧版 SQL。 - 系统不缓存
INFORMATION_SCHEMA
查询结果。 INFORMATION_SCHEMA
视图不能用于 DDL 语句。INFORMATION_SCHEMA
视图不包含有关已隐藏数据集的信息。- 具有区域限定符的
INFORMATION_SCHEMA
查询包含的元数据可能来自该区域中处于时间旅行窗口内的已删除数据集中的资源。 - 当您从
INFORMATION_SCHEMA
视图中列出资源时,仅在父级(而不是单个行级别)检查权限。因此,任何使用标记有条件地指向单行的拒绝政策(预览版)都将被忽略。