获取视图相关信息
本文档介绍了如何列出和查看 BigQuery 中视图的元数据,以及获取相关信息。
您可以通过以下方式列出数据集中的视图:
- 使用 Google Cloud 控制台
- 在 bq 命令行工具中使用
bq ls
命令 - 调用
tables.list
API 方法 - 使用客户端库
准备工作
授予为用户提供执行本文档中的每个任务所需权限的 Identity and Access Management (IAM) 角色。
列出视图
列出视图的过程与列出表的过程完全相同。
所需权限
如需列出数据集中的视图,您需要拥有 bigquery.tables.list
IAM 权限。
以下每个预定义 IAM 角色都包含列出数据集中的视图所需的权限:
roles/bigquery.user
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
如需详细了解 BigQuery 中的 IAM 角色和权限,请参阅预定义的角色和权限。
列出数据集中的视图
要列出数据集中的视图,请执行以下操作:
控制台
在浏览器面板中,展开您的项目并选择数据集。
滚动列表,查看数据集中的表。表和视图由不同的图标进行标识。
SQL
使用 INFORMATION_SCHEMA.VIEWS
视图:
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
SELECT table_name FROM DATASET_ID.INFORMATION_SCHEMA.VIEWS;
将
DATASET_ID
替换为数据集的名称。点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
发出 bq ls
命令。--format
标志可用于控制输出。如果您要列出非默认项目中的视图,请按照以下格式将项目 ID 添加到数据集:project_id:dataset
。
bq ls --format=pretty project_id:dataset
其中:
- project_id 是您的项目 ID。
- dataset 是数据集的名称。
运行该命令时,Type
字段会显示 TABLE
或 VIEW
。例如:
+-------------------------+-------+----------------------+-------------------+ | tableId | Type | Labels | Time Partitioning | +-------------------------+-------+----------------------+-------------------+ | mytable | TABLE | department:shipping | | | myview | VIEW | | | +-------------------------+-------+----------------------+-------------------+
示例:
输入以下命令可列出默认项目的数据集 mydataset
中的视图。
bq ls --format=pretty mydataset
输入以下命令可列出 myotherproject
的数据集 mydataset
中的视图。
bq ls --format=pretty myotherproject:mydataset
API
要使用 API 列出视图,请调用 tables.list
方法。
Go
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Python
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
您可以通过以下方式获取视图元数据:
- 使用 Google Cloud 控制台
- 使用 bq 命令行工具的
bq show
命令 - 调用
tables.get
API 方法 - 使用客户端库
- 查询
INFORMATION_SCHEMA
视图
获取有关视图的信息
获取视图相关信息的过程与获取表相关信息的过程相同。
所需权限
如需获取有关视图的信息,您需要拥有 bigquery.tables.get
IAM 权限。
以下每个预定义 IAM 角色都包含获取视图相关信息所需的权限:
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
此外,如果您拥有 bigquery.datasets.create
权限,则可以获取在自己创建的数据集中的视图相关信息。
如需详细了解 BigQuery 中的 IAM 角色和权限,请参阅预定义的角色和权限。
如需获取有关视图的信息,请执行如下操作:
控制台
展开您的数据集。
点击视图名称。
点击详细信息。详细信息标签页显示了视图的说明、视图信息和定义视图的 SQL 查询。
SQL
查询 INFORMATION_SCHEMA.VIEWS
视图。以下示例检索 check_option
(该列留待将来使用)以外的所有列。系统会返回默认项目中 DATASET_ID 的所有视图的元数据:
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
SELECT * EXCEPT (check_option) FROM DATASET_ID.INFORMATION_SCHEMA.VIEWS;
将
DATASET_ID
替换为数据集的名称。点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
发出 bq show
命令。--format
标志可用于控制输出。如果您要获取非默认项目中的视图信息,请按以下格式将相应项目 ID 添加到数据集中:[PROJECT_ID]:[DATASET]
。
bq show \ --format=prettyjson \ project_id:dataset.view
其中:
- project_id 是您的项目 ID。
- dataset 是数据集的名称。
- view 是视图名称。
示例:
输入以下命令,显示默认项目中数据集 mydataset
内 myview
视图的相关信息。
bq show --format=prettyjson mydataset.myview
输入以下命令,显示 myotherproject
中数据集 mydataset
中 myview
视图的相关信息。
bq show --format=prettyjson myotherproject:mydataset.myview
API
调用 tables.get
方法并提供所有相关参数。
Go
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Java
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Java 设置说明进行操作。如需了解详情,请参阅 BigQuery Java API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Node.js
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Node.js 设置说明进行操作。如需了解详情,请参阅 BigQuery Node.js API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Python
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
视图安全性
如需控制对 BigQuery 中视图的访问权限,请参阅授权视图。
后续步骤
- 要了解如何创建视图,请参阅创建视图。
- 如需了解如何创建已获授权的视图,请参阅创建已获授权的视图。
- 如需详细了解如何管理视图,请参阅管理视图。
- 如需查看
INFORMATION_SCHEMA
的概览,请转到 BigQueryINFORMATION_SCHEMA
简介。