查看标签

本页面介绍如何查看 BigQuery 资源上的标签。

概览

您可以通过以下方式查看标签:

  • 使用 Cloud Console 或经典版 BigQuery 网页界面
  • 使用命令行工具的 bq show 命令
  • 调用 datasets.gettables.get API 方法
  • 使用客户端库

由于视图被视为表资源,因此您可以使用 tables.get 方法来获取视图和表的标签信息。

所需权限

查看标签所需的权限取决于您访问的具体资源类型。

数据集权限

如需获取有关数据集的信息,您至少必须具有 bigquery.datasets.get 权限。以下预定义 Cloud IAM 角色可提供 bigquery.datasets.get 权限:

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

此外,如果用户具有 bigquery.datasets.create 权限,则当该用户创建数据集时,系统会为其授予该数据集的 bigquery.dataOwner 访问权限。借助 bigquery.dataOwner 访问权限,用户可以获取数据集的相关信息。

如需详细了解 BigQuery 中的 Cloud IAM 角色和权限,请参阅预定义的角色和权限

表和视图权限

如需获取表或视图的相关信息,您至少必须具有 bigquery.tables.get 权限。除了 bigquery.userbigquery.jobUser 以外,其他所有预定义的 Cloud IAM 角色都具有 bigquery.tables.get 权限。

此外,如果用户具有 bigquery.datasets.create 权限,则当该用户创建数据集时,系统会为其授予该数据集的 bigquery.dataOwner 访问权限。借助 bigquery.dataOwner 访问权限,用户可以获取数据集中表和视图的相关信息。

如需详细了解 BigQuery 中的 Cloud IAM 角色和权限,请参阅预定义的角色和权限

作业权限

如需获取作业数据和元数据,您至少必须具有 bigquery.jobs.get 权限。以下预定义 Cloud IAM 角色可提供 bigquery.jobs.get 权限:

  • bigquery.admin

如果您向某个帐号授予 bigquery.admin 角色,则该用户可以查看项目中的所有作业数据,无论作业的提交者是谁。

以下角色仅对自己创建的作业具有 bigquery.jobs.get 权限。此类用户只能查看自己提交的作业的数据:

  • bigquery.user
  • bigquery.jobUser

如需详细了解 BigQuery 中的 Cloud IAM 角色和权限,请参阅访问权限控制

查看数据集、表和视图标签

如需查看资源的标签,请执行以下操作:

控制台

  1. 在 Cloud Console 中,选择一个数据集、表或视图。在 Cloud Console 中,无法查看作业标签。

  2. 对于数据集,系统会自动打开“数据集详情”页面。对于表和视图,点击详情以打开详情页面。标签信息将显示在资源的信息表中。

    表详细信息

经典版界面

  1. 在网页界面,选择一个数据集、表或视图。在传统版网页界面,无法查看作业标签。

  2. 对于数据集,系统会自动打开 Dataset Details 页面。对于表和视图,请点击 Details 以打开详情页面。标签信息将显示在资源的信息表中。

CLI

使用带有资源 ID 的 bq show 命令。--format 标志可用于控制输出。如果资源属于非默认项目,请按以下格式添加项目 ID:[PROJECT_ID]:[DATASET]。为确保可读性,可通过将 --format 标志设置为 pretty 来控制输出。

bq show --format=pretty [RESOURCE_ID]

其中,[RESOURCE_ID] 是有效的数据集、表、视图或作业 ID。

示例:

输入以下命令可显示默认项目中 mydataset 的标签。

bq show --format=pretty mydataset

输出如下所示:

+-----------------+--------------------------------------------------------+---------------------+
|  Last modified  |                          ACLs                          |       Labels        |
+-----------------+--------------------------------------------------------+---------------------+
| 11 Jul 19:34:34 | Owners:                                                | department:shipping |
|                 |   projectOwners,                                       |                     |
|                 | Writers:                                               |                     |
|                 |   projectWriters                                       |                     |
|                 | Readers:                                               |                     |
|                 |   projectReaders                                       |                     |
+-----------------+--------------------------------------------------------+---------------------+

输入以下命令可显示 mydataset.mytable 的标签。mydatasetmyotherproject 中,不在默认项目中。

bq show --format=pretty myotherproject:mydataset.mytable

对于聚簇表,输出如下所示:

+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+
|  Last modified  |            Schema            | Total Rows | Total Bytes |   Expiration    |               Time Partitioning                | Clustered Fields | Labels  |
+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+
| 25 Jun 19:28:14 | |- timestamp: timestamp      | 0          | 0           | 25 Jul 19:28:14 | DAY (field: timestamp, expirationMs: 86400000) | customer_id      | org:dev |
|                 | |- customer_id: string       |            |             |                 |                                                |                  |         |
|                 | |- transaction_amount: float |            |             |                 |                                                |                  |         |
+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+

API

调用 datasets.get 方法或 tables.get 方法。响应包含与该资源关联的所有标签。

或者,您可以使用 datasets.list 查看多个数据集的标签,或使用 tables.list 查看多个表和视图的标签。

由于视图被视为表资源,因此您可以使用 tables.gettables.list 方法来查看视图和表的标签信息。

Go

尝试此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
)

// printDatasetLabels retrieves label metadata from a dataset and prints it to an io.Writer.
func printDatasetLabels(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}

	meta, err := client.Dataset(datasetID).Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "Dataset %s labels:\n", datasetID)
	if len(meta.Labels) == 0 {
		fmt.Fprintln(w, "Dataset has no labels defined.")
		return nil
	}
	for k, v := range meta.Labels {
		fmt.Fprintf(w, "\t%s:%s\n", k, v)
	}
	return nil
}

Python

尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档

# TODO(developer): Import the client library.
# from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = "your-project.your_dataset"

dataset = client.get_dataset(dataset_id)  # Make an API request.

# View dataset labels.
print("Dataset ID: {}".format(dataset_id))
print("Labels:")
if dataset.labels:
    for label, value in dataset.labels.items():
        print("\t{}: {}".format(label, value))
else:
    print("\tDataset has no labels defined.")

查看作业标签

提交作业后,作业标签不会出现在 Cloud Console 或经典版 BigQuery 网页界面中。如需查看作业的标签,请发出 bq show -j [JOB_ID] 命令或使用 API 或客户端库。

控制台

您不能使用 Cloud Console 查看作业标签。

经典版界面

您不能使用经典版 BigQuery 网页界面查看作业标签。

CLI

如需使用 bq 命令行工具查看某个查询作业的标签,请输入带有该查询作业 ID 的 bq show -j 命令。--format 标志可用于控制输出。例如,如果查询作业 ID 为 bqjob_r1234d57f78901_000023746d4q12_1,请输入以下命令:

bq show -j --format=pretty bqjob_r1234d57f78901_000023746d4q12_1

输出应如下所示:

+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+
| Job Type |  State  |   Start Time    | Duration |    User Email     | Bytes Processed | Bytes Billed |        Labels        |
+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+
| query    | SUCCESS | 03 Dec 15:00:41 | 0:00:00  | email@example.com | 255             | 10485760     | department:shipping  |
|          |         |                 |          |                   |                 |              | costcenter:logistics |
+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+

API

调用 jobs.get 方法。响应包含与该资源关联的所有标签。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面