INFORMATION_SCHEMA 简介

BigQuery INFORMATION_SCHEMA 视图是系统定义的只读视图,提供有关 BigQuery 对象的元数据信息。下表列出了您可以查询以检索元数据信息的所有 INFORMATION_SCHEMA 视图:

资源类型 INFORMATION_SCHEMA 视图
访问权限控制 OBJECT_PRIVILEGES
BI Engine BI_CAPACITIES
BI_CAPACITY_CHANGES
配置 EFFECTIVE_PROJECT_OPTIONS
ORGANIZATION_OPTIONS
ORGANIZATION_OPTIONS_CHANGES
PROJECT_OPTIONS
PROJECT_OPTIONS_CHANGES
数据集 SCHEMATA
SCHEMATA_LINKS
SCHEMATA_OPTIONS
SHARED_DATASET_USAGE
SCHEMATA_REPLICAS
作业 JOBS_BY_PROJECT
JOBS_BY_USER
JOBS_BY_FOLDER
JOBS_BY_ORGANIZATION
作业(按时间片) JOBS_TIMELINE_BY_PROJECT
JOBS_TIMELINE_BY_USER
JOBS_TIMELINE_BY_FOLDER
JOBS_TIMELINE_BY_ORGANIZATION
预留 ASSIGNMENTS_BY_PROJECT
ASSIGNMENT_CHANGES_BY_PROJECT
CAPACITY_COMMITMENTS_BY_PROJECT
CAPACITY_COMMITMENT_CHANGES_BY_PROJECT
RESERVATIONS_BY_PROJECT
RESERVATION_CHANGES_BY_PROJECT
RESERVATIONS_TIMELINE_BY_PROJECT
例程 PARAMETERS
ROUTINES
ROUTINE_OPTIONS
搜索索引 SEARCH_INDEXES
SEARCH_INDEX_COLUMNS
会话 SESSIONS_BY_PROJECT
SESSIONS_BY_USER
流式处理 STREAMING_TIMELINE_BY_PROJECT
STREAMING_TIMELINE_BY_FOLDER
STREAMING_TIMELINE_BY_ORGANIZATION
COLUMNS
COLUMN_FIELD_PATHS
CONSTRAINT_COLUMN_USAGE
KEY_COLUMN_USAGE
PARTITIONS
TABLES
TABLE_OPTIONS
TABLE_CONSTRAINTS
TABLE_SNAPSHOTS
TABLE_STORAGE_BY_PROJECT
TABLE_STORAGE_BY_ORGANIZATION
TABLE_STORAGE_USAGE_TIMELINE
TABLE_STORAGE_USAGE_TIMELINE_BY_ORGANIZATION
矢量索引 VECTOR_INDEXES
VECTOR_INDEX_COLUMNS
VECTOR_INDEX_OPTIONS
视图 VIEWS
MATERIALIZED_VIEWS
Write API WRITE_API_TIMELINE_BY_PROJECT
WRITE_API_TIMELINE_BY_FOLDER
WRITE_API_TIMELINE_BY_ORGANIZATION

对于 *BY_PROJECT 视图,BY_PROJECT 后缀是可选的。例如,查询 INFORMATION_SCHEMA.JOBS_BY_PROJECTINFORMATION_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 视图不支持区域限定符:

如果未指定区域限定符和数据集限定符,则会收到错误。

项目限定符

如果存在项目限定符,则会将结果限制为指定的项目。例如:

-- 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 视图中列出资源时,仅在父级(而不是单个行级别)检查权限。因此,任何使用标记有条件地指向单行的拒绝政策预览版)都将被忽略。