查看標籤

本頁面說明如何查看在 BigQuery 資源上的標籤。

您可以透過下列方式查看標籤:

  • 使用 Google Cloud 控制台
  • 查詢 INFORMATION_SCHEMA 檢視畫面
  • 使用 bq 指令列工具的 bq show 指令
  • 呼叫 datasets.gettables.get API 方法
  • 使用用戶端程式庫

由於系統會將檢視表當做資料表資源處理,因此可以使用 tables.get 方法來取得檢視表和資料表的標籤資訊。

事前準備

授予身分與存取權管理 (IAM) 角色,讓使用者擁有執行本文各項工作所需的權限。

所需權限

查看標籤所需的權限取決於可存取的資源類型。如要執行本文中的工作,您需要下列權限。

查看資料集詳細資料的權限

如要查看資料集詳細資料,您需要 bigquery.datasets.get IAM 權限。

下列預先定義的 IAM 角色都包含查看資料集詳細資料所需的權限:

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

此外,如果您具備 bigquery.datasets.create 權限,可以查看您建立的資料集詳細資料。

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱預先定義的角色與權限一文。

查看資料表或檢視表詳細資料的權限

如要查看資料表或檢視表的詳細資料,您需要 bigquery.tables.get IAM 權限。

所有預先定義的 IAM 角色都具備查看表格或詳細資料所需的權限,但 roles/bigquery.userroles/bigquery.jobUser 除外

此外,如果您具備 bigquery.datasets.create 權限,可以查看所建立資料集中的資料表和檢視表詳細資料。

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱預先定義的角色與權限一文。

查看工作詳細資料的權限

如要查看工作詳細資料,您需要 bigquery.jobs.get IAM 權限。

下列每個預先定義的 IAM 角色都包含查看工作詳細資料所需的權限:

  • roles/bigquery.admin (可查看專案中所有工作的詳細資料)
  • roles/bigquery.user (可查看工作詳細資料)
  • roles/bigquery.jobUser (可查看工作詳細資料)

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱預先定義的角色與權限一文。

查看資料集、資料表和檢視表標籤

如要查看資源的標籤,請選取下列其中一個選項:

控制台

  1. 如果是資料集,「Dataset Details」(資料集詳細資料) 頁面會自動開啟;如果是資料表和檢視表,請按一下 [Details] (詳細資料) 以開啟詳細資料頁面。標籤資訊會顯示在資源的資訊資料表中。

    資料表詳細資料

SQL

查詢 INFORMATION_SCHEMA.SCHEMATA_OPTIONS 檢視區塊,即可查看資料集的標籤;查詢 INFORMATION_SCHEMA.TABLE_OPTIONS 檢視區塊,即可查看資料表的標籤。舉例來說,下列 SQL 查詢會傳回名為 mydataset 的資料集標籤:

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在查詢編輯器中輸入下列陳述式:

    SELECT
      *
    FROM
      INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
      schema_name = 'mydataset'
      AND option_name = 'labels';

  3. 按一下「執行」

如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。

bq

使用 bq show 指令並加入資源 ID。--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 參考說明文件

如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。

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)
	}
	defer client.Close()

	meta, err := client.Dataset(datasetID).Metadata(ctx)
	if err