查看標籤

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

總覽

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

  • 使用 GCP Console 或 BigQuery 傳統網頁版 UI
  • 使用指令列工具的 bq show 指令
  • 呼叫 datasets.gettables.get API 方法
  • 使用用戶端程式庫

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

必要權限

查看標籤所需的權限視您要存取的資源類型而定。

資料集權限

如要取得資料集的相關資訊,您至少必須具備 bigquery.datasets.get 權限。以下是具有 bigquery.datasets.get 權限的預先定義 Cloud IAM 角色:

  • 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 權限。所有預先定義的 Cloud IAM 角色都具有 bigquery.tables.get 權限,但 bigquery.userbigquery.jobUser 除外

此外,具備 bigquery.datasets.create 權限的使用者建立資料集時,會獲得 bigquery.dataOwner 存取權。 bigquery.dataOwner 存取權可讓使用者取得資料集裡的資料表和檢視表相關資訊。

如要進一步瞭解 BigQuery 中的 Cloud IAM 角色和權限,請參閱存取權控管一文。

工作權限

如要取得工作資料和中繼資料,您至少必須具備 bigquery.jobs.get 權限。以下是具有 bigquery.jobs.get 權限的預先定義 Cloud IAM 角色:

  • bigquery.admin

如果您授予帳戶 bigquery.admin 角色,則該使用者將可查看專案中的所有工作資料 (不管這些工作是由哪些人提交的)。

以下角色具備自建工作的 bigquery.jobs.get 權限。這些使用者只能檢視自己提交的工作資料。

  • bigquery.user
  • bigquery.jobUser

如要進一步瞭解 BigQuery 中的 Cloud IAM 角色和權限,請參閱存取權控管一文。

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

如何查看資源的標籤:

Console

  1. 在 GCP Console 中選取資料集、資料表或檢視表。您無法在 GCP Console 中查看工作標籤。

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

    資料表詳細資料

傳統版 UI

  1. 在網頁版 UI 中,選取資料集、資料表或檢視表。您無法在傳統網頁版 UI 中查看工作標籤。

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

CLI

使用 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 的標籤。 mydataset 位於 myotherproject 而非預設專案中。

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 參考說明文件

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
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)
}

Python

在試行這個示例前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 Python 設定說明進行操作。詳情請參閱 BigQuery Python API 參考說明文件

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'my_dataset'

dataset_ref = client.dataset(dataset_id)
dataset = client.get_dataset(dataset_ref)  # 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.")

查看工作標籤

提交工作後,工作標籤不會顯示在 GCP Console 或 BigQuery 傳統網頁版 UI 中。如要查看工作上的標籤,請發出 bq show -j [JOB_ID] 指令或使用 API 或用戶端程式庫。

Console

您無法使用 GCP Console 查看工作標籤。

傳統版 UI

您無法使用傳統 BigQuery 網頁版 UI 查看工作標籤。

CLI

如要使用 bq 指令列工具查看查詢工作的標籤,請輸入 bq show -j 指令並加入查詢工作的工作 ID。--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 方法。回應包含與這項資源相關聯的所有標籤。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
需要協助嗎?請前往我們的支援網頁