SCHEMATA_LINKS 视图

INFORMATION_SCHEMA.SCHEMATA_LINKS 视图中,每个关联的数据集都包含一行。关联的数据集会链接到当前用户有权访问的项目中的共享数据集。

所需权限

如需查询 INFORMATION_SCHEMA.SCHEMATA_LINKS 视图,您需要项目级层的 bigquery.datasets.get Identity and Access Management (IAM) 权限。

以下预定义的 IAM 角色均包含查询 INFORMATION_SCHEMA.SCHEMATA_LINKS 视图所需的权限:

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

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

架构

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

列名 数据类型
CATALOG_NAME STRING 包含来源数据集的项目名称。
SCHEMA_NAME STRING 来源数据集的名称。数据集名称也称为 datasetId
LINKED_SCHEMA_CATALOG_NUMBER STRING 关联数据集所属项目的项目编号。
LINKED_SCHEMA_CATALOG_NAME STRING 关联数据集所属项目的项目名称。
LINKED_SCHEMA_NAME STRING 关联数据集的名称。数据集名称也称为 datasetId
LINKED_SCHEMA_CREATION_TIME TIMESTAMP 关联数据集的创建时间。
LINKED_SCHEMA_ORG_DISPLAY_NAME STRING 在其中创建关联数据集的组织的显示名称。

范围和语法

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

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

  • 可选:PROJECT_ID:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。
+ REGION:任何数据集区域名称。 例如 region-us

示例

本部分列出了查询 INFORMATION_SCHEMA.SCHEMATA_LINKS 视图的示例。

示例:列出另一个项目的所有关联数据集

以下示例列出了 eu 区域中另一个名为 otherproject 的项目的所有关联数据集:

SELECT * FROM `otherproject`.`region-eu`.INFORMATION_SCHEMA.SCHEMATA_LINKS;

输出类似于以下内容:为简化输出,省略了某些列。

+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+
|  catalog_name  | schema_name | linked_schema_catalog_name | linked_schema_catalog_number | linked_schema_name | linked_schema_org_display_name |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+
| otherproject   | myschema1   | subscriptionproject1       |                 974999999291 | subscriptionld1    | subscriptionorg2               |
| otherproject   | myschema2   | subscriptionproject2       |                 974999999292 | subscriptionld2    | subscriptionorg2               |
| otherproject   | myschema3   | subscriptionproject3       |                 974999999293 | subscriptionld3    | subscriptionorg3               |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+

示例:按共享数据集列出所有关联数据集

以下示例列出了 US 多区域中名为 sharedataset 的共享数据集的所有关联数据集:

SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_LINKS WHERE schema_name = 'sharedataset';

输出类似于以下内容:为简化输出,省略了某些列。

+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+
|  catalog_name  | schema_name | linked_schema_catalog_name | linked_schema_catalog_number | linked_schema_name | linked_schema_org_display_name |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+
| myproject      | sharedataset| subscriptionproject1       |                 674999999291 | subscriptionld1    | subscriptionorg1               |
| myproject      | sharedataset| subscriptionproject2       |                 774999999292 | subscriptionld2    | subscriptionorg3               |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+